import Layout from "@/components/Layout"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import RealmSwitcher, { REALM_OPTIONS, RealmKey } from "@/components/settings/RealmSwitcher"; import { useAuth } from "@/contexts/AuthContext"; import { useMemo, useState } from "react"; import { useNavigate } from "react-router-dom"; import { cn } from "@/lib/utils"; export default function Realms() { const { user, profile, roles, updateProfile } = useAuth(); const navigate = useNavigate(); const [activating, setActivating] = useState(null); const [selectedRealm, setSelectedRealm] = useState((profile as any)?.user_type ?? null); const [experience, setExperience] = useState((profile as any)?.experience_level || "beginner"); const [saving, setSaving] = useState(false); const lastRealm = (profile as any)?.user_type as RealmKey | undefined; const canSeeStaff = useMemo( () => roles.some((r) => ["owner", "admin", "founder", "staff", "employee"].includes(r.toLowerCase())), [roles], ); const visible = useMemo( () => REALM_OPTIONS.filter((o) => (o.id === "staff" ? canSeeStaff : true)), [canSeeStaff], ); return (
Realms

Choose your realm

Your dashboard adapts to the selected realm. Last used realm is highlighted.

{/* Realm & Path manager */}
{ if (!selectedRealm) return; if (!user) { navigate("/onboarding"); return; } setSaving(true); try { await updateProfile({ user_type: selectedRealm, experience_level: experience } as any); navigate("/dashboard", { replace: true }); } finally { setSaving(false); } }} saving={saving} />
); }