import React from 'react'; import { Loader2, PanelLeftClose, PanelRightOpen } from 'lucide-react'; import { XStack, YStack } from '@tamagui/stacks'; import { SizableText as Text } from '@tamagui/text'; import { Button } from '@tamagui/button'; import { useTheme } from '@tamagui/core'; const DEV_TENANT_KEYS = [ { key: 'cust-standard-empty', label: 'Endkunde – Starter (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; }; } } type DevTenantSwitcherProps = { bottomOffset?: number; variant?: 'floating' | 'inline'; }; export function DevTenantSwitcher({ bottomOffset = 16, variant = 'floating' }: DevTenantSwitcherProps) { const helper = window.fotospielDemoAuth; const theme = useTheme(); 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; } 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); } } if (variant === 'inline') { if (collapsed) { return ( ); } return ( Demo tenants Dev mode ))} ); } if (collapsed) { return ( ); } return ( Demo tenants Dev mode ))} Console: fotospielDemoAuth.loginAs('lumen') ); } export default DevTenantSwitcher;