From aad5b533a94f7c7cae83ba1c6054f9c87e050f77 Mon Sep 17 00:00:00 2001 From: Rasul Date: Tue, 30 Jun 2026 01:06:34 +0300 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B4=D0=BE=D1=81=D0=BA=D0=B8=20=D0=B8=D0=B7=20QuickC?= =?UTF-8?q?reate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/quick-create/ui/QuickCreate.tsx | 30 +++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/widgets/quick-create/ui/QuickCreate.tsx b/src/widgets/quick-create/ui/QuickCreate.tsx index f1e3a4d..1ddff17 100644 --- a/src/widgets/quick-create/ui/QuickCreate.tsx +++ b/src/widgets/quick-create/ui/QuickCreate.tsx @@ -1,10 +1,12 @@ '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 { CreateBoardDialog } from 'features/boards/create'; import { Button, DropdownMenu, @@ -23,6 +25,9 @@ export function QuickCreate() { 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 (
@@ -80,12 +85,33 @@ export function QuickCreate() { + { + e.preventDefault(); + setOpen(false); + setCreateBoardOpen(true); + }} + > + + + + + + Доска + + Создать новую доску в проекте + + + + +
); } From 7810849fac569b8028084b5879097d920dd33c8e Mon Sep 17 00:00:00 2001 From: Rasul Date: Wed, 1 Jul 2026 02:04:37 +0300 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20=D0=B2=D1=8B=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20QuickCreateItem=20=D0=B2=20=D0=BE=D1=82=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BE=D0=BC=D0=BF?= =?UTF-8?q?=D0=BE=D0=BD=D0=B5=D0=BD=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/widgets/quick-create/ui/QuickCreate.tsx | 84 +++++-------------- .../quick-create/ui/QuickCreateItem.tsx | 43 ++++++++++ 2 files changed, 66 insertions(+), 61 deletions(-) create mode 100644 src/widgets/quick-create/ui/QuickCreateItem.tsx diff --git a/src/widgets/quick-create/ui/QuickCreate.tsx b/src/widgets/quick-create/ui/QuickCreate.tsx index 1ddff17..b3925b8 100644 --- a/src/widgets/quick-create/ui/QuickCreate.tsx +++ b/src/widgets/quick-create/ui/QuickCreate.tsx @@ -1,5 +1,4 @@ 'use client'; - import { useState } from 'react'; import { FolderPlus, Plus, UsersRound, LayoutGrid } from 'lucide-react'; import { useParams } from 'next/navigation'; @@ -7,18 +6,8 @@ import { useTeamStore } from 'entities/team'; import { CreateProjectDialog } from 'features/projects/create'; import { CreateTeamDialog } from 'features/teams/create'; import { CreateBoardDialog } from 'features/boards/create'; -import { - Button, - DropdownMenu, - DropdownMenuContent, - DropdownMenuItem, - DropdownMenuTrigger, - Item, - ItemContent, - ItemDescription, - ItemMedia, - ItemTitle, -} from 'shared/ui'; +import { Button, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from 'shared/ui'; +import { QuickCreateItem } from './QuickCreateItem'; // ← Новый импорт export function QuickCreate() { const teamId = useTeamStore.use.teamId(); @@ -46,67 +35,40 @@ 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} - onSelect={(e) => { - e.preventDefault(); + onOpenChange={() => { setOpen(false); setCreateBoardOpen(true); }} - > - - - - - - Доска - - Создать новую доску в проекте - - - - + /> + void; +} + +export function QuickCreateItem({ + icon, + title, + description, + disabled = false, + onOpenChange, +}: QuickCreateItemProps) { + return ( + { + e.preventDefault(); + onOpenChange(); + }} + > + + {icon} + + {title} + {description} + + + + ); +}