mirror of
https://github.com/Mail-0/Zero.git
synced 2026-07-01 08:16:28 +00:00
* feat: add active and inactive state management * feat: add test routes and state management for active/inactive links * feat(draftPafe):Add new component * minor fix * fix lint error
28 lines
806 B
TypeScript
28 lines
806 B
TypeScript
import { draftsAtom, DraftType } from "@/store/draftStates";
|
|
import { useAtom } from "jotai";
|
|
|
|
export const useDrafts = () => {
|
|
const [drafts, setDrafts] = useAtom(draftsAtom);
|
|
|
|
const addDraft = (draft: DraftType) => {
|
|
setDrafts((prevDrafts) => {
|
|
const draftIndex = prevDrafts.findIndex((d) => d.id === draft.id);
|
|
if (draftIndex !== -1) {
|
|
// Update existing draft
|
|
const updatedDrafts = [...prevDrafts];
|
|
updatedDrafts[draftIndex] = { ...prevDrafts[draftIndex], ...draft };
|
|
return updatedDrafts;
|
|
} else {
|
|
// Add new draft
|
|
return [...prevDrafts, draft];
|
|
}
|
|
});
|
|
};
|
|
|
|
const removeDraft = (id: string) => {
|
|
setDrafts((prev) => prev.filter((draft) => draft.id !== id));
|
|
};
|
|
|
|
return { drafts, addDraft, removeDraft };
|
|
};
|