From b4736f8e5a8d44c7db10e34e8e867de7142dffe6 Mon Sep 17 00:00:00 2001 From: Max Patiiuk Date: Sat, 13 Jul 2024 08:44:29 -0700 Subject: [PATCH] fix(FieldFormatters): don't expose internal autoNumbering state in UI --- .../components/FieldFormatters/FieldFormatter.tsx | 15 +-------------- .../lib/components/FieldFormatters/List.tsx | 1 - .../js_src/lib/components/FieldFormatters/spec.ts | 9 ++++++--- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/FieldFormatters/FieldFormatter.tsx b/specifyweb/frontend/js_src/lib/components/FieldFormatters/FieldFormatter.tsx index 71eeb0edb78..40a1943ae50 100644 --- a/specifyweb/frontend/js_src/lib/components/FieldFormatters/FieldFormatter.tsx +++ b/specifyweb/frontend/js_src/lib/components/FieldFormatters/FieldFormatter.tsx @@ -1,6 +1,5 @@ import React from 'react'; -import { formsText } from '../../localization/forms'; import { resourcesText } from '../../localization/resources'; import { schemaText } from '../../localization/schema'; import { @@ -10,7 +9,6 @@ import { import type { GetSet, RA } from '../../utils/types'; import { ErrorMessage } from '../Atoms'; import { Input, Label } from '../Atoms/Form'; -import { ReadOnlyContext } from '../Core/Contexts'; import type { AnySchema } from '../DataModel/helperTypes'; import type { SpecifyResource } from '../DataModel/legacyTypes'; import type { LiteralField } from '../DataModel/specifyField'; @@ -29,20 +27,9 @@ export function FieldFormatterElement({ }: { readonly item: GetSet; }): JSX.Element { - const [fieldFormatter, setFieldFormatter] = item; - const isReadOnly = React.useContext(ReadOnlyContext); + const [fieldFormatter] = item; return ( <> - - - setFieldFormatter({ ...fieldFormatter, autoNumber }) - } - /> - {formsText.autoNumbering()} - {fieldFormatter.external === undefined && typeof fieldFormatter.table === 'object' ? ( diff --git a/specifyweb/frontend/js_src/lib/components/FieldFormatters/List.tsx b/specifyweb/frontend/js_src/lib/components/FieldFormatters/List.tsx index a050d57b641..5c497d18cfd 100644 --- a/specifyweb/frontend/js_src/lib/components/FieldFormatters/List.tsx +++ b/specifyweb/frontend/js_src/lib/components/FieldFormatters/List.tsx @@ -62,7 +62,6 @@ export function FieldFormattersList(): JSX.Element { isDefault: currentItems.length === 0, legacyType: undefined, legacyPartialDate: undefined, - autoNumber: false, external: undefined, parts: [], raw: { diff --git a/specifyweb/frontend/js_src/lib/components/FieldFormatters/spec.ts b/specifyweb/frontend/js_src/lib/components/FieldFormatters/spec.ts index a03ac359d05..af006add80d 100644 --- a/specifyweb/frontend/js_src/lib/components/FieldFormatters/spec.ts +++ b/specifyweb/frontend/js_src/lib/components/FieldFormatters/spec.ts @@ -21,7 +21,6 @@ export const fieldFormattersSpec = f.store(() => ({ javaClass, rawAutoNumber, ...formatter }) => ({ ...formatter, table: getTable(javaClass ?? ''), - autoNumber: rawAutoNumber !== undefined, raw: { javaClass, legacyAutoNumber: rawAutoNumber, @@ -29,7 +28,6 @@ export const fieldFormattersSpec = f.store(() => }), ({ table, - autoNumber, raw: { javaClass, legacyAutoNumber }, ...formatter }) => ({ @@ -40,7 +38,7 @@ export const fieldFormattersSpec = f.store(() => (getTable(javaClass ?? '') === undefined ? javaClass : undefined), - rawAutoNumber: autoNumber + rawAutoNumber: formatter.parts.some(isAutoNumbering) ? legacyAutoNumber ?? inferLegacyAutoNumber(table, formatter.parts) : undefined, @@ -84,6 +82,11 @@ function inferLegacyAutoNumber( } else return 'edu.ku.brc.af.core.db.AutoNumberGeneric'; } +const isAutoNumbering = (part: { + readonly autoIncrement: boolean; + readonly byYear: boolean; +}): boolean => part.autoIncrement || part.byYear; + export type FieldFormatter = SpecToJson< ReturnType >['fieldFormatters'][number];