// @ts-ignore import "../styles/main.css"; import React from "react"; import type { BunextPageHeadFCProps, BunextRootComponentProps, } from "@moduletrace/bunext/types"; import type { AppContextObject, AppStateObject, PagePropsType, } from "@/src/types"; import { SiteData } from "@/src/data/site-data"; import Layout from "../layouts/main"; import AuthLayout from "../layouts/auth"; import BotsLayout from "../layouts/bots"; import ThemeInitScript from "../components/general/theme-init-script"; import PwaInitScript from "../components/general/pwa-init-script"; import ServiceWorkerRegistrar from "../components/general/service-worker-registrar"; export const AppContext = React.createContext( {} as AppContextObject, ); /** * # NextApp App Root * @description Root component for NextApp App (Next.js) */ export default function App({ children, props, url, query, }: BunextRootComponentProps) { const [refresh, setRefresh] = React.useState(0); const [appState, setAppState] = React.useState({ likes: null, }); const page_props = props as PagePropsType; const appContextObject: AppContextObject = { user: page_props?.user || null, user_types: page_props?.user_types || null, appState, setAppState, refresh, setRefresh, SITE_DATA: { siteName: SiteData["SiteName"], }, pageProps: { ...props, url }, query, }; if (url?.pathname.startsWith("/admin")) { return ( {children} ); } if ( url?.pathname.startsWith("/auth") && !url.pathname.startsWith("/auth/logout") ) { return ( {children} ); } return ( {children} ); } export function Head({ serverRes, ctx }: BunextPageHeadFCProps) { return ( <> ); }