wisatin/src/pages/_app.tsx
2025-12-06 08:37:34 +07:00

67 lines
2.3 KiB
TypeScript

import React from 'react';
import { ConfigProvider } from 'antd';
import type { AppProps } from 'next/app';
import theme from '@/theme/themeConfig';
import { Poppins } from 'next/font/google';
import Head from 'next/head';
import GroupContextProvider from '@/Contexts/GroupContextProvider';
import { useRouter } from 'next/router';
import { publicRoutes } from '@/Constants/PublicRoutes';
import PublicPageLayout from '@/Components/Organisms/PublicPageLayout';
import { adminRoutes } from '@/Constants/AdminRoutes';
import AdminPageLayout from '@/Components/Organisms/AdminPageLayout';
import ProtectedPageLayout from '@/Components/Organisms/ProtectedPageLayout';
import '@/Styles/globals.css';
const poppins = Poppins({
subsets: ['latin'],
weight: ['400', '500', '600', '700'],
variable: '--font-poppins',
});
const AppLayout = ({ Component, ...pageProps }: AppProps) => {
const router = useRouter();
if (publicRoutes.includes(router.pathname))
return (
<PublicPageLayout className={poppins.variable}>
<Component {...pageProps} />
</PublicPageLayout>
);
else if(adminRoutes.includes(router.pathname))
<AdminPageLayout className={poppins.variable}>
<Component {...pageProps} />
</AdminPageLayout>
else
return (
<ProtectedPageLayout className={poppins.variable}>
<Component {...pageProps} />
</ProtectedPageLayout>
);
};
const App = ({ Component, pageProps }: AppProps) => {
return (
<>
<Head>
<title>Wisatin</title>
<meta charSet="utf-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Generated by Wisatin" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Wisatin" />
<meta name="og:description" content="Generated by Wisatin" />
<meta name="og:image:alt" content="Wisatin logo" />
<meta name="twitter:image:alt" content="Wisatin logo" />
<meta name="twitter:description" content="Generated by Wisatin" />
</Head>
<GroupContextProvider>
<AppLayout Component={Component} {...pageProps} />
</GroupContextProvider>
</>
);
};
export default App;