mirror of
https://github.com/makeplane/plane.git
synced 2026-09-03 12:50:29 +02:00
* [WEB-1251] chore: view list enhancement (#4427) * chore: moved search query to mobx store * chore: moved view sub-header to app header * chore: created by avatar added in view item list * chore: notification action item enhancement (#4426) * [WEB-1250] chore: module list enhancement (#4425) * chore: move module sub-header to app header * chore: gantt header improvement, remove title * chore: progress indicator size reduced * chore: replace members with lead and updated start and end date ui * chore: project card enhancement (#4424) * chore: project publish modal improvement (#4422) * [WEB-1298] chore: project cycle revamp (#4454) * chore: cycle endpoint changes * chore: completed cycle icon updated * chore: project cycle list revamp and code refactor * chore: cycle page improvement * chore: added created by in retrieve endopoint * fix: build error * chore: cycle list page disclosure button improvement --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> * fix: build errors * [WEB-1254] chore: list layout indentation enhancement and cycle list page ui improvement (#4435) * chore: list layout indentation improvement * chore: cycle list layout spacing and date ui updated * chore: platform ui improvement * [WEB-1274] chore: issue spreadsheet enhancement (#4423) * chore: border and background remove from cycle and module select * choe: indentation improvement * fix: build errors * chore: project cycle dark mode border color updated * chore: project cycle dark mode border color updated --------- Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>
76 lines
2.7 KiB
TypeScript
76 lines
2.7 KiB
TypeScript
import { observer } from "mobx-react-lite";
|
|
import { useRouter } from "next/router";
|
|
// ui
|
|
import { Breadcrumbs, Button, DiceIcon } from "@plane/ui";
|
|
// components
|
|
import { BreadcrumbLink } from "@/components/common";
|
|
import { ModuleViewHeader } from "@/components/modules";
|
|
import { ProjectLogo } from "@/components/project";
|
|
// constants
|
|
import { EUserProjectRoles } from "@/constants/project";
|
|
// hooks
|
|
import { useCommandPalette, useEventTracker, useProject, useUser } from "@/hooks/store";
|
|
|
|
export const ModulesListHeader: React.FC = observer(() => {
|
|
// router
|
|
const router = useRouter();
|
|
const { workspaceSlug } = router.query;
|
|
// store hooks
|
|
const { toggleCreateModuleModal } = useCommandPalette();
|
|
const { setTrackElement } = useEventTracker();
|
|
const {
|
|
membership: { currentProjectRole },
|
|
} = useUser();
|
|
const { currentProjectDetails } = useProject();
|
|
|
|
// auth
|
|
const canUserCreateModule =
|
|
currentProjectRole && [EUserProjectRoles.ADMIN, EUserProjectRoles.MEMBER].includes(currentProjectRole);
|
|
|
|
return (
|
|
<div className="relative z-10 flex h-[3.75rem] w-full flex-shrink-0 flex-row items-center justify-between gap-x-2 gap-y-4 bg-custom-sidebar-background-100 p-4">
|
|
<div className="flex w-full flex-grow items-center gap-2 overflow-ellipsis whitespace-nowrap">
|
|
<div>
|
|
<Breadcrumbs onBack={router.back}>
|
|
<Breadcrumbs.BreadcrumbItem
|
|
type="text"
|
|
link={
|
|
<BreadcrumbLink
|
|
href={`/${workspaceSlug}/projects/${currentProjectDetails?.id}/issues`}
|
|
label={currentProjectDetails?.name ?? "Project"}
|
|
icon={
|
|
currentProjectDetails && (
|
|
<span className="grid h-4 w-4 flex-shrink-0 place-items-center">
|
|
<ProjectLogo logo={currentProjectDetails?.logo_props} className="text-sm" />
|
|
</span>
|
|
)
|
|
}
|
|
/>
|
|
}
|
|
/>
|
|
<Breadcrumbs.BreadcrumbItem
|
|
type="text"
|
|
link={<BreadcrumbLink label="Modules" icon={<DiceIcon className="h-4 w-4 text-custom-text-300" />} />}
|
|
/>
|
|
</Breadcrumbs>
|
|
</div>
|
|
</div>
|
|
<div className="flex items-center gap-2">
|
|
<ModuleViewHeader />
|
|
{canUserCreateModule && (
|
|
<Button
|
|
variant="primary"
|
|
size="sm"
|
|
onClick={() => {
|
|
setTrackElement("Modules page");
|
|
toggleCreateModuleModal(true);
|
|
}}
|
|
>
|
|
<div className="hidden sm:block">Add</div> Module
|
|
</Button>
|
|
)}
|
|
</div>
|
|
</div>
|
|
);
|
|
});
|