This commit is contained in:
2026-08-10 12:01:03 +07:00
commit 265b1202ad
95 changed files with 27718 additions and 0 deletions

24
src/store/useToast.ts Normal file
View File

@@ -0,0 +1,24 @@
import { create } from 'zustand';
interface ToastItem {
id: number;
message: string;
}
interface ToastState {
toasts: ToastItem[];
show: (message: string) => void;
dismiss: (id: number) => void;
}
let counter = 0;
export const useToastStore = create<ToastState>((set, get) => ({
toasts: [],
show: (message) => {
const id = ++counter;
set((s) => ({ toasts: [...s.toasts, { id, message }] }));
window.setTimeout(() => get().dismiss(id), 2200);
},
dismiss: (id) => set((s) => ({ toasts: s.toasts.filter((t) => t.id !== id) })),
}));