Skip to content

Commit

Permalink
fix(FieldFormatters): don't expose internal autoNumbering state in UI
Browse files Browse the repository at this point in the history
  • Loading branch information
maxpatiiuk committed Jul 13, 2024
1 parent a95634c commit b4736f8
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React from 'react';

import { formsText } from '../../localization/forms';
import { resourcesText } from '../../localization/resources';
import { schemaText } from '../../localization/schema';
import {
Expand All @@ -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';
Expand All @@ -29,20 +27,9 @@ export function FieldFormatterElement({
}: {
readonly item: GetSet<FieldFormatter>;
}): JSX.Element {
const [fieldFormatter, setFieldFormatter] = item;
const isReadOnly = React.useContext(ReadOnlyContext);
const [fieldFormatter] = item;
return (
<>
<Label.Inline>
<Input.Checkbox
checked={fieldFormatter.autoNumber}
isReadOnly={isReadOnly}
onValueChange={(autoNumber): void =>
setFieldFormatter({ ...fieldFormatter, autoNumber })
}
/>
{formsText.autoNumbering()}
</Label.Inline>
<FieldPicker fieldFormatter={item} />
{fieldFormatter.external === undefined &&
typeof fieldFormatter.table === 'object' ? (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ export function FieldFormattersList(): JSX.Element {
isDefault: currentItems.length === 0,
legacyType: undefined,
legacyPartialDate: undefined,
autoNumber: false,
external: undefined,
parts: [],
raw: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,13 @@ export const fieldFormattersSpec = f.store(() =>
({ javaClass, rawAutoNumber, ...formatter }) => ({
...formatter,
table: getTable(javaClass ?? ''),
autoNumber: rawAutoNumber !== undefined,
raw: {
javaClass,
legacyAutoNumber: rawAutoNumber,
},
}),
({
table,
autoNumber,
raw: { javaClass, legacyAutoNumber },
...formatter
}) => ({
Expand All @@ -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,
Expand Down Expand Up @@ -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<typeof fieldFormattersSpec>
>['fieldFormatters'][number];
Expand Down

0 comments on commit b4736f8

Please sign in to comment.