copy lai AppShell.tsx
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
import { ReactNode } from "react";
|
||||||
|
import TopNav from "@/components/TopNav";
|
||||||
|
import { useTheme } from "@/hooks/useTheme";
|
||||||
|
|
||||||
|
export default function AppShell({ children }: { children: ReactNode }) {
|
||||||
|
const { isDark } = useTheme();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={["min-h-dvh", isDark ? "bg-zinc-950 text-zinc-50" : "bg-zinc-100 text-zinc-900"].join(" ")}>
|
||||||
|
<TopNav />
|
||||||
|
<main className="mx-auto w-full max-w-7xl px-4 py-4 md:px-6 md:py-6">
|
||||||
|
{children}
|
||||||
|
</main>
|
||||||
|
<footer
|
||||||
|
className={[
|
||||||
|
"border-t px-4 py-4 text-center text-xs md:px-6",
|
||||||
|
isDark ? "border-zinc-800 text-zinc-400" : "border-zinc-300 text-zinc-600",
|
||||||
|
].join(" ")}
|
||||||
|
>
|
||||||
|
Copyright 2026 - IPCam Dashboard -{" "}
|
||||||
|
<a
|
||||||
|
href="https://ttaisolutions.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer"
|
||||||
|
className={["font-medium transition hover:underline", isDark ? "text-zinc-200" : "text-zinc-900"].join(" ")}
|
||||||
|
>
|
||||||
|
TTAI Solutions Software
|
||||||
|
</a>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user