From 08d3e79a9c2adbc295549bdcc05353b6e50565f3 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sun, 31 Dec 2023 15:31:53 -0300 Subject: fixing imports --- packages/web-util/src/forms/Calendar.tsx | 2 +- packages/web-util/src/forms/DefaultForm.tsx | 15 ++---- .../src/forms/InputAbsoluteTime.stories.tsx | 4 +- .../web-util/src/forms/InputAmount.stories.tsx | 4 +- packages/web-util/src/forms/InputArray.stories.tsx | 4 +- .../src/forms/InputChoiceHorizontal.stories.tsx | 4 +- .../web-util/src/forms/InputChoiceHorizontal.tsx | 4 +- .../src/forms/InputChoiceStacked.stories.tsx | 4 +- packages/web-util/src/forms/InputChoiceStacked.tsx | 4 +- packages/web-util/src/forms/InputDate.tsx | 37 ------------- packages/web-util/src/forms/InputFile.stories.tsx | 4 +- .../web-util/src/forms/InputInteger.stories.tsx | 4 +- packages/web-util/src/forms/InputLine.stories.tsx | 4 +- .../src/forms/InputSelectMultiple.stories.tsx | 4 +- .../web-util/src/forms/InputSelectMultiple.tsx | 4 +- .../web-util/src/forms/InputSelectOne.stories.tsx | 4 +- packages/web-util/src/forms/InputSelectOne.tsx | 8 +-- packages/web-util/src/forms/InputText.stories.tsx | 4 +- .../web-util/src/forms/InputTextArea.stories.tsx | 4 +- .../web-util/src/forms/InputToggle.stories.tsx | 4 +- packages/web-util/src/forms/NiceForm.tsx | 60 ---------------------- packages/web-util/src/forms/TimePicker.tsx | 5 +- packages/web-util/src/forms/index.ts | 14 +++-- 23 files changed, 53 insertions(+), 152 deletions(-) delete mode 100644 packages/web-util/src/forms/InputDate.tsx delete mode 100644 packages/web-util/src/forms/NiceForm.tsx (limited to 'packages/web-util/src/forms') diff --git a/packages/web-util/src/forms/Calendar.tsx b/packages/web-util/src/forms/Calendar.tsx index e476bf6f6..a0df639f3 100644 --- a/packages/web-util/src/forms/Calendar.tsx +++ b/packages/web-util/src/forms/Calendar.tsx @@ -1,8 +1,8 @@ import { AbsoluteTime } from "@gnu-taler/taler-util" -import { useTranslationContext } from "@gnu-taler/web-util/browser" import { add as dateAdd, sub as dateSub, eachDayOfInterval, endOfMonth, endOfWeek, format, getMonth, getYear, isSameDay, isSameMonth, startOfDay, startOfMonth, startOfWeek } from "date-fns" import { VNode, h } from "preact" import { useState } from "preact/hooks" +import { useTranslationContext } from "../index.browser.js" export function Calendar({ value, onChange }: { value: AbsoluteTime | undefined, onChange: (v: AbsoluteTime) => void }): VNode { const today = startOfDay(new Date()) diff --git a/packages/web-util/src/forms/DefaultForm.tsx b/packages/web-util/src/forms/DefaultForm.tsx index be8affbec..ffd2812da 100644 --- a/packages/web-util/src/forms/DefaultForm.tsx +++ b/packages/web-util/src/forms/DefaultForm.tsx @@ -1,14 +1,6 @@ - import { ComponentChildren, Fragment, h } from "preact"; -import { FormProvider, FormState } from "./FormProvider.js"; -import { DoubleColumnForm, RenderAllFieldsByUiConfig } from "./forms.js"; - - -export interface FlexibleForm { - versionId: string; - design: DoubleColumnForm; - behavior?: (form: Partial) => FormState; -} +import { FormProvider } from "./FormProvider.js"; +import { FlexibleForm, RenderAllFieldsByUiConfig } from "./forms.js"; export function DefaultForm({ initial, @@ -16,11 +8,13 @@ export function DefaultForm({ form, onSubmit, children, + readOnly, }: { children?: ComponentChildren; initial: Partial; onSubmit?: (v: Partial) => void; form: FlexibleForm; + readOnly?: boolean; onUpdate?: (d: Partial) => void; }) { return ( @@ -28,6 +22,7 @@ export function DefaultForm({ initialValue={initial} onUpdate={onUpdate} onSubmit={onSubmit} + readOnly={readOnly} computeFormState={form.behavior} >
diff --git a/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx b/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx index 54e41ffae..d146d20bf 100644 --- a/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx +++ b/packages/web-util/src/forms/InputAbsoluteTime.stories.tsx @@ -22,8 +22,8 @@ import { AbsoluteTime, TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputAmount.stories.tsx b/packages/web-util/src/forms/InputAmount.stories.tsx index 872726247..d6dd9387a 100644 --- a/packages/web-util/src/forms/InputAmount.stories.tsx +++ b/packages/web-util/src/forms/InputAmount.stories.tsx @@ -22,8 +22,8 @@ import { AmountJson, Amounts, TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputArray.stories.tsx b/packages/web-util/src/forms/InputArray.stories.tsx index ee25d355b..c44789c37 100644 --- a/packages/web-util/src/forms/InputArray.stories.tsx +++ b/packages/web-util/src/forms/InputArray.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputChoiceHorizontal.stories.tsx b/packages/web-util/src/forms/InputChoiceHorizontal.stories.tsx index 7872afac7..a1c60e44a 100644 --- a/packages/web-util/src/forms/InputChoiceHorizontal.stories.tsx +++ b/packages/web-util/src/forms/InputChoiceHorizontal.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputChoiceHorizontal.tsx b/packages/web-util/src/forms/InputChoiceHorizontal.tsx index 594b1c32e..b490a2c25 100644 --- a/packages/web-util/src/forms/InputChoiceHorizontal.tsx +++ b/packages/web-util/src/forms/InputChoiceHorizontal.tsx @@ -4,14 +4,14 @@ import { LabelWithTooltipMaybeRequired } from "./InputLine.js"; import { useField } from "./useField.js"; import { UIFormProps } from "./FormProvider.js"; -export interface Choice { +export interface ChoiceH { label: TranslatedString; value: V; } export function InputChoiceHorizontal( props: { - choices: Choice[]; + choices: ChoiceH[]; } & UIFormProps, ): VNode { const { diff --git a/packages/web-util/src/forms/InputChoiceStacked.stories.tsx b/packages/web-util/src/forms/InputChoiceStacked.stories.tsx index 215418430..11816ed98 100644 --- a/packages/web-util/src/forms/InputChoiceStacked.stories.tsx +++ b/packages/web-util/src/forms/InputChoiceStacked.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputChoiceStacked.tsx b/packages/web-util/src/forms/InputChoiceStacked.tsx index 48d367ff2..e49b87800 100644 --- a/packages/web-util/src/forms/InputChoiceStacked.tsx +++ b/packages/web-util/src/forms/InputChoiceStacked.tsx @@ -4,7 +4,7 @@ import { LabelWithTooltipMaybeRequired } from "./InputLine.js"; import { useField } from "./useField.js"; import { UIFormProps } from "./FormProvider.js"; -export interface Choice { +export interface ChoiceS { label: TranslatedString; description?: TranslatedString; value: V; @@ -12,7 +12,7 @@ export interface Choice { export function InputChoiceStacked( props: { - choices: Choice[]; + choices: ChoiceS[]; } & UIFormProps, ): VNode { const { diff --git a/packages/web-util/src/forms/InputDate.tsx b/packages/web-util/src/forms/InputDate.tsx deleted file mode 100644 index 1fd81aad9..000000000 --- a/packages/web-util/src/forms/InputDate.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { AbsoluteTime } from "@gnu-taler/taler-util"; -import { InputLine, UIFormProps } from "./InputLine.js"; -import { CalendarIcon } from "@heroicons/react/24/outline"; -import { VNode, h } from "preact"; -import { format, parse } from "date-fns"; - -export function InputDate( - props: { pattern?: string } & UIFormProps, -): VNode { - const pattern = props.pattern ?? "dd/MM/yyyy"; - return ( - - type="text" - after={{ - type: "icon", - icon: , - }} - converter={{ - //@ts-ignore - fromStringUI: (v): AbsoluteTime => { - if (!v) return AbsoluteTime.never(); - const t_ms = parse(v, pattern, Date.now()).getTime(); - return AbsoluteTime.fromMilliseconds(t_ms); - }, - //@ts-ignore - toStringUI: (v: AbsoluteTime) => { - return !v || !v.t_ms - ? "" - : v.t_ms === "never" - ? "never" - : format(v.t_ms, pattern); - }, - }} - {...props} - /> - ); -} diff --git a/packages/web-util/src/forms/InputFile.stories.tsx b/packages/web-util/src/forms/InputFile.stories.tsx index 8a1783bda..6779977b6 100644 --- a/packages/web-util/src/forms/InputFile.stories.tsx +++ b/packages/web-util/src/forms/InputFile.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputInteger.stories.tsx b/packages/web-util/src/forms/InputInteger.stories.tsx index 344865817..f3bdfc500 100644 --- a/packages/web-util/src/forms/InputInteger.stories.tsx +++ b/packages/web-util/src/forms/InputInteger.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputLine.stories.tsx b/packages/web-util/src/forms/InputLine.stories.tsx index 0d55bddf7..d048aa05a 100644 --- a/packages/web-util/src/forms/InputLine.stories.tsx +++ b/packages/web-util/src/forms/InputLine.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputSelectMultiple.stories.tsx b/packages/web-util/src/forms/InputSelectMultiple.stories.tsx index 4dac61f21..7fdc7fca5 100644 --- a/packages/web-util/src/forms/InputSelectMultiple.stories.tsx +++ b/packages/web-util/src/forms/InputSelectMultiple.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputSelectMultiple.tsx b/packages/web-util/src/forms/InputSelectMultiple.tsx index 06eb91bb3..a721eadce 100644 --- a/packages/web-util/src/forms/InputSelectMultiple.tsx +++ b/packages/web-util/src/forms/InputSelectMultiple.tsx @@ -1,5 +1,5 @@ import { Fragment, VNode, h } from "preact"; -import { Choice } from "./InputChoiceStacked.js"; +import { ChoiceS } from "./InputChoiceStacked.js"; import { LabelWithTooltipMaybeRequired } from "./InputLine.js"; import { useField } from "./useField.js"; import { useState } from "preact/hooks"; @@ -7,7 +7,7 @@ import { UIFormProps } from "./FormProvider.js"; export function InputSelectMultiple( props: { - choices: Choice[]; + choices: ChoiceS[]; unique?: boolean; max?: number; } & UIFormProps, diff --git a/packages/web-util/src/forms/InputSelectOne.stories.tsx b/packages/web-util/src/forms/InputSelectOne.stories.tsx index 0bb871500..acf2d0c8f 100644 --- a/packages/web-util/src/forms/InputSelectOne.stories.tsx +++ b/packages/web-util/src/forms/InputSelectOne.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputSelectOne.tsx b/packages/web-util/src/forms/InputSelectOne.tsx index 98430306e..d100b079d 100644 --- a/packages/web-util/src/forms/InputSelectOne.tsx +++ b/packages/web-util/src/forms/InputSelectOne.tsx @@ -1,13 +1,13 @@ import { Fragment, VNode, h } from "preact"; -import { Choice } from "./InputChoiceStacked.js"; -import { LabelWithTooltipMaybeRequired } from "./InputLine.js"; -import { useField } from "./useField.js"; import { useState } from "preact/hooks"; import { UIFormProps } from "./FormProvider.js"; +import { ChoiceS } from "./InputChoiceStacked.js"; +import { LabelWithTooltipMaybeRequired } from "./InputLine.js"; +import { useField } from "./useField.js"; export function InputSelectOne( props: { - choices: Choice[]; + choices: ChoiceS[]; } & UIFormProps, ): VNode { const { name, label, choices, placeholder, tooltip, required } = props; diff --git a/packages/web-util/src/forms/InputText.stories.tsx b/packages/web-util/src/forms/InputText.stories.tsx index 9ce733d4a..0137b7488 100644 --- a/packages/web-util/src/forms/InputText.stories.tsx +++ b/packages/web-util/src/forms/InputText.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputTextArea.stories.tsx b/packages/web-util/src/forms/InputTextArea.stories.tsx index df35b25c4..50d659a74 100644 --- a/packages/web-util/src/forms/InputTextArea.stories.tsx +++ b/packages/web-util/src/forms/InputTextArea.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/InputToggle.stories.tsx b/packages/web-util/src/forms/InputToggle.stories.tsx index 735e812f3..005a1d448 100644 --- a/packages/web-util/src/forms/InputToggle.stories.tsx +++ b/packages/web-util/src/forms/InputToggle.stories.tsx @@ -22,8 +22,8 @@ import { TranslatedString } from "@gnu-taler/taler-util"; import * as tests from "@gnu-taler/web-util/testing"; import { - NiceForm as TestedComponent, -} from "./NiceForm.js"; + DefaultForm as TestedComponent, +} from "./DefaultForm.js"; import { FlexibleForm } from "./forms.js"; export default { diff --git a/packages/web-util/src/forms/NiceForm.tsx b/packages/web-util/src/forms/NiceForm.tsx deleted file mode 100644 index d01b80b02..000000000 --- a/packages/web-util/src/forms/NiceForm.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { ComponentChildren, Fragment, h } from "preact"; -import { FormProvider } from "./FormProvider.js"; -import { FlexibleForm, RenderAllFieldsByUiConfig } from "./forms.js"; - -export function NiceForm({ - initial, - onUpdate, - form, - onSubmit, - children, - readOnly, -}: { - children?: ComponentChildren; - initial: Partial; - onSubmit?: (v: Partial) => void; - form: FlexibleForm; - readOnly?: boolean; - onUpdate?: (d: Partial) => void; -}) { - return ( - -
- {form.design.map((section, i) => { - if (!section) return ; - return ( -
-
-

- {section.title} -

- {section.description && ( -

- {section.description} -

- )} -
-
-
-
- -
-
-
-
- ); - })} -
- {children} -
- ); -} diff --git a/packages/web-util/src/forms/TimePicker.tsx b/packages/web-util/src/forms/TimePicker.tsx index c6dc3e794..5e4e7a8fa 100644 --- a/packages/web-util/src/forms/TimePicker.tsx +++ b/packages/web-util/src/forms/TimePicker.tsx @@ -1,8 +1,7 @@ import { AbsoluteTime } from "@gnu-taler/taler-util" -import { useTranslationContext } from "@gnu-taler/web-util/browser" -import { startOfDay, getHours, getMinutes, getSeconds, setHours } from "date-fns" +import { getHours, getMinutes, getSeconds, setHours } from "date-fns" import { Fragment, VNode, h } from "preact" -import { useState } from "preact/hooks" +import { useTranslationContext } from "../index.browser.js" export function TimePicker({ value, onChange, onConfirm }: { value: AbsoluteTime | undefined, onChange: (v: AbsoluteTime) => void, onConfirm: () => void }): VNode { const date = !value ? new Date() : new Date(AbsoluteTime.toStampMs(value)) diff --git a/packages/web-util/src/forms/index.ts b/packages/web-util/src/forms/index.ts index 08bb9ee77..4ff71f197 100644 --- a/packages/web-util/src/forms/index.ts +++ b/packages/web-util/src/forms/index.ts @@ -1,19 +1,23 @@ +export * from "./Calendar.js" export * from "./Caption.js" +export * from "./DefaultForm.js" +export * from "./Dialog.js" export * from "./FormProvider.js" -export * from "./forms.js" export * from "./Group.js" -export * from "./index.js" +export * from "./InputAbsoluteTime.js" export * from "./InputAmount.js" export * from "./InputArray.js" export * from "./InputChoiceHorizontal.js" export * from "./InputChoiceStacked.js" -export * from "./InputDate.js" export * from "./InputFile.js" export * from "./InputInteger.js" export * from "./InputLine.js" export * from "./InputSelectMultiple.js" export * from "./InputSelectOne.js" -export * from "./InputTextArea.js" export * from "./InputText.js" +export * from "./InputTextArea.js" +export * from "./InputToggle.js" +export * from "./TimePicker.js" +export * from "./forms.js" export * from "./useField.js" -export * from "./DefaultForm.js" + -- cgit v1.2.3