Skip to content

Commit 6aa35bc

Browse files
committed
feat: improve appearance of toast messages
1 parent 380d03a commit 6aa35bc

File tree

3 files changed

+42
-4
lines changed

3 files changed

+42
-4
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { forwardRef, type PropsWithChildren } from "react";
2+
3+
import { Alert } from "@mui/material";
4+
import { type CustomContentProps, SnackbarProvider } from "notistack";
5+
6+
const CustomSnackbar = forwardRef<HTMLDivElement, CustomContentProps>(
7+
({ message, variant = "default" }, ref) => {
8+
// Map notistack variants to MUI Alert severity
9+
const severity = variant === "default" ? "info" : variant;
10+
11+
return (
12+
<Alert
13+
ref={ref}
14+
severity={severity}
15+
sx={{ width: "100%", bgcolor: "background.paper" }}
16+
variant="outlined"
17+
>
18+
{message}
19+
</Alert>
20+
);
21+
},
22+
);
23+
24+
CustomSnackbar.displayName = "CustomSnackbar";
25+
26+
export const ConfiguredSnackbarProvider = ({ children }: PropsWithChildren) => (
27+
<SnackbarProvider
28+
Components={{
29+
success: CustomSnackbar,
30+
error: CustomSnackbar,
31+
warning: CustomSnackbar,
32+
info: CustomSnackbar,
33+
default: CustomSnackbar,
34+
}}
35+
>
36+
{children}
37+
</SnackbarProvider>
38+
);

src/components/eventMessages/ProcessingChargeMessage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export const ProcessingChargeMessage = ({ coins, product }: ProcessingChargeMess
4040

4141
<Typography>
4242
<Button
43-
color="secondary"
43+
color="info"
4444
href={projectURL(productData.claim.id)}
4545
rel="noreferrer"
4646
sx={{ textTransform: "none" }}

src/pages/_app.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
1313
import { enableMapSet } from "immer";
1414
import { type AppProps } from "next/app";
1515
import Head from "next/head";
16-
import { SnackbarProvider } from "notistack";
1716

17+
import { ConfiguredSnackbarProvider } from "../components/app/ConfiguredSnackbarProvider";
1818
import { ThemeProviders } from "../components/app/ThemeProviders";
1919
import { TopLevelHooks } from "../components/app/TopLevelHooks";
2020
import { EventStream } from "../components/EventStream";
@@ -63,14 +63,14 @@ const App = ({ Component, pageProps }: CustomAppProps) => {
6363
>
6464
<QueryClientProvider client={queryClient}>
6565
<HydrationBoundary state={pageProps.dehydratedState}>
66-
<SnackbarProvider>
66+
<ConfiguredSnackbarProvider>
6767
<EventStream />
6868
<MDXComponentProvider>
6969
<TopLevelHooks>
7070
<Component {...pageProps} />
7171
</TopLevelHooks>
7272
</MDXComponentProvider>
73-
</SnackbarProvider>
73+
</ConfiguredSnackbarProvider>
7474
</HydrationBoundary>
7575
<ReactQueryDevtools client={queryClient} />
7676
</QueryClientProvider>

0 commit comments

Comments
 (0)