From 70e5dc34aea348e2ec753fcd2c7495264bd660a5 Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Thu, 13 Nov 2025 05:50:20 +0000 Subject: [PATCH] Create use-arm-toast hook for themed notifications cgen-8a837bccec404388a3778501c434a68f --- client/hooks/use-arm-toast.ts | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 client/hooks/use-arm-toast.ts diff --git a/client/hooks/use-arm-toast.ts b/client/hooks/use-arm-toast.ts new file mode 100644 index 00000000..47b8d068 --- /dev/null +++ b/client/hooks/use-arm-toast.ts @@ -0,0 +1,60 @@ +import { useArmTheme } from "@/contexts/ArmThemeContext"; +import { aethexToast } from "@/lib/aethex-toast"; + +interface ArmToastOptions { + title?: string; + description?: string; + duration?: number; +} + +export function useArmToast() { + const { theme } = useArmTheme(); + + return { + /** + * Show a toast with the current arm's accent color + */ + show: (options: ArmToastOptions) => { + return aethexToast.arm({ + ...options, + accentColor: theme.accentHex, + }); + }, + + /** + * Show a success toast with the current arm's accent color + */ + success: (options: ArmToastOptions) => { + return aethexToast.arm({ + title: options.title || "Success", + description: options.description, + duration: options.duration || 5000, + accentColor: theme.accentHex, + }); + }, + + /** + * Show an error toast with the current arm's accent color + */ + error: (options: ArmToastOptions) => { + return aethexToast.arm({ + title: options.title || "Error", + description: options.description, + duration: options.duration || 5000, + accentColor: theme.accentHex, + }); + }, + + /** + * Show a warning toast with the current arm's accent color + */ + warning: (options: ArmToastOptions) => { + return aethexToast.arm({ + title: options.title || "Warning", + description: options.description, + duration: options.duration || 5000, + accentColor: theme.accentHex, + }); + }, + }; +}