feat(FE): Add Zustand store for ProjectFlock management

This commit is contained in:
rstubryan
2026-02-11 13:42:56 +07:00
parent 3834982fca
commit c3dee6b292
3 changed files with 55 additions and 0 deletions
@@ -0,0 +1,19 @@
'use client';
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
import { createProjectFlockSlice } from '@/stores/project-flock/slices/project-flock.slice';
import { ProjectFlockSlice } from '@/types/stores';
export type ProjectFlockStore = ProjectFlockSlice;
export const useProjectFlockStore = create<ProjectFlockStore>()(
devtools(
(...args) => ({
...createProjectFlockSlice(...args),
}),
{
name: 'ProjectFlockStore',
}
)
);
@@ -0,0 +1,24 @@
import { ProjectFlockSlice } from '@/types/stores';
import { StateCreator } from 'zustand';
export const createProjectFlockSlice: StateCreator<
ProjectFlockSlice,
[],
[],
ProjectFlockSlice
> = (set) => ({
// Initial state
isSuccess: false,
createdProjectFlock: null,
// Actions
setIsSuccess: (success) => set({ isSuccess: success }),
setCreatedProjectFlock: (data) => set({ createdProjectFlock: data }),
resetProjectFlock: () =>
set({
isSuccess: false,
createdProjectFlock: null,
}),
});
+12
View File
@@ -5,6 +5,7 @@ import type {
UniformityDetail,
VerifyUniformityResponse,
} from '@/types/api/production/uniformity';
import type { ProjectFlock } from '@/types/api/production/project-flock';
type MainUiSlice = {
mainDrawerOpen: boolean;
@@ -97,3 +98,14 @@ export type DashboardFilterSlice = {
setFilterValues: (values: DashboardFilterType) => void;
resetFilterValues: () => void;
};
export type ProjectFlockSlice = {
// State
isSuccess: boolean;
createdProjectFlock: ProjectFlock | null;
// Actions
setIsSuccess: (success: boolean) => void;
setCreatedProjectFlock: (data: ProjectFlock | null) => void;
resetProjectFlock: () => void;
};