From 55eea1a8b7f8d235ffb838ad161e8ea2e8ac8b1c Mon Sep 17 00:00:00 2001 From: Vamsi Krishna <46787868+vamsikrishnamathala@users.noreply.github.com> Date: Thu, 17 Apr 2025 17:15:53 +0530 Subject: [PATCH] [WEB-3872]chore: header switcher enhancements (#6935) * * chore: alignment and size for header * fix: switcher close on click * chore: moved acces icon component to components --- .../[projectId]/cycles/(detail)/header.tsx | 45 ++++--------------- .../[projectId]/modules/(detail)/header.tsx | 17 +++---- .../[projectId]/pages/(detail)/header.tsx | 31 ++++--------- .../views/(detail)/[viewId]/header.tsx | 16 +++---- web/core/components/common/index.ts | 1 + .../components/common/page-access-icon.tsx | 15 +++++++ 6 files changed, 48 insertions(+), 77 deletions(-) create mode 100644 web/core/components/common/page-access-icon.tsx diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx index 21a00ce3d2..ebe4925846 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx @@ -5,7 +5,7 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { useParams } from "next/navigation"; // icons -import { ArrowRight, PanelRight } from "lucide-react"; +import { PanelRight } from "lucide-react"; // plane constants import { EIssueLayoutTypes, @@ -25,7 +25,7 @@ import { IIssueFilterOptions, } from "@plane/types"; // ui -import { Breadcrumbs, Button, ContrastIcon, CustomMenu, Tooltip, Header, CustomSearchSelect } from "@plane/ui"; +import { Breadcrumbs, Button, ContrastIcon, Tooltip, Header, CustomSearchSelect } from "@plane/ui"; // components import { ProjectAnalyticsModal } from "@/components/analytics"; import { BreadcrumbLink, SwitcherLabel } from "@/components/common"; @@ -34,7 +34,6 @@ import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelect // helpers import { cn } from "@/helpers/common.helper"; import { isIssueFilterActive } from "@/helpers/filter.helper"; -import { truncateText } from "@/helpers/string.helper"; // hooks import { useEventTracker, @@ -53,27 +52,6 @@ import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; -const CycleDropdownOption: React.FC<{ cycleId: string }> = ({ cycleId }) => { - // router - const { workspaceSlug, projectId } = useParams(); - // store hooks - const { getCycleById } = useCycle(); - // derived values - const cycle = getCycleById(cycleId); - // - - if (!cycle) return null; - - return ( - - - - {truncateText(cycle.name, 40)} - - - ); -}; - export const CycleIssuesHeader: React.FC = observer(() => { // refs const parentRef = useRef(null); @@ -171,23 +149,16 @@ export const CycleIssuesHeader: React.FC = observer(() => { ?.map((id) => { const _cycle = id === cycleId ? cycleDetails : getCycleById(id); if (!_cycle) return; - const cycleLink = `/${workspaceSlug}/projects/${projectId}/cycles/${_cycle.id}`; return { value: _cycle.id, query: _cycle.name, - content: ( - - - - ), + content: , }; }) .filter((option) => option !== undefined) as ICustomSearchSelectOption[]; const workItemsCount = getGroupIssueCount(undefined, undefined, false); - const issuesCount = getGroupIssueCount(undefined, undefined, false); - return ( <> { {}} + onChange={(value: string) => { + router.push(`/${workspaceSlug}/projects/${projectId}/cycles/${value}`); + }} label={
@@ -256,7 +229,7 @@ export const CycleIssuesHeader: React.FC = observer(() => {
- +
{ )}
diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx index d5ecd57f97..6bbbb29a0a 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx @@ -145,15 +145,10 @@ export const ModuleIssuesHeader: React.FC = observer(() => { ?.map((id) => { const _module = id === moduleId ? moduleDetails : getModuleById(id); if (!_module) return; - const moduleLink = `/${workspaceSlug}/projects/${projectId}/modules/${_module.id}`; return { value: _module.id, query: _module.name, - content: ( - - - - ), + content: , }; }) .filter((option) => option !== undefined) as ICustomSearchSelectOption[]; @@ -218,13 +213,15 @@ export const ModuleIssuesHeader: React.FC = observer(() => { } value={moduleId} - onChange={() => {}} + onChange={(value: string) => { + router.push(`/${workspaceSlug}/projects/${projectId}/modules/${value}`); + }} /> } /> - +
{ )}