diff --git a/src/widgets/quick-create/ui/QuickCreate.tsx b/src/widgets/quick-create/ui/QuickCreate.tsx index f1e3a4d..37f7da9 100644 --- a/src/widgets/quick-create/ui/QuickCreate.tsx +++ b/src/widgets/quick-create/ui/QuickCreate.tsx @@ -1,28 +1,63 @@ 'use client'; - +import { useState, type ComponentType } from 'react'; +import { FolderPlus, Plus, UsersRound, LayoutGrid } from 'lucide-react'; +import { useParams } from 'next/navigation'; import { useTeamStore } from 'entities/team'; import { CreateProjectDialog } from 'features/projects/create'; import { CreateTeamDialog } from 'features/teams/create'; -import { FolderPlus, Plus, UsersRound } from 'lucide-react'; -import { useState } from 'react'; -import { - Button, - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, - Item, - ItemContent, - ItemDescription, - ItemMedia, - ItemTitle, -} from 'shared/ui'; +import { CreateBoardDialog } from 'features/boards/create'; +import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from 'shared/ui'; +import { QuickCreateItem } from './QuickCreateItem'; + +interface MenuItemConfig { + title: string; + description: string; + icon: ComponentType<{ className?: string }>; + disabled?: boolean; + onOpenChange: () => void; +} export function QuickCreate() { const teamId = useTeamStore.use.teamId(); const [open, setOpen] = useState(false); const [createTeamOpen, setCreateTeamOpen] = useState(false); const [createProjectOpen, setCreateProjectOpen] = useState(false); + const [createBoardOpen, setCreateBoardOpen] = useState(false); + + const params = useParams<{ projectSlug: string }>(); + const projectSlug = params?.projectSlug; + + const menuItems: MenuItemConfig[] = [ + { + title: 'Команда', + description: 'Создать новую команду', + icon: UsersRound, + onOpenChange: () => { + setOpen(false); + setCreateTeamOpen(true); + }, + }, + { + title: 'Проект', + description: 'Создать новый проект', + icon: FolderPlus, + disabled: !teamId, + onOpenChange: () => { + setOpen(false); + setCreateProjectOpen(true); + }, + }, + { + title: 'Доска', + description: 'Создать новую доску в проекте', + icon: LayoutGrid, + disabled: !projectSlug, + onOpenChange: () => { + setOpen(false); + setCreateBoardOpen(true); + }, + }, + ]; return (