Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions client/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand All @@ -25,10 +26,12 @@ const App = () => {
<RecoilRoot>
<ThemeProvider>
<RadixToast.Provider>
<RouterProvider router={router} />
<ReactQueryDevtools initialIsOpen={false} position="top-right" />
<Toast />
<RadixToast.Viewport className="pointer-events-none fixed inset-0 z-[60] mx-auto my-2 flex max-w-[560px] flex-col items-stretch justify-start md:pb-5" />
<ToastProvider>
<RouterProvider router={router} />
<ReactQueryDevtools initialIsOpen={false} position="top-right" />
<Toast />
<RadixToast.Viewport className="pointer-events-none fixed inset-0 z-[60] mx-auto my-2 flex max-w-[560px] flex-col items-stretch justify-start md:pb-5" />
</ToastProvider>
</RadixToast.Provider>
</ThemeProvider>
</RecoilRoot>
Expand Down
17 changes: 17 additions & 0 deletions client/src/Providers/ToastContext.tsx
Original file line number Diff line number Diff line change
@@ -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<ToastContextType>({
showToast: () => ({}),
});

export default function ToastProvider({ children }) {
const { showToast } = useToast();

return <ToastContext.Provider value={{ showToast }}>{children}</ToastContext.Provider>;
}
2 changes: 2 additions & 0 deletions client/src/Providers/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export { default as ToastProvider } from './ToastContext';
export * from './ToastContext';
6 changes: 6 additions & 0 deletions client/src/common/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
9 changes: 2 additions & 7 deletions client/src/hooks/useToast.ts
Original file line number Diff line number Diff line change
@@ -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';

Expand All @@ -15,12 +16,6 @@ export default function useToast(timeoutDuration = 100) {
};
}, []);

type TShowToast = {
message: string;
severity?: NotificationSeverity;
showIcon?: boolean;
};

const showToast = ({
message,
severity = NotificationSeverity.SUCCESS,
Expand Down