diff --git a/src/widgets/quick-create/ui/QuickCreate.tsx b/src/widgets/quick-create/ui/QuickCreate.tsx index f1e3a4d..b3925b8 100644 --- a/src/widgets/quick-create/ui/QuickCreate.tsx +++ b/src/widgets/quick-create/ui/QuickCreate.tsx @@ -1,28 +1,22 @@ 'use client'; - +import { useState } 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'; // ← Новый импорт 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; return (
@@ -41,51 +35,45 @@ export function QuickCreate() { align="end" className="w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg" > - { - e.preventDefault(); + } + title="Команда" + description="Создать новую команду" + onOpenChange={() => { setOpen(false); setCreateTeamOpen(true); }} - > - - - - - - Команда - - Создать новую команду - - - - - + + } + title="Проект" + description="Создать новый проект" disabled={!teamId} - onSelect={(e) => { - e.preventDefault(); + onOpenChange={() => { setOpen(false); setCreateProjectOpen(true); }} - > - - - - - - Проект - - Создать новый проект - - - - + /> + + } + title="Доска" + description="Создать новую доску в проекте" + disabled={!projectSlug} + onOpenChange={() => { + setOpen(false); + setCreateBoardOpen(true); + }} + /> + +
); } diff --git a/src/widgets/quick-create/ui/QuickCreateItem.tsx b/src/widgets/quick-create/ui/QuickCreateItem.tsx new file mode 100644 index 0000000..d71db4e --- /dev/null +++ b/src/widgets/quick-create/ui/QuickCreateItem.tsx @@ -0,0 +1,43 @@ +import { ReactNode } from 'react'; +import { + DropdownMenuItem, + Item, + ItemContent, + ItemDescription, + ItemMedia, + ItemTitle, +} from 'shared/ui'; + +interface QuickCreateItemProps { + icon: ReactNode; + title: string; + description: string; + disabled?: boolean; + onOpenChange: () => void; +} + +export function QuickCreateItem({ + icon, + title, + description, + disabled = false, + onOpenChange, +}: QuickCreateItemProps) { + return ( + { + e.preventDefault(); + onOpenChange(); + }} + > + + {icon} + + {title} + {description} + + + + ); +}