35 lines
736 B
TypeScript
35 lines
736 B
TypeScript
import type { ResponseGetData } from '@/api/ius/types';
|
|
import { create } from 'zustand';
|
|
|
|
type Values = ResponseGetData;
|
|
|
|
type FormState = {
|
|
defaultValues: Values;
|
|
init: (values: Values) => void;
|
|
reset: () => void;
|
|
setValue: ({ name, value }: { name: string; value: Values[number] }) => void;
|
|
values: Values;
|
|
};
|
|
|
|
export const useFormStore = create<FormState>((set) => ({
|
|
defaultValues: {},
|
|
init: (values) =>
|
|
set(() => ({
|
|
defaultValues: values,
|
|
values,
|
|
})),
|
|
reset: () => {
|
|
set((state) => ({
|
|
values: state.defaultValues,
|
|
}));
|
|
},
|
|
setValue: ({ name, value }) =>
|
|
set((state) => ({
|
|
values: {
|
|
...state.values,
|
|
[name]: value,
|
|
},
|
|
})),
|
|
values: {},
|
|
}));
|