refactor(FE-316): Extract uniformity state into separate store

This commit is contained in:
rstubryan
2025-12-27 21:51:13 +07:00
parent fd2077c68b
commit 45d65024db
6 changed files with 74 additions and 37 deletions
+54
View File
@@ -0,0 +1,54 @@
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
import { VerifyUniformityResponse } from '@/types/api/uniformity/uniformity';
export type UniformityStep = 'preview' | 'result';
export type UniformityFormData = {
date: string;
project_flock_kandang_id: number;
files: File | null;
fileName: string;
};
type UniformityState = {
// State
uniformityStep: UniformityStep;
verifyUniformityResult: VerifyUniformityResponse | null;
uniformityFormData: UniformityFormData | null;
// Actions
setUniformityStep: (step: UniformityStep) => void;
setVerifyUniformityResult: (result: VerifyUniformityResponse | null) => void;
setUniformityFormData: (data: UniformityFormData | null) => void;
resetUniformity: () => void;
};
export const useUniformityStore = create<UniformityState>()(
devtools(
(set) => ({
// Initial state
uniformityStep: 'preview',
verifyUniformityResult: null,
uniformityFormData: null,
// Actions
setUniformityStep: (step) => set({ uniformityStep: step }),
setVerifyUniformityResult: (result) =>
set({ verifyUniformityResult: result }),
setUniformityFormData: (data) => set({ uniformityFormData: data }),
resetUniformity: () =>
set({
uniformityStep: 'preview',
verifyUniformityResult: null,
uniformityFormData: null,
}),
}),
{
name: 'UniformityStore',
}
)
);