diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx index 17df19b2201..76167703af9 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx @@ -7,13 +7,15 @@ import { EIssuesStoreType } from "@plane/constants"; // ui import { ArchiveIcon, Breadcrumbs, Tooltip, Header } from "@plane/ui"; // components -import { BreadcrumbLink, Logo } from "@/components/common"; +import { BreadcrumbLink } from "@/components/common"; // constants import { PROJECT_ARCHIVES_BREADCRUMB_LIST } from "@/constants/archives"; // hooks import { useIssues, useProject } from "@/hooks/store"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// plane web +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; type TProps = { activeTab: "issues" | "cycles" | "modules"; @@ -28,7 +30,7 @@ export const ProjectArchivesHeader: FC = observer((props: TProps) => { const { issues: { getGroupIssueCount }, } = useIssues(EIssuesStoreType.ARCHIVED); - const { currentProjectDetails, loader } = useProject(); + const { loader } = useProject(); // hooks const { isMobile } = usePlatformOS(); @@ -42,21 +44,7 @@ export const ProjectArchivesHeader: FC = observer((props: TProps) => {
- - - - ) - } - /> - } - /> + {
- - - - ) - } - /> - } - /> + = ({ cycleId }) => { @@ -167,16 +169,7 @@ export const CycleIssuesHeader: React.FC = observer(() => { link={ - - - - ) - } - /> + { // router const router = useAppRouter(); - const { workspaceSlug } = useParams(); // store hooks const { toggleCreateCycleModal } = useCommandPalette(); const { setTrackElement } = useEventTracker(); @@ -33,21 +33,7 @@ export const CyclesListHeader: FC = observer(() => {
- - - - ) - } - /> - } - /> + } />} diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx index 59c5e995bf5..3c996a8d14a 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx @@ -10,7 +10,7 @@ import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOption // ui import { Breadcrumbs, LayersIcon, Tooltip } from "@plane/ui"; // components -import { BreadcrumbLink, Logo } from "@/components/common"; +import { BreadcrumbLink } from "@/components/common"; import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; // constants import { ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; @@ -19,6 +19,8 @@ import { isIssueFilterActive } from "@/helpers/filter.helper"; // hooks import { useIssues, useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// plane web +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; export const ProjectDraftIssueHeader: FC = observer(() => { // router @@ -92,21 +94,7 @@ export const ProjectDraftIssueHeader: FC = observer(() => {
- - - - ) - } - /> - } - /> + { // router @@ -28,21 +30,7 @@ export const ProjectIssueDetailsHeader = observer(() => {
- - - - ) - } - /> - } - /> + = ({ moduleId }) => { @@ -166,16 +168,7 @@ export const ModuleIssuesHeader: React.FC = observer(() => { link={ - - - - ) - } - /> + { // router const router = useAppRouter(); - const { workspaceSlug } = useParams(); // store hooks const { toggleCreateModuleModal } = useCommandPalette(); const { setTrackElement } = useEventTracker(); const { allowPermissions } = useUserPermissions(); - const { currentProjectDetails, loader } = useProject(); + const { loader } = useProject(); // auth const canUserCreateModule = allowPermissions( @@ -35,21 +35,7 @@ export const ModulesListHeader: 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 1d1b6522d1b..ebb4af3bd1b 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 @@ -18,6 +18,7 @@ import { getPageName } from "@/helpers/page.helper"; import { useProjectPage, useProject } from "@/hooks/store"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web components +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; import { PageDetailsHeaderExtraActions } from "@/plane-web/components/pages"; export interface IPagesHeaderProps { @@ -68,16 +69,7 @@ export const PageDetailsHeader = observer(() => { link={ - - - - ) - } - /> + { // states @@ -56,21 +58,7 @@ export const PagesListHeader = observer(() => {
- - - - ) - } - /> - } - /> + } />} diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/header.tsx index 404a11f276c..2dfd24ea051 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/header.tsx @@ -7,12 +7,12 @@ import { useParams } from "next/navigation"; import { Settings } from "lucide-react"; import { Breadcrumbs, CustomMenu, Header } from "@plane/ui"; // components -import { BreadcrumbLink, Logo } from "@/components/common"; -// constants +import { BreadcrumbLink } from "@/components/common"; // hooks import { useProject, useUserPermissions } from "@/hooks/store"; import { useAppRouter } from "@/hooks/use-app-router"; -// plane web constants +// plane web +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; import { PROJECT_SETTINGS_LINKS } from "@/plane-web/constants/project"; import { EUserPermissionsLevel } from "@/plane-web/constants/user-permissions"; @@ -22,7 +22,7 @@ export const ProjectSettingHeader: FC = observer(() => { const { workspaceSlug, projectId } = useParams(); // store hooks const { allowPermissions } = useUserPermissions(); - const { currentProjectDetails, loader } = useProject(); + const { loader } = useProject(); return (
@@ -30,21 +30,7 @@ export const ProjectSettingHeader: FC = observer(() => {
- - - - ) - } - /> - } - /> +
{ @@ -137,21 +139,7 @@ export const ProjectViewIssuesHeader: React.FC = observer(() => {
- - - - ) - } - /> - } - /> + { - // router - const { workspaceSlug } = useParams(); // store hooks const { toggleCreateViewModal } = useCommandPalette(); - const { currentProjectDetails, loader } = useProject(); + const { loader } = useProject(); return ( <>
- - - - ) - } - /> - } - /> + } />} diff --git a/web/ce/components/breadcrumbs/index.ts b/web/ce/components/breadcrumbs/index.ts new file mode 100644 index 00000000000..9ff8c7dff40 --- /dev/null +++ b/web/ce/components/breadcrumbs/index.ts @@ -0,0 +1 @@ +export * from "./project"; diff --git a/web/ce/components/breadcrumbs/project.tsx b/web/ce/components/breadcrumbs/project.tsx new file mode 100644 index 00000000000..3b49bb211b5 --- /dev/null +++ b/web/ce/components/breadcrumbs/project.tsx @@ -0,0 +1,39 @@ +"use client"; + +import { observer } from "mobx-react"; +import { Briefcase } from "lucide-react"; +// ui +import { Breadcrumbs, Logo } from "@plane/ui"; +// components +import { BreadcrumbLink } from "@/components/common"; +// hooks +import { useProject } from "@/hooks/store"; + +export const ProjectBreadcrumb = observer(() => { + // store hooks + const { currentProjectDetails } = useProject(); + + return ( + + + + ) + ) : ( + + + + ) + } + /> + } + /> + ); +}); diff --git a/web/ce/components/issues/header.tsx b/web/ce/components/issues/header.tsx index 51dbc3b4174..f9e82b095ae 100644 --- a/web/ce/components/issues/header.tsx +++ b/web/ce/components/issues/header.tsx @@ -3,13 +3,13 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // icons -import { Briefcase, Circle, ExternalLink } from "lucide-react"; +import { Circle, ExternalLink } from "lucide-react"; // plane constants import { EIssuesStoreType } from "@plane/constants"; // ui import { Breadcrumbs, Button, LayersIcon, Tooltip, Header } from "@plane/ui"; // components -import { BreadcrumbLink, CountChip, Logo } from "@/components/common"; +import { BreadcrumbLink, CountChip } from "@/components/common"; // constants import HeaderFilters from "@/components/issues/filters"; // helpers @@ -19,6 +19,8 @@ import { useEventTracker, useProject, useCommandPalette, useUserPermissions } fr import { useIssues } from "@/hooks/store/use-issues"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// plane web +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; import { EUserPermissions, EUserPermissionsLevel } from "@/plane-web/constants/user-permissions"; export const IssuesHeader = observer(() => { @@ -51,27 +53,7 @@ export const IssuesHeader = observer(() => {
router.back()} isLoading={loader}> - - - - ) - ) : ( - - - - ) - } - /> - } - /> + { @@ -35,21 +37,7 @@ export const ProjectInboxHeader: FC = observer(() => {
- - - - ) - } - /> - } - /> +