From 7f7d2cc7f1c6c8c1831c2a845909a3b7c255e64b Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Wed, 27 May 2026 16:16:44 +0300 Subject: [PATCH 1/8] refactor: delete create-team button --- .../app-sidebar/ui/teams/TeamsDropdown.tsx | 23 +------------------ 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx b/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx index f1de64c..14e9cee 100644 --- a/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx +++ b/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx @@ -1,26 +1,19 @@ -import { CreateTeamDialog } from 'features/teams/create'; -import { Plus } from 'lucide-react'; import Link from 'next/link'; -import { useState } from 'react'; import { routes } from 'shared/config'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, - DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, SidebarMenuButton, - useSidebar, } from 'shared/ui'; import { useTeamsDropdown } from '../../model/useTeamsDropdown'; import { TeamItem } from './TeamItem'; import { TeamTrigger } from './TeamTrigger'; export function TeamsDropdown() { - const { isMobile } = useSidebar(); - const [createTeamOpen, setCreateTeamOpen] = useState(false); const { open, setOpen, query, visibleTeams, teams, hasMoreTeams, switchTeam } = useTeamsDropdown(); @@ -39,7 +32,7 @@ export function TeamsDropdown() { Команды @@ -59,22 +52,8 @@ export function TeamsDropdown() { )} - - { - e.preventDefault(); - setOpen(false); - setCreateTeamOpen(true); - }} - > - - - Создать команду - - - ); } From 25e5666c5bffc5259ec00763725546c76615d93d Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Wed, 27 May 2026 22:48:14 +0300 Subject: [PATCH 2/8] refactor: moved team group, added animation, fixed ui, removed "createTeamDialog" from the team switcher, and moved static links to config --- src/app/styles/animations.scss | 28 +++++++ src/shared/lib/hooks/index.ts | 1 + src/shared/ui/sidebar/Sidebar.tsx | 2 +- src/widgets/app-sidebar/config/sidebar.ts | 13 ++++ src/widgets/app-sidebar/ui/AppSidebar.tsx | 74 +------------------ src/widgets/app-sidebar/ui/MyTeams.tsx | 20 +++++ src/widgets/app-sidebar/ui/Projects.tsx | 22 +++--- src/widgets/app-sidebar/ui/Team.tsx | 70 ++++++++++++++++++ .../app-sidebar/ui/teams/TeamsDropdown.tsx | 7 +- 9 files changed, 155 insertions(+), 82 deletions(-) create mode 100644 src/widgets/app-sidebar/config/sidebar.ts create mode 100644 src/widgets/app-sidebar/ui/MyTeams.tsx create mode 100644 src/widgets/app-sidebar/ui/Team.tsx diff --git a/src/app/styles/animations.scss b/src/app/styles/animations.scss index 0c64494..99104e0 100644 --- a/src/app/styles/animations.scss +++ b/src/app/styles/animations.scss @@ -66,3 +66,31 @@ } } } + +.collapsible-content { + overflow: hidden; +} +.collapsible-content[data-state='open'] { + animation: slideDown 300ms ease-out; +} +.collapsible-content[data-state='closed'] { + animation: slideUp 300ms ease-out; +} + +@keyframes slideDown { + from { + height: 0; + } + to { + height: var(--radix-collapsible-content-height); + } +} + +@keyframes slideUp { + from { + height: var(--radix-collapsible-content-height); + } + to { + height: 0; + } +} diff --git a/src/shared/lib/hooks/index.ts b/src/shared/lib/hooks/index.ts index a98862a..8a1b1f6 100644 --- a/src/shared/lib/hooks/index.ts +++ b/src/shared/lib/hooks/index.ts @@ -4,3 +4,4 @@ export { useQueuedDebouncedMutation } from './useQueuedDebouncedMutation'; export { useLocalStorageDraft, type DraftWithTTL } from './useLocalStorageDraft'; export { useTimer, type UseTimerOptions, type UseTimerReturn } from './use-timer/useTimer'; export { useZodValidationWithAsyncCheck } from './useZodValidationWithAsyncCheck'; +export { useIsActive } from './useIsActive'; diff --git a/src/shared/ui/sidebar/Sidebar.tsx b/src/shared/ui/sidebar/Sidebar.tsx index 3069e61..60af193 100644 --- a/src/shared/ui/sidebar/Sidebar.tsx +++ b/src/shared/ui/sidebar/Sidebar.tsx @@ -629,7 +629,7 @@ function SidebarMenuSubButton({ data-size={size} data-active={isActive} className={cn( - 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden group-data-[collapsible=icon]:hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', + 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden group-data-[collapsible=icon]:hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[size=md]:text-sm data-[size=sm]:text-xs [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0', className )} {...props} diff --git a/src/widgets/app-sidebar/config/sidebar.ts b/src/widgets/app-sidebar/config/sidebar.ts new file mode 100644 index 0000000..7652ac1 --- /dev/null +++ b/src/widgets/app-sidebar/config/sidebar.ts @@ -0,0 +1,13 @@ +import { Mail, Settings, ShieldUser, UsersRound } from 'lucide-react'; +import { routes } from 'shared/config'; + +export const team = [ + { + url: routes.team.members(), + title: 'Участники', + icon: UsersRound, + }, + { url: routes.team.invitations(), title: 'Приглашения', icon: Mail }, + { url: routes.team.roles(), title: 'Роли', icon: ShieldUser }, + { url: routes.team.settings(), title: 'Настройки', icon: Settings }, +] as const; diff --git a/src/widgets/app-sidebar/ui/AppSidebar.tsx b/src/widgets/app-sidebar/ui/AppSidebar.tsx index 5d0c81a..5094de9 100644 --- a/src/widgets/app-sidebar/ui/AppSidebar.tsx +++ b/src/widgets/app-sidebar/ui/AppSidebar.tsx @@ -1,46 +1,16 @@ -'use client'; - -import { InviteTeamMemberDialog } from 'features/teams/invite'; -import { ChevronRight, SquarePlusIcon, UserRound, UsersRound } from 'lucide-react'; -import Link from 'next/link'; -import { routes } from 'shared/config'; import { - Collapsible, - CollapsibleContent, - CollapsibleTrigger, Separator, Sidebar, SidebarContent, - SidebarFooter, SidebarGroup, SidebarHeader, SidebarMenu, - SidebarMenuAction, - SidebarMenuButton, - SidebarMenuItem, - SidebarMenuSub, - SidebarMenuSubButton, - SidebarMenuSubItem, SidebarRail, } from 'shared/ui'; -import { NavUser } from './NavUser'; import { TeamsDropdown } from './teams/TeamsDropdown'; import { Projects } from './Projects'; - -const team = [ - { - url: routes.team.members(), - title: 'Участники', - action: ( - - - - ), - }, - { url: routes.team.invitations(), title: 'Приглашения', action: null }, - { url: routes.team.roles(), title: 'Роли', action: null }, - { url: routes.team.settings(), title: 'Настройки', action: null }, -]; +import { MyTeams } from './MyTeams'; +import { Team } from './Team'; export function AppSidebar({ ...props }: Omit, 'children'>) { return ( @@ -51,49 +21,13 @@ export function AppSidebar({ ...props }: Omit - - - - - Мой профиль - - - - - - - - - Команда - - - - - - {team.map((subItem) => ( - - - - {subItem.title} - - - {subItem.action ? ( - {subItem.action} - ) : null} - - ))} - - - - + + - - - ); diff --git a/src/widgets/app-sidebar/ui/MyTeams.tsx b/src/widgets/app-sidebar/ui/MyTeams.tsx new file mode 100644 index 0000000..2882705 --- /dev/null +++ b/src/widgets/app-sidebar/ui/MyTeams.tsx @@ -0,0 +1,20 @@ +'use client'; +import { UserRound } from 'lucide-react'; +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; +import { routes } from 'shared/config'; +import { SidebarMenuButton, SidebarMenuItem } from 'shared/ui'; + +export function MyTeams() { + const pathname = usePathname(); + return ( + + + + + Мои команды + + + + ); +} diff --git a/src/widgets/app-sidebar/ui/Projects.tsx b/src/widgets/app-sidebar/ui/Projects.tsx index 2a13373..26e3520 100644 --- a/src/widgets/app-sidebar/ui/Projects.tsx +++ b/src/widgets/app-sidebar/ui/Projects.tsx @@ -30,6 +30,8 @@ export function Projects() { const { isMobile } = useSidebar(); const [createProjectOpen, setCreateProjectOpen] = useState(false); const projects = useQuery({ ...ProjectQueries.getProjects(slug!), enabled: !!slug }); + const projectList = projects.data?.items.slice(0, 6) ?? []; + const showOtherProjectsButton = projectList.length > 6; if (!projects.data) { return null; @@ -47,7 +49,7 @@ export function Projects() { - {projects.data.items.map((project) => { + {projectList.map((project) => { const canManage = Boolean(slug && project.canEdit); return ( @@ -116,14 +118,16 @@ export function Projects() { ); })} - - - - - Больше - - - + {showOtherProjectsButton && ( + + + + + Больше + + + + )} { + if (isAllowedToHighlight) { + router.push(routes.team.members()); + } + }; + return ( + + + + + + Команда + + + + + + {team.map((subItem) => ( + + + + + {subItem.title} + + + + ))} + + + + + Пригласить участника + + + + + + + ); +} diff --git a/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx b/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx index 14e9cee..1d08bec 100644 --- a/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx +++ b/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx @@ -1,3 +1,5 @@ +'use client'; +import { CreateTeamDialog } from 'features/teams/create'; import Link from 'next/link'; import { routes } from 'shared/config'; import { @@ -12,11 +14,12 @@ import { import { useTeamsDropdown } from '../../model/useTeamsDropdown'; import { TeamItem } from './TeamItem'; import { TeamTrigger } from './TeamTrigger'; +import { useIsMobile } from 'shared/lib/hooks'; export function TeamsDropdown() { const { open, setOpen, query, visibleTeams, teams, hasMoreTeams, switchTeam } = useTeamsDropdown(); - + const isMobile = useIsMobile(); return ( <> @@ -32,7 +35,7 @@ export function TeamsDropdown() { Команды From ae9f114bad4a43f534e1f7812de5eeab0e7c28ce Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Wed, 27 May 2026 22:52:51 +0300 Subject: [PATCH 3/8] refactor(sidebar): add "projects" link --- src/widgets/app-sidebar/config/sidebar.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/widgets/app-sidebar/config/sidebar.ts b/src/widgets/app-sidebar/config/sidebar.ts index 7652ac1..3275d1a 100644 --- a/src/widgets/app-sidebar/config/sidebar.ts +++ b/src/widgets/app-sidebar/config/sidebar.ts @@ -1,4 +1,4 @@ -import { Mail, Settings, ShieldUser, UsersRound } from 'lucide-react'; +import { BriefcaseBusiness, Mail, Settings, ShieldUser, UsersRound } from 'lucide-react'; import { routes } from 'shared/config'; export const team = [ @@ -7,6 +7,7 @@ export const team = [ title: 'Участники', icon: UsersRound, }, + { url: routes.team.projects(), title: 'Проекты', icon: BriefcaseBusiness }, { url: routes.team.invitations(), title: 'Приглашения', icon: Mail }, { url: routes.team.roles(), title: 'Роли', icon: ShieldUser }, { url: routes.team.settings(), title: 'Настройки', icon: Settings }, From 9ce74e8401e5ac2ffc8394aa14db2fa563e9d4ed Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Wed, 27 May 2026 23:03:59 +0300 Subject: [PATCH 4/8] fix: delete import --- src/shared/lib/hooks/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/shared/lib/hooks/index.ts b/src/shared/lib/hooks/index.ts index 8a1b1f6..a98862a 100644 --- a/src/shared/lib/hooks/index.ts +++ b/src/shared/lib/hooks/index.ts @@ -4,4 +4,3 @@ export { useQueuedDebouncedMutation } from './useQueuedDebouncedMutation'; export { useLocalStorageDraft, type DraftWithTTL } from './useLocalStorageDraft'; export { useTimer, type UseTimerOptions, type UseTimerReturn } from './use-timer/useTimer'; export { useZodValidationWithAsyncCheck } from './useZodValidationWithAsyncCheck'; -export { useIsActive } from './useIsActive'; From a99512d9125cfe73c47987c8fea9334ba18912d3 Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Thu, 28 May 2026 13:04:55 +0300 Subject: [PATCH 5/8] refactor: return create team button --- .../app-sidebar/ui/teams/TeamsDropdown.tsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx b/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx index 1d08bec..f972c42 100644 --- a/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx +++ b/src/widgets/app-sidebar/ui/teams/TeamsDropdown.tsx @@ -7,6 +7,7 @@ import { DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, + DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, SidebarMenuButton, @@ -15,11 +16,14 @@ import { useTeamsDropdown } from '../../model/useTeamsDropdown'; import { TeamItem } from './TeamItem'; import { TeamTrigger } from './TeamTrigger'; import { useIsMobile } from 'shared/lib/hooks'; +import { Plus } from 'lucide-react'; +import { useState } from 'react'; export function TeamsDropdown() { const { open, setOpen, query, visibleTeams, teams, hasMoreTeams, switchTeam } = useTeamsDropdown(); const isMobile = useIsMobile(); + const [createTeamOpen, setCreateTeamOpen] = useState(false); return ( <> @@ -55,8 +59,22 @@ export function TeamsDropdown() { )} + + { + e.preventDefault(); + setOpen(false); + setCreateTeamOpen(true); + }} + > + + + Создать команду + + + ); } From 826e59350e6a101d894b7b67978d2648c088860e Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Thu, 28 May 2026 13:07:13 +0300 Subject: [PATCH 6/8] refactor: update sidebar links and actions --- src/widgets/app-sidebar/config/sidebar.ts | 3 +- src/widgets/app-sidebar/ui/MyTeams.tsx | 4 +-- src/widgets/app-sidebar/ui/Projects.tsx | 41 ++++++++++------------- src/widgets/app-sidebar/ui/Team.tsx | 6 ++-- 4 files changed, 25 insertions(+), 29 deletions(-) diff --git a/src/widgets/app-sidebar/config/sidebar.ts b/src/widgets/app-sidebar/config/sidebar.ts index 3275d1a..7652ac1 100644 --- a/src/widgets/app-sidebar/config/sidebar.ts +++ b/src/widgets/app-sidebar/config/sidebar.ts @@ -1,4 +1,4 @@ -import { BriefcaseBusiness, Mail, Settings, ShieldUser, UsersRound } from 'lucide-react'; +import { Mail, Settings, ShieldUser, UsersRound } from 'lucide-react'; import { routes } from 'shared/config'; export const team = [ @@ -7,7 +7,6 @@ export const team = [ title: 'Участники', icon: UsersRound, }, - { url: routes.team.projects(), title: 'Проекты', icon: BriefcaseBusiness }, { url: routes.team.invitations(), title: 'Приглашения', icon: Mail }, { url: routes.team.roles(), title: 'Роли', icon: ShieldUser }, { url: routes.team.settings(), title: 'Настройки', icon: Settings }, diff --git a/src/widgets/app-sidebar/ui/MyTeams.tsx b/src/widgets/app-sidebar/ui/MyTeams.tsx index 2882705..980540f 100644 --- a/src/widgets/app-sidebar/ui/MyTeams.tsx +++ b/src/widgets/app-sidebar/ui/MyTeams.tsx @@ -1,5 +1,5 @@ 'use client'; -import { UserRound } from 'lucide-react'; +import { Network } from 'lucide-react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { routes } from 'shared/config'; @@ -11,7 +11,7 @@ export function MyTeams() { - + Мои команды diff --git a/src/widgets/app-sidebar/ui/Projects.tsx b/src/widgets/app-sidebar/ui/Projects.tsx index 26e3520..8d10337 100644 --- a/src/widgets/app-sidebar/ui/Projects.tsx +++ b/src/widgets/app-sidebar/ui/Projects.tsx @@ -6,9 +6,9 @@ import { useTeamStore } from 'entities/team'; import { ArchiveProjectDialog, RestoreProjectDialog } from 'features/projects/archive'; import { CreateProjectDialog } from 'features/projects/create'; import { ShareProjectDialog } from 'features/projects/share'; -import { Archive, Link2, MoreHorizontal, Plus } from 'lucide-react'; +import { Archive, BriefcaseBusiness, Link2, MoreHorizontal, Plus } from 'lucide-react'; import Link from 'next/link'; -import { useState } from 'react'; +import { usePathname } from 'next/navigation'; import { routes } from 'shared/config'; import { DropdownMenu, @@ -16,7 +16,6 @@ import { DropdownMenuItem, DropdownMenuTrigger, SidebarGroup, - SidebarGroupAction, SidebarGroupLabel, SidebarMenu, SidebarMenuAction, @@ -28,10 +27,10 @@ import { export function Projects() { const slug = useTeamStore.use.slug(); const { isMobile } = useSidebar(); - const [createProjectOpen, setCreateProjectOpen] = useState(false); + const pathname = usePathname(); const projects = useQuery({ ...ProjectQueries.getProjects(slug!), enabled: !!slug }); const projectList = projects.data?.items.slice(0, 6) ?? []; - const showOtherProjectsButton = projectList.length > 6; + const totalProjects = projects.data?.items.length ?? 0; if (!projects.data) { return null; @@ -41,13 +40,6 @@ export function Projects() { <> Проекты - setCreateProjectOpen(true)} - > - - {projectList.map((project) => { const canManage = Boolean(slug && project.canEdit); @@ -118,21 +110,24 @@ export function Projects() { ); })} - {showOtherProjectsButton && ( - + + - - - Больше - + + Все проекты {!!totalProjects && `(${totalProjects})`} - - )} + + + + + + + Добавить проект + + + - ); } diff --git a/src/widgets/app-sidebar/ui/Team.tsx b/src/widgets/app-sidebar/ui/Team.tsx index 43022f9..593a39e 100644 --- a/src/widgets/app-sidebar/ui/Team.tsx +++ b/src/widgets/app-sidebar/ui/Team.tsx @@ -1,6 +1,6 @@ 'use client'; import { InviteTeamMemberDialog } from 'features/teams/invite'; -import { UsersRound, ChevronRight } from 'lucide-react'; +import { UsersRound, ChevronRight, Plus } from 'lucide-react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; import { routes } from 'shared/config'; @@ -59,7 +59,9 @@ export function Team() { - + Пригласить участника + + Пригласить участника + From c40c350b68224874b696902bfef66d6fb184c2f5 Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Thu, 28 May 2026 19:45:54 +0300 Subject: [PATCH 7/8] refactor(sidebar): enhance sidebar buttons with tooltips and manage project dialog state --- src/widgets/app-sidebar/ui/MyTeams.tsx | 6 +++++- src/widgets/app-sidebar/ui/Projects.tsx | 26 +++++++++++++++++-------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/widgets/app-sidebar/ui/MyTeams.tsx b/src/widgets/app-sidebar/ui/MyTeams.tsx index 980540f..1423db5 100644 --- a/src/widgets/app-sidebar/ui/MyTeams.tsx +++ b/src/widgets/app-sidebar/ui/MyTeams.tsx @@ -9,7 +9,11 @@ export function MyTeams() { const pathname = usePathname(); return ( - + Мои команды diff --git a/src/widgets/app-sidebar/ui/Projects.tsx b/src/widgets/app-sidebar/ui/Projects.tsx index 8d10337..b3828ad 100644 --- a/src/widgets/app-sidebar/ui/Projects.tsx +++ b/src/widgets/app-sidebar/ui/Projects.tsx @@ -9,6 +9,7 @@ import { ShareProjectDialog } from 'features/projects/share'; import { Archive, BriefcaseBusiness, Link2, MoreHorizontal, Plus } from 'lucide-react'; import Link from 'next/link'; import { usePathname } from 'next/navigation'; +import { useState } from 'react'; import { routes } from 'shared/config'; import { DropdownMenu, @@ -28,6 +29,7 @@ export function Projects() { const slug = useTeamStore.use.slug(); const { isMobile } = useSidebar(); const pathname = usePathname(); + const [createProjectOpen, setCreateProjectOpen] = useState(false); const projects = useQuery({ ...ProjectQueries.getProjects(slug!), enabled: !!slug }); const projectList = projects.data?.items.slice(0, 6) ?? []; const totalProjects = projects.data?.items.length ?? 0; @@ -46,7 +48,7 @@ export function Projects() { return ( - + {projectIconCodeToEmoji(project.icon)} {project.name} @@ -111,7 +113,11 @@ export function Projects() { ); })} - + Все проекты {!!totalProjects && `(${totalProjects})`} @@ -119,15 +125,19 @@ export function Projects() { - - - - Добавить проект - - + setCreateProjectOpen(true)} + tooltip={'Добавить проект'} + > + + Добавить проект + + ); } From ccec8c404dc5a265b2e7cac861ad5aead9dbfab4 Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Thu, 28 May 2026 19:48:17 +0300 Subject: [PATCH 8/8] refactor(sidebar): wrap by span text in sidebar items --- src/widgets/app-sidebar/ui/Projects.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgets/app-sidebar/ui/Projects.tsx b/src/widgets/app-sidebar/ui/Projects.tsx index b3828ad..653a3be 100644 --- a/src/widgets/app-sidebar/ui/Projects.tsx +++ b/src/widgets/app-sidebar/ui/Projects.tsx @@ -120,7 +120,7 @@ export function Projects() { > - Все проекты {!!totalProjects && `(${totalProjects})`} + Все проекты {!!totalProjects && `(${totalProjects})`} @@ -130,7 +130,7 @@ export function Projects() { tooltip={'Добавить проект'} > - Добавить проект + Добавить проект