Skip to content
Merged
10 changes: 9 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,19 @@
"@radix-ui/react-avatar": "^1.1.1",
"@radix-ui/react-dialog": "^1.1.14",
"@radix-ui/react-dropdown-menu": "^2.1.15",
"@radix-ui/react-label": "^2.1.6",
"@radix-ui/react-label": "^2.1.7",
"@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-select": "^2.1.1",
"@radix-ui/react-separator": "^1.1.7",
"@radix-ui/react-slot": "^1.2.3",
"@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-tooltip": "^1.2.7",
"@radix-ui/react-visually-hidden": "^1.2.3",
"@tanstack/react-query": "^5.85.5",
"@tanstack/react-table": "^8.21.3",
"@tiptap/extension-code-block-lowlight": "^3.4.1",
"@tiptap/extension-horizontal-rule": "^3.4.1",
"@tiptap/extension-image": "^3.2.0",
"@tiptap/extension-link": "^3.2.0",
"@tiptap/extension-placeholder": "^3.2.0",
Expand All @@ -48,11 +52,15 @@
"clsx": "^2.1.1",
"cookie": "^1.0.2",
"date-fns": "^4.1.0",
"dompurify": "^3.2.6",
"embla-carousel-autoplay": "^8.2.0",
"embla-carousel-react": "^8.2.0",
"highlight.js": "^11.11.1",
"js-cookie": "^3.0.5",
"jwt-decode": "^4.0.0",
"lowlight": "^3.3.0",
"lucide-react": "^0.536.0",
"marked": "^16.2.1",
"motion": "^12.7.4",
"next": "15.3.2",
"next-intl": "^4.1.0",
Expand Down
125 changes: 118 additions & 7 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 13 additions & 8 deletions src/app/[locale]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import { AuthJwtPayload } from "@/types";
import { jwtDecode } from "jwt-decode";
import { ThemeProvider } from "@/components/provider/ThemeProvider";
import TanstackProvider from "@/components/provider/TanstackProvider";
import { DialogProvider } from "@/contexts/dialogContext";
import DialogGlobal from "@/components/common/DialogGlobal";
const sora = Sora({ subsets: ["latin"] });

type Props = {
Expand Down Expand Up @@ -58,14 +60,17 @@ export default async function LocaleRootLayout(props: Readonly<Props>) {
<html lang={locale} suppressHydrationWarning>
<body className={`${sora.className}`}>
<NextIntlClientProvider messages={messages}>
<TanstackProvider>
<AuthProvider payload={payload}>
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
{children}
</ThemeProvider>
</AuthProvider>
</TanstackProvider>
<Toaster />
<DialogProvider>
<TanstackProvider>
<AuthProvider payload={payload}>
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
{children}
</ThemeProvider>
</AuthProvider>
</TanstackProvider>
<Toaster />
<DialogGlobal />
</DialogProvider>
</NextIntlClientProvider>
</body>
</html>
Expand Down
17 changes: 17 additions & 0 deletions src/components/common/DialogGlobal/DialogError.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { CircleX } from "lucide-react";

interface DialogErrorProps {
title: string;
description: string;
}

const DialogError = ({ title, description }: DialogErrorProps) => {
return (
<section className="flex w-full flex-col items-center justify-center gap-2">
<CircleX className="h-16 w-16 text-red-500" />
<h1 className="text-xl font-semibold">{title}</h1>
<p className="text-center text-gray-500">{description}</p>
</section>
);
};
export default DialogError;
Loading