feat(cards): migrated cards over
This commit is contained in:
@@ -1,31 +1,23 @@
|
||||
import { create } from "zustand";
|
||||
import { devtools, persist } from "zustand/middleware";
|
||||
|
||||
interface CardSettings {
|
||||
daysSinceLast?: number;
|
||||
rowType?: string;
|
||||
}
|
||||
// interface CardSettings {
|
||||
// daysSinceLast?: number;
|
||||
// rowType?: string;
|
||||
// }
|
||||
|
||||
export interface Card {
|
||||
i: string;
|
||||
x: number;
|
||||
y: number;
|
||||
w: number;
|
||||
h: number;
|
||||
minW?: number;
|
||||
maxW?: number;
|
||||
minH?: number;
|
||||
maxH?: number;
|
||||
isResizable: boolean;
|
||||
isDraggable: boolean;
|
||||
cardSettings?: CardSettings;
|
||||
name: string;
|
||||
rowType: string;
|
||||
age: string;
|
||||
active: boolean;
|
||||
}
|
||||
|
||||
interface CardStore {
|
||||
cards: Card[]; // Array of card objects
|
||||
addCard: (card: Card) => void;
|
||||
updateCard: (id: string, updatedCard: Partial<Card>) => void;
|
||||
removeCard: (id: string) => void;
|
||||
updateCard: (name: string, updatedCard: Partial<Card>) => void;
|
||||
removeCard: (name: string) => void;
|
||||
}
|
||||
|
||||
export const useCardStore = create<CardStore>()(
|
||||
@@ -37,16 +29,18 @@ export const useCardStore = create<CardStore>()(
|
||||
addCard: (card) =>
|
||||
set((state) => ({ cards: [...state.cards, card] })),
|
||||
|
||||
updateCard: (id, updatedCard) =>
|
||||
updateCard: (name, updatedCard) =>
|
||||
set((state) => ({
|
||||
cards: state.cards.map((card) =>
|
||||
card.i === id ? { ...card, ...updatedCard } : card
|
||||
card.name === name
|
||||
? { ...card, ...updatedCard }
|
||||
: card
|
||||
),
|
||||
})),
|
||||
|
||||
removeCard: (id) =>
|
||||
removeCard: (name) =>
|
||||
set((state) => ({
|
||||
cards: state.cards.filter((card) => card.i !== id),
|
||||
cards: state.cards.filter((card) => card.name !== name),
|
||||
})),
|
||||
}),
|
||||
{ name: "card-storage" }
|
||||
|
||||
Reference in New Issue
Block a user