0.1.5Updated 6 months ago
import type { PageProps } from "$fresh/server.ts";

import { TopBar } from "@infinity-beyond/ui/components/ui/TopBar.tsx";
import { Drawer } from "@infinity-beyond/ui/components/ui/layout/Drawer.tsx";
import { Partial } from "$fresh/runtime.ts";
import State from "@infinity-beyond/modules/state.ts";

// deno-lint-ignore no-explicit-any
export default function InfinityApp({ Component, state }: PageProps<any, Infinity.Context>) {
  return (
    <html class="h-full">
      <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        <title>{ State.Application!.app_name }</title>

        <link rel="icon" type="image/png" href="/favicon-96x96.png" sizes="96x96" />
        <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
        <link rel="shortcut icon" href="/favicon.ico" />
        <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
        <meta name="apple-mobile-web-app-title" content="Infinity" />
        <link rel="manifest" href="/site.webmanifest" />

        <link rel="stylesheet" href="/styles.css" />
      </head>
      <body class="h-full" f-client-nav>
        <Drawer state={state} >
          <TopBar state={state} />
          <Partial name="main">
            <div class="grow-1 h-full">
              <Component />
            </div>
          </Partial>
        </Drawer>
      </body>
    </html>
  );
}