| 6 | import { useFormName, useOpenUI } from "../context"; |
| 7 | |
| 8 | export function useStateField<T = unknown>( |
| 9 | name: string, |
| 10 | value?: T, |
| 11 | ): StateField<InferStateFieldValue<T>> { |
| 12 | const ctx = useOpenUI(); |
| 13 | const formName = useFormName(); |
| 14 | |
| 15 | return resolveStateField<InferStateFieldValue<T>>( |
| 16 | name, |
| 17 | value, |
| 18 | ctx.store ?? null, |
| 19 | ctx.evaluationContext ?? null, |
| 20 | (fieldName) => ctx.getFieldValue(formName, fieldName), |
| 21 | (fieldName, nextValue) => ctx.setFieldValue(formName, undefined, fieldName, nextValue), |
| 22 | ); |
| 23 | } |