Layout.jsx - BACKUP
import React from "react";
import { Link, useLocation } from "react-router-dom";
import { useEffect } from "react";
import { createPageUrl } from "@/utils";
import { User } from "@/entities/User";
import { LogOut, LogIn, Users, FileText, Phone, HelpCircle, Globe, MessageCircle, Video, BookOpen, ChevronDown, Book, DollarSign } from "lucide-react";
import { initAnalytics, pageView } from "@/components/analytics";
import JsonLD from "@/components/JsonLD";
import Perf from "@/components/Perf";
import { captureAttributionFromURL } from "@/components/referrals/ReferralManager";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { Button } from "@/components/ui/button";
export default function Layout({ children, currentPageName }) {
const location = useLocation();
const [user, setUser] = React.useState(null);
React.useEffect(() => {
const checkUser = async () => {
try {
const currentUser = await User.me();
setUser(currentUser);
} catch (error) {
setUser(null);
}
};
checkUser();
}, [location.pathname]);
useEffect(() => {
initAnalytics();
captureAttributionFromURL();
}, []);
useEffect(() => {
pageView(location.pathname, document.title || currentPageName || "Unknown Page");
}, [location.pathname, currentPageName]);
const handleLogout = async () => {
await User.logout();
setUser(null);
window.location.reload();
};
const handleLogin = async () => {
const currentUrl = window.location.href;
await User.loginWithRedirect(currentUrl);
};
const hasSubscription = user?.hasActiveSubscription === true;
return (
<>
<Perf />
<JsonLD data={{
"@context": "https://schema.org",
"@type": "Organization",
name: "Parent Whisperer",
url: "https://parentwhisperer.info"
}} />
<div className="min-h-screen bg-gradient-to-b from-gray-50 to-white flex flex-col">
<header className="bg-gradient-to-r from-green-600 to-green-700 text-white shadow-lg">
<div className="container mx-auto px-6 py-3">
<div className="flex justify-between items-center">
<Link to={createPageUrl("Home")}>
<h1 className="text-2xl font-bold">Parent Whisperer</h1>
</Link>
{user ? (
<Button variant="ghost" onClick={handleLogout}>
<LogOut className="w-4 h-4" />
Log Out
</Button>
) : (
<Button variant="ghost" onClick={handleLogin}>
<LogIn className="w-4 h-4" />
Log In
</Button>
)}
</div>
<nav className="mt-3">
{/* Navigation menu */}
</nav>
</div>
</header>
<main className="container mx-auto px-4 py-4 flex-1">
{children}
</main>
</div>
</>
);
}