import React from 'react'; import { Loader2, PanelLeftClose, PanelRightOpen } from 'lucide-react'; import { Button } from '@/components/ui/button'; const DEV_TENANT_KEYS = [ { key: 'cust-standard-empty', label: 'Endkunde – Standard (kein Event)' }, { key: 'cust-starter-wedding', label: 'Endkunde – Starter (Hochzeit)' }, { key: 'reseller-s-active', label: 'Reseller S – 3 aktive Events' }, { key: 'reseller-s-full', label: 'Reseller S – voll belegt (5/5)' }, ] as const; declare global { interface Window { fotospielDemoAuth?: { clients: Record; loginAs: (tenantKey: string) => Promise; }; } } export function DevTenantSwitcher() { const helper = window.fotospielDemoAuth; const [loggingIn, setLoggingIn] = React.useState(null); const [collapsed, setCollapsed] = React.useState(() => { if (typeof window === 'undefined') { return false; } try { return window.localStorage.getItem('fotospiel-dev-switcher-collapsed') === '1'; } catch (error) { console.warn('[DevAuth] Failed to read collapse state', error); return false; } }); React.useEffect(() => { if (typeof window === 'undefined') { return; } try { window.localStorage.setItem('fotospiel-dev-switcher-collapsed', collapsed ? '1' : '0'); } catch (error) { console.warn('[DevAuth] Failed to persist collapse state', error); } }, [collapsed]); if (!helper) { return null; } if (collapsed) { return ( ); } async function handleLogin(key: string) { if (!helper) return; setLoggingIn(key); try { await helper.loginAs(key); } catch (error) { console.error('[DevAuth] Switch failed', error); setLoggingIn(null); } } return (
Demo tenants Dev mode

Select a seeded tenant to mint Sanctum PATs and jump straight into their admin space. Available only in development builds.

{DEV_TENANT_KEYS.map(({ key, label }) => ( ))}

Console: fotospielDemoAuth.loginAs('lumen')

); } export default DevTenantSwitcher;