'use client'; //=========================================== // THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY UNLESS YOU ALSO EDIT THE CORRESPONDING FILE IN packages/template //=========================================== import { HexclaveAssertionError } from "@hexclave/shared/dist/utils/errors"; import { runAsynchronouslyWithAlert } from "@hexclave/shared/dist/utils/promises"; import { Button, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, Skeleton, Typography, cn, } from "@hexclave/ui"; import { PlusCircle, Settings } from "lucide-react"; import { Suspense, useMemo } from "react"; import { Team, useStackApp, useUser } from ".."; import { useTranslation } from "../lib/translations"; import { TeamIcon } from "./team-icon"; type MockTeam = { id: string, displayName: string, profileImageUrl?: string | null, }; type TeamSwitcherProps = { team?: Team, teamId?: string, teams?: Team[], allowNull?: AllowNull, nullLabel?: string, triggerClassName?: string, onChange?: (team: AllowNull extends true ? Team | null : Team) => Promise, // Mock data props mockUser?: { team?: MockTeam, }, mockTeams?: MockTeam[], mockProject?: { config: { clientTeamCreationEnabled: boolean, }, }, }; export function TeamSwitcher(props: TeamSwitcherProps) { return }> ; } function Fallback() { return ; } function Inner(props: TeamSwitcherProps) { const { t } = useTranslation(); const appFromHook = useStackApp(); const userFromHook = useUser(); // Use mock data if provided, otherwise use real data const app = props.mockUser ? { useProject: () => props.mockProject || { config: { clientTeamCreationEnabled: false } }, redirectToAccountSettings: async () => {}, } : appFromHook; const user = props.mockUser ? { selectedTeam: props.mockUser.team, useTeams: () => props.mockTeams || [], setSelectedTeam: async () => {}, // Mock function } : userFromHook; const project = app.useProject(); const rawTeams = props.teams ?? user?.useTeams(); const selectedTeam = props.team || rawTeams?.find(team => team.id === props.teamId); const teams = useMemo(() => rawTeams?.sort((a, b) => b.id === selectedTeam?.id ? 1 : -1), [rawTeams, selectedTeam]); return ( ); }