import { useState } from "react"; import TabNavigation from "./components/TabNavigation"; import SetupWizard from "./pages/SetupWizard"; import Onboarding from "./pages/Onboarding"; import Dashboard from "./pages/Dashboard"; import AutoPost from "./pages/AutoPost"; import Scheduler from "./pages/Scheduler"; import Analytics from "./pages/Analytics"; import Profiles from "./pages/Profiles"; import Settings from "./pages/Settings"; type Tab = "dashboard" | "scheduler" | "autopost" | "analytics" | "profiles" | "settings"; export default function App() { const params = new URLSearchParams(window.location.search); const tabMap: Record = { dashboard: "dashboard", connect: "profiles", compose: "scheduler", calendar: "scheduler", scheduler: "scheduler", autopost: "autopost", activity: "dashboard", analytics: "analytics", settings: "settings", profiles: "profiles", about: "settings", }; const rawTab = params.get("tab") || "dashboard"; const initialTab = tabMap[rawTab] || "dashboard"; const [showConnectedBanner] = useState(() => params.get("connected") === "1"); const [activeTab, setActiveTabState] = useState(initialTab); const setActiveTab = (tab: Tab) => { setActiveTabState(tab); const url = new URL(window.location.href); url.searchParams.set("tab", tab); window.history.replaceState({}, "", url.toString()); }; const [wizardSkipped, setWizardSkipped] = useState(false); if (!viralyWP.isConnected) { if (!wizardSkipped && !sessionStorage.getItem("viraly_wizard_skipped")) { return ( { setWizardSkipped(true); sessionStorage.setItem("viraly_wizard_skipped", "1"); }} /> ); } return ; } const renderTab = () => { switch (activeTab) { case "dashboard": return ; case "scheduler": return ; case "autopost": return ; case "analytics": return ; case "profiles": return ; case "settings": return ; default: return ; } }; return (
{showConnectedBanner && (
Your site is connected! Head to{" "} {" "} to connect your social accounts.
)}
{renderTab()}
); }