Files
Zero/components/draft/draftHooks/useDrafts.ts
its_Exey_ a30a0f26de feat: Add Draft component with core functionality and improved UI (#103)
* 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
2025-02-08 17:24:22 -05:00

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 };
};