Files
codeaashu-claude-code/web/hooks/useToast.ts
ashutoshpythoncs@gmail.com b564857c0b claude-code
2026-03-31 18:58:05 +05:30

30 lines
879 B
TypeScript

"use client";
import { useCallback } from "react";
import { useNotificationStore, DEFAULT_DURATIONS, type ToastVariant } from "@/lib/notifications";
export interface ToastOptions {
variant: ToastVariant;
title: string;
description?: string;
duration?: number;
action?: { label: string; onClick: () => void };
details?: string;
}
export function useToast() {
const addToast = useNotificationStore((s) => s.addToast);
const dismissToast = useNotificationStore((s) => s.dismissToast);
const dismissAllToasts = useNotificationStore((s) => s.dismissAllToasts);
const toast = useCallback(
(options: ToastOptions): string => {
const duration = options.duration ?? DEFAULT_DURATIONS[options.variant];
return addToast({ ...options, duration });
},
[addToast]
);
return { toast, dismiss: dismissToast, dismissAll: dismissAllToasts };
}