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 3c453fd760..d5ecd57f97 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 @@ -1,11 +1,11 @@ "use client"; -import { useCallback, useState } from "react"; +import { useCallback, useRef, useState } from "react"; 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, @@ -23,15 +23,15 @@ import { IIssueFilterOptions, } from "@plane/types"; // ui -import { Breadcrumbs, Button, CustomMenu, DiceIcon, Tooltip, Header, CustomSearchSelect } from "@plane/ui"; +import { Breadcrumbs, Button, DiceIcon, Tooltip, Header, CustomSearchSelect } from "@plane/ui"; // components import { ProjectAnalyticsModal } from "@/components/analytics"; import { BreadcrumbLink, SwitcherLabel } from "@/components/common"; import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; // helpers +import { ModuleQuickActions } from "@/components/modules"; import { cn } from "@/helpers/common.helper"; import { isIssueFilterActive } from "@/helpers/filter.helper"; -import { truncateText } from "@/helpers/string.helper"; // hooks import { useEventTracker, @@ -51,30 +51,9 @@ import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; -const ModuleDropdownOption: React.FC<{ moduleId: string }> = ({ moduleId }) => { - // router - const { workspaceSlug, projectId } = useParams(); - // store hooks - const { getModuleById } = useModule(); - // derived values - const moduleDetail = getModuleById(moduleId); - - if (!moduleDetail) return null; - - return ( - - - - {truncateText(moduleDetail.name, 40)} - - - ); -}; - export const ModuleIssuesHeader: React.FC = observer(() => { + // refs + const parentRef = useRef(null); // states const [analyticsModal, setAnalyticsModal] = useState(false); // router @@ -320,14 +299,18 @@ export const ModuleIssuesHeader: React.FC = observer(() => { )} + diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx index 2062aa32df..55639470d3 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx @@ -2,9 +2,10 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { useParams } from "next/navigation"; -import { FileText, Layers } from "lucide-react"; +import { ArchiveIcon, Earth, FileText, Lock } from "lucide-react"; // types -import { ICustomSearchSelectOption } from "@plane/types"; +import { EPageAccess } from "@plane/constants"; +import { ICustomSearchSelectOption, TPage } from "@plane/types"; // ui import { Breadcrumbs, Header, CustomSearchSelect } from "@plane/ui"; // components @@ -19,6 +20,18 @@ import { PageDetailsHeaderExtraActions } from "@/plane-web/components/pages"; // plane web hooks import { EPageStoreType, usePage, usePageStore } from "@/plane-web/hooks/store"; +const PageAccessIcon = (page: TPage) => ( +
+ {page.archived_at ? ( + + ) : page.access === EPageAccess.PUBLIC ? ( + + ) : ( + + )} +
+); + export interface IPagesHeaderProps { showButton?: boolean; } @@ -46,9 +59,12 @@ export const PageDetailsHeader = observer(() => { value: _page.id, query: _page.name, content: ( - - - +
+ + + + +
), }; }) @@ -94,7 +110,7 @@ export const PageDetailsHeader = observer(() => { } + label={} onChange={() => {}} /> }