clean routes
This commit is contained in:
@@ -13,22 +13,7 @@ import type { DriverViewModel } from '@/lib/view-models/DriverViewModel';
|
||||
import { DriverViewModel as DriverViewModelClass } from '@/lib/view-models/DriverViewModel';
|
||||
import { useServices } from '@/lib/services/ServiceProvider';
|
||||
|
||||
// Hook to detect sponsor mode
|
||||
function useSponsorMode(): boolean {
|
||||
const [isSponsor, setIsSponsor] = useState(false);
|
||||
useEffect(() => {
|
||||
const cookie = document.cookie
|
||||
.split('; ')
|
||||
.find(row => row.startsWith('gridpilot_demo_mode='));
|
||||
if (cookie) {
|
||||
const value = cookie.split('=')[1];
|
||||
setIsSponsor(value === 'sponsor');
|
||||
}
|
||||
}, []);
|
||||
return isSponsor;
|
||||
}
|
||||
|
||||
// Hook to detect demo user mode
|
||||
// Hook to detect demo user mode based on session
|
||||
function useDemoUserMode(): { isDemo: boolean; demoRole: string | null } {
|
||||
const { session } = useAuth();
|
||||
const [demoMode, setDemoMode] = useState({ isDemo: false, demoRole: null as string | null });
|
||||
@@ -42,21 +27,26 @@ function useDemoUserMode(): { isDemo: boolean; demoRole: string | null } {
|
||||
const email = session.user.email?.toLowerCase() || '';
|
||||
const displayName = session.user.displayName?.toLowerCase() || '';
|
||||
const primaryDriverId = (session.user as any).primaryDriverId || '';
|
||||
const role = (session.user as any).role;
|
||||
|
||||
// Check if this is a demo user
|
||||
if (email.includes('demo') ||
|
||||
displayName.includes('demo') ||
|
||||
primaryDriverId.startsWith('demo-')) {
|
||||
|
||||
let role = 'driver';
|
||||
if (email.includes('sponsor')) role = 'sponsor';
|
||||
else if (email.includes('league-owner') || displayName.includes('owner')) role = 'league-owner';
|
||||
else if (email.includes('league-steward') || displayName.includes('steward')) role = 'league-steward';
|
||||
else if (email.includes('league-admin') || displayName.includes('admin')) role = 'league-admin';
|
||||
else if (email.includes('system-owner') || displayName.includes('system owner')) role = 'system-owner';
|
||||
else if (email.includes('super-admin') || displayName.includes('super admin')) role = 'super-admin';
|
||||
// Use role from session if available, otherwise derive from email
|
||||
let roleToUse = role;
|
||||
if (!roleToUse) {
|
||||
if (email.includes('sponsor')) roleToUse = 'sponsor';
|
||||
else if (email.includes('league-owner') || displayName.includes('owner')) roleToUse = 'league-owner';
|
||||
else if (email.includes('league-steward') || displayName.includes('steward')) roleToUse = 'league-steward';
|
||||
else if (email.includes('league-admin') || displayName.includes('admin')) roleToUse = 'league-admin';
|
||||
else if (email.includes('system-owner') || displayName.includes('system owner')) roleToUse = 'system-owner';
|
||||
else if (email.includes('super-admin') || displayName.includes('super admin')) roleToUse = 'super-admin';
|
||||
else roleToUse = 'driver';
|
||||
}
|
||||
|
||||
setDemoMode({ isDemo: true, demoRole: role });
|
||||
setDemoMode({ isDemo: true, demoRole: roleToUse });
|
||||
} else {
|
||||
setDemoMode({ isDemo: false, demoRole: null });
|
||||
}
|
||||
@@ -149,7 +139,6 @@ export default function UserPill() {
|
||||
const { driverService, mediaService } = useServices();
|
||||
const [driver, setDriver] = useState<DriverViewModel | null>(null);
|
||||
const [isMenuOpen, setIsMenuOpen] = useState(false);
|
||||
const isSponsorMode = useSponsorMode();
|
||||
const { isDemo, demoRole } = useDemoUserMode();
|
||||
const shouldReduceMotion = useReducedMotion();
|
||||
|
||||
@@ -236,8 +225,6 @@ export default function UserPill() {
|
||||
try {
|
||||
// Call the logout API
|
||||
await fetch('/api/auth/logout', { method: 'POST' });
|
||||
// Clear any demo mode cookies
|
||||
document.cookie = 'gridpilot_demo_mode=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT';
|
||||
// Redirect to home
|
||||
window.location.href = '/';
|
||||
} catch (error) {
|
||||
@@ -509,4 +496,4 @@ export default function UserPill() {
|
||||
</AnimatePresence>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user