diff --git a/client/src/App.jsx b/client/src/App.jsx
index 8eb316b15..a2bb729c6 100644
--- a/client/src/App.jsx
+++ b/client/src/App.jsx
@@ -4,6 +4,7 @@ import { RouterProvider } from 'react-router-dom';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { QueryClient, QueryClientProvider, QueryCache } from '@tanstack/react-query';
import { ScreenshotProvider, ThemeProvider, useApiErrorBoundary } from './hooks';
+import { ToastProvider } from './Providers';
import Toast from './components/ui/Toast';
import { router } from './routes';
@@ -25,10 +26,12 @@ const App = () => {
-
-
-
-
+
+
+
+
+
+
diff --git a/client/src/Providers/ToastContext.tsx b/client/src/Providers/ToastContext.tsx
new file mode 100644
index 000000000..88229f9c0
--- /dev/null
+++ b/client/src/Providers/ToastContext.tsx
@@ -0,0 +1,17 @@
+import { createContext } from 'react';
+import type { TShowToast } from '~/common';
+import { useToast } from '~/hooks';
+
+type ToastContextType = {
+ showToast: ({ message, severity, showIcon }: TShowToast) => void;
+};
+
+export const ToastContext = createContext({
+ showToast: () => ({}),
+});
+
+export default function ToastProvider({ children }) {
+ const { showToast } = useToast();
+
+ return {children};
+}
diff --git a/client/src/Providers/index.ts b/client/src/Providers/index.ts
new file mode 100644
index 000000000..41cb62ae9
--- /dev/null
+++ b/client/src/Providers/index.ts
@@ -0,0 +1,2 @@
+export { default as ToastProvider } from './ToastContext';
+export * from './ToastContext';
diff --git a/client/src/common/types.ts b/client/src/common/types.ts
index e9cdadf15..5397cc2d8 100644
--- a/client/src/common/types.ts
+++ b/client/src/common/types.ts
@@ -28,6 +28,12 @@ export enum NotificationSeverity {
ERROR = 'error',
}
+export type TShowToast = {
+ message: string;
+ severity?: NotificationSeverity;
+ showIcon?: boolean;
+};
+
export type TBaseSettingsProps = {
conversation: TConversation | TPreset | null;
className?: string;
diff --git a/client/src/hooks/useToast.ts b/client/src/hooks/useToast.ts
index 10792c6e5..455f9f0ff 100644
--- a/client/src/hooks/useToast.ts
+++ b/client/src/hooks/useToast.ts
@@ -1,5 +1,6 @@
-import { useRef, useEffect } from 'react';
import { useRecoilState } from 'recoil';
+import { useRef, useEffect } from 'react';
+import type { TShowToast } from '~/common';
import { NotificationSeverity } from '~/common';
import store from '~/store';
@@ -15,12 +16,6 @@ export default function useToast(timeoutDuration = 100) {
};
}, []);
- type TShowToast = {
- message: string;
- severity?: NotificationSeverity;
- showIcon?: boolean;
- };
-
const showToast = ({
message,
severity = NotificationSeverity.SUCCESS,