copy lai AppShell.tsx

This commit is contained in:
2026-05-20 10:22:41 +07:00
parent edb8c7bdab
commit 0491789777
+32
View File
@@ -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>
);
}