import { validateLength } from '@/common/form/validation'; export type NameSlice = { name: string; setName: (name: string) => void; getNameErrorMessages: (value: string) => string[]; getNameIsValid: () => boolean; }; export const createNameSlice: FormInputSliceCreator< NameSlice, { name: string } > = (initialValue) => (set, get) => ({ name: initialValue.name, setName: (name) => set({ name }), getNameErrorMessages: (name) => [ ...validateLength({ value: name, minLength: 1, maxLength: 50 }), ], getNameIsValid: () => get().getNameErrorMessages(get().name).length === 0, }); 最近の開発 Zustand + Valibotによるフォーム実装 case2 50/54