feat(cards): migrated cards over

This commit is contained in:
2025-04-14 12:26:31 -05:00
parent 328b61f6cc
commit 087d14c585
21 changed files with 1318 additions and 334 deletions

View File

@@ -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" }