diff options
Diffstat (limited to 'packages/web-util/src/forms/InputChoiceHorizontal.tsx')
-rw-r--r-- | packages/web-util/src/forms/InputChoiceHorizontal.tsx | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/packages/web-util/src/forms/InputChoiceHorizontal.tsx b/packages/web-util/src/forms/InputChoiceHorizontal.tsx index 778b73c75..82a7c3115 100644 --- a/packages/web-util/src/forms/InputChoiceHorizontal.tsx +++ b/packages/web-util/src/forms/InputChoiceHorizontal.tsx @@ -3,6 +3,7 @@ import { Fragment, VNode, h } from "preact"; import { UIFormProps } from "./FormProvider.js"; import { LabelWithTooltipMaybeRequired } from "./InputLine.js"; import { useField } from "./useField.js"; +import { noHandlerPropsAndNoContextForField } from "./InputArray.js"; export interface ChoiceH<V> { label: TranslatedString; @@ -14,19 +15,11 @@ export function InputChoiceHorizontal<T extends object, K extends keyof T>( choices: ChoiceH<T[K]>[]; } & UIFormProps<T, K>, ): VNode { - const { - choices, - name, - label, - tooltip, - help, - placeholder, - required, - before, - after, - converter, - } = props; - const { value, onChange, state, isDirty } = useField<T, K>(name); + const { choices, label, tooltip, help, required } = props; + //FIXME: remove deprecated + const fieldCtx = useField<T, K>(props.name); + const { value, onChange, state } = + props.handler ?? fieldCtx ?? noHandlerPropsAndNoContextForField(props.name); if (state.hidden) { return <Fragment />; } @@ -62,12 +55,13 @@ export function InputChoiceHorizontal<T extends object, K extends keyof T>( return ( <button type="button" + key={idx} disabled={state.disabled} label={choice.label} class={clazz} onClick={(e) => { onChange( - (value === choice.value ? undefined : choice.value) as T[K], + (value === choice.value ? undefined : choice.value) as any, ); }} > |