Slide 11
Slide 11 text
Copyright Hacobu, Inc. 11
05 hookFormFactory ── プロダクト仕様を 1 箇所に閉じ込める
"全フォームに散らばる dirty 制御" を、factory に隠す
// プロダクト固有の dirty 仕様を factory に閉じ込める
const useForm = (props: UseFormProps, shouldAccessDirtyFields = true) => {
const form = _useForm(props);
// formState は Proxy 購読 ── dirtyFields に触って未保存検知を安定化
if (shouldAccessDirtyFields) form.formState.dirtyFields;
return {
...form,
// setValue 経由は shouldDirty: true をデフォルト化
setValue: (...args) => form.setValue(args[0], args[1], { shouldDirty: true, ...args[2] }),
};
};
export const hookFormFactory = () => ({
useForm: useForm, useFormContext: useFormContext,
FormProvider: FormProvider, useWatch: useWatch,
});
① ライブラリの一般解
では届かない部分を埋める
② 製品仕様 ( dirty / 離脱 )
を 1 箇所に閉じ込めた
③ AI が触る面積
が小さくなり、出力が安定する
Copyright Hacobu, Inc. 11