// Main app: view switcher + router
const App = () => {
const [view, setView] = useState(() => localStorage.getItem('pxs.view') || 'public');
const [publicRoute, setPublicRoute] = useState(() => {
try { return JSON.parse(localStorage.getItem('pxs.publicRoute')) || { route: 'home' }; } catch { return { route: 'home' }; }
});
const [cmsRoute, setCmsRoute] = useState(() => {
try { return JSON.parse(localStorage.getItem('pxs.cmsRoute')) || { route: 'dashboard' }; } catch { return { route: 'dashboard' }; }
});
const [state, setState] = useState({
packages: INITIAL_PACKAGES,
vehicles: INITIAL_VEHICLES,
blogs: INITIAL_BLOGS,
pages: INITIAL_PAGES,
inquiries: INITIAL_INQUIRIES,
users: INITIAL_USERS,
settings: INITIAL_SETTINGS,
nav: INITIAL_NAV,
});
const [tweaksActive, setTweaksActive] = useState(false);
const [tweaks, setTweaks] = useState({ accent: '#E85D2F', greenDeep: '#1F3A2B', radius: 'medium', displayFont: 'Fraunces' });
useEffect(() => {
window.addEventListener('message', (e) => {
if (e.data?.type === '__activate_edit_mode') setTweaksActive(true);
if (e.data?.type === '__deactivate_edit_mode') setTweaksActive(false);
});
window.parent.postMessage({ type: '__edit_mode_available' }, '*');
}, []);
useEffect(() => { localStorage.setItem('pxs.view', view); }, [view]);
useEffect(() => { localStorage.setItem('pxs.publicRoute', JSON.stringify(publicRoute)); }, [publicRoute]);
useEffect(() => { localStorage.setItem('pxs.cmsRoute', JSON.stringify(cmsRoute)); }, [cmsRoute]);
const navigate = (r) => { setPublicRoute(r); window.scrollTo(0, 0); };
const renderPublic = () => {
switch (publicRoute.route) {
case 'tours': return