"use client"; // ============================================================================ // Project Selector (Multi-select) // ============================================================================ import * as React from "react"; import { Check, ChevronsUpDown, Tv, X } from "lucide-react"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, DropdownMenuSeparator, } from "@/components/ui/dropdown-menu"; import { Checkbox } from "@/components/ui/checkbox"; import { Badge } from "@/components/ui/badge"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { useWorkspace } from "@/components/providers/workspace-provider"; import { cn } from "@/lib/utils"; export const ProjectSelector: React.FC = () => { const { projects, selectedProjects, toggleProject, selectAllProjects, clearProjectSelection, isLoadingProjects, } = useWorkspace(); if (isLoadingProjects) { return (
); } if (projects.length === 0) { return (
Нет проектов
); } const allSelected = selectedProjects.length === projects.length; const getAvatarUrl = (project: typeof projects[0]) => { return project.username ? `https://t.me/i/userpic/320/${project.username}.jpg` : null; }; return ( {/* Quick actions */}
{/* Projects list */}
{projects.map((project) => { const isSelected = selectedProjects.some((p) => p.id === project.id); const isOnlyOne = selectedProjects.length === 1 && isSelected; return (
!isOnlyOne && toggleProject(project)} > !isOnlyOne && toggleProject(project)} className="shrink-0" /> {project.title.charAt(0).toUpperCase()} {project.title}
); })}
); };