mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-23 14:55:44 +00:00
feat(FE): Add chickin delete functionality with modal confirmation
This commit is contained in:
@@ -4,13 +4,16 @@ import { create } from 'zustand';
|
||||
import { devtools } from 'zustand/middleware';
|
||||
import { createChickinApprovalSlice } from '@/stores/production/chickin/slices/chickin-approval.slice';
|
||||
import { ChickinApprovalSlice } from '@/stores/production/chickin/slices/chickin-approval.slice';
|
||||
import { createChickinDeleteSlice } from '@/stores/production/chickin/slices/chickin-delete.slice';
|
||||
import { ChickinDeleteSlice } from '@/stores/production/chickin/slices/chickin-delete.slice';
|
||||
|
||||
export type ChickinStore = ChickinApprovalSlice;
|
||||
export type ChickinStore = ChickinApprovalSlice & ChickinDeleteSlice;
|
||||
|
||||
export const useChickinStore = create<ChickinStore>()(
|
||||
devtools(
|
||||
(...args) => ({
|
||||
...createChickinApprovalSlice(...args),
|
||||
...createChickinDeleteSlice(...args),
|
||||
}),
|
||||
{
|
||||
name: 'ChickinStore',
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
import { StateCreator } from 'zustand';
|
||||
|
||||
export type ChickinDeleteSlice = {
|
||||
// State
|
||||
isChickinDeleteModalOpen: boolean;
|
||||
selectedChickinIdForDelete: number | null;
|
||||
isChickinDeleteLoading: boolean;
|
||||
chickinDeleteCallback: (() => Promise<void>) | null;
|
||||
|
||||
// Actions
|
||||
openChickinDeleteModal: (
|
||||
chickinId: number,
|
||||
callback: () => Promise<void>
|
||||
) => void;
|
||||
closeChickinDeleteModal: () => void;
|
||||
setChickinDeleteLoading: (loading: boolean) => void;
|
||||
resetChickinDelete: () => void;
|
||||
};
|
||||
|
||||
export const createChickinDeleteSlice: StateCreator<
|
||||
ChickinDeleteSlice,
|
||||
[],
|
||||
[],
|
||||
ChickinDeleteSlice
|
||||
> = (set) => ({
|
||||
// Initial state
|
||||
isChickinDeleteModalOpen: false,
|
||||
selectedChickinIdForDelete: null,
|
||||
isChickinDeleteLoading: false,
|
||||
chickinDeleteCallback: null,
|
||||
|
||||
// Actions
|
||||
openChickinDeleteModal: (chickinId, callback) =>
|
||||
set({
|
||||
isChickinDeleteModalOpen: true,
|
||||
selectedChickinIdForDelete: chickinId,
|
||||
chickinDeleteCallback: callback,
|
||||
}),
|
||||
|
||||
closeChickinDeleteModal: () =>
|
||||
set({
|
||||
isChickinDeleteModalOpen: false,
|
||||
selectedChickinIdForDelete: null,
|
||||
chickinDeleteCallback: null,
|
||||
}),
|
||||
|
||||
setChickinDeleteLoading: (loading) =>
|
||||
set({ isChickinDeleteLoading: loading }),
|
||||
|
||||
resetChickinDelete: () =>
|
||||
set({
|
||||
isChickinDeleteModalOpen: false,
|
||||
selectedChickinIdForDelete: null,
|
||||
isChickinDeleteLoading: false,
|
||||
chickinDeleteCallback: null,
|
||||
}),
|
||||
});
|
||||
Reference in New Issue
Block a user