"use client" import * as React from "react" import { ChevronsUpDown, Check, CirclePlus } from 'lucide-react'; import { cn } from "@/lib/utils" import { Avatar, AvatarFallback, AvatarImage, } from "@/components/ui/avatar" import { Button } from "@/components/ui/button" import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, } from "@/components/ui/command" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { useConfig } from "@/hooks/use-config"; import { useMediaQuery } from "@/hooks/use-media-query"; import { motion, AnimatePresence } from "framer-motion"; import { useMenuHoverConfig } from "@/hooks/use-menu-hover"; const groups = [ { label: "Personal Account", teams: [ { label: "Designing Workspace", value: "personal", }, ], }, { label: "Teams", teams: [ { label: "Core Workspace", value: "acme-inc", }, { label: "Dev.Workspace", value: "monsters", }, ], }, ] type Team = (typeof groups)[number]["teams"][number] type PopoverTriggerProps = React.ComponentPropsWithoutRef interface TeamSwitcherProps extends PopoverTriggerProps { } const scaleVariants = { collapsed: { scale: 0.8 }, expanded: { scale: 1 } }; export default function TeamSwitcher({ className }: TeamSwitcherProps) { const [config] = useConfig(); const [hoverConfig] = useMenuHoverConfig(); const { hovered } = hoverConfig; const [data, setData] = React.useState(); const [open, setOpen] = React.useState(false) const [showNewTeamDialog, setShowNewTeamDialog] = React.useState(false) const [selectedTeam, setSelectedTeam] = React.useState( groups[0].teams[0] ) const isDesktop = useMediaQuery("(min-width: 1280px)") if (config.showSwitcher === false || config.sidebar === 'compact') return null return ( {(config.collapsed && !hovered) ? : } No team found. {groups.map((group) => ( {group.teams.map((team) => ( { setSelectedTeam(team) setOpen(false) }} className="text-sm font-normal" > {team.label} ))} ))} { setOpen(false) setShowNewTeamDialog(true) }} > Create Team Create team Add a new team to manage products and customers.
) }