import { createContext, useContext, useState } from "react"; import type { UsersId } from "~/schemas/public/Users"; export type ElementoPotenziali = { id: string; name: string; column: string; descrizione: string; createdAt: Date; owner: { userId: UsersId; username: string } | null; }; type PotenzialiContextType = { data: ElementoPotenziali[]; editingId: string | null; updateData: (data: ElementoPotenziali[]) => void; setEditingId: (id: string | null) => void; getEditingItem: () => ElementoPotenziali | null; addItem: (item: ElementoPotenziali) => void; removeItem: (id: string) => void; }; const PotenzialiContext = createContext(null); type PotenzialiProviderProps = { children: React.ReactNode; data: ElementoPotenziali[]; }; export const PotenzialiProvider = ({ children, data: initial, }: PotenzialiProviderProps) => { const [data, setData] = useState(initial); const [editingId, setEditingId] = useState(null); const getEditingItem = () => { return data.find((item) => item.id === editingId) || null; }; const addItem = (item: ElementoPotenziali) => { setData((prev) => [...prev, item]); }; const removeItem = (id: string) => { setData((prev) => prev.filter((item) => item.id !== id)); }; return ( {children} ); }; export const usePotenziali = () => { const context = useContext(PotenzialiContext); if (!context) { throw new Error("usePotenziali must be used within a PotenzialiProvider"); } return context; };