mirror of
https://github.com/makeplane/plane.git
synced 2026-07-11 21:10:13 +02:00
refactor: update import paths for project components and remove unused files in the projects module
This commit is contained in:
@@ -8,7 +8,7 @@ import { Outlet } from "react-router";
|
||||
// components
|
||||
import { AppHeader } from "@/components/core/app-header";
|
||||
import { ContentWrapper } from "@/components/core/content-wrapper";
|
||||
import { ProjectInboxHeader } from "@/plane-web/components/projects/settings/intake/header";
|
||||
import { ProjectInboxHeader } from "@/components/projects/settings/intake/header";
|
||||
|
||||
export default function ProjectInboxIssuesLayout() {
|
||||
return (
|
||||
|
||||
@@ -8,14 +8,13 @@
|
||||
import { Outlet } from "react-router";
|
||||
import { AppHeader } from "@/components/core/app-header";
|
||||
import { ContentWrapper } from "@/components/core/content-wrapper";
|
||||
// local components
|
||||
import { ProjectsListHeader } from "@/plane-web/components/projects/header";
|
||||
import { ProjectsListMobileHeader } from "@/plane-web/components/projects/mobile-header";
|
||||
import { ProjectsListMobileHeader } from "@/components/projects/mobile-header";
|
||||
import { ProjectsBaseHeader } from "@/components/project/header";
|
||||
|
||||
export default function ProjectListLayout() {
|
||||
return (
|
||||
<>
|
||||
<AppHeader header={<ProjectsListHeader />} mobileHeader={<ProjectsListMobileHeader />} />
|
||||
<AppHeader header={<ProjectsBaseHeader />} mobileHeader={<ProjectsListMobileHeader />} />
|
||||
<ContentWrapper>
|
||||
<Outlet />
|
||||
</ContentWrapper>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
import { ProjectPageRoot } from "@/plane-web/components/projects/page";
|
||||
import { ProjectPageRoot } from "@/components/projects/page";
|
||||
|
||||
function ProjectsPage() {
|
||||
return <ProjectPageRoot />;
|
||||
|
||||
@@ -8,14 +8,13 @@ import { Outlet } from "react-router";
|
||||
// components
|
||||
import { AppHeader } from "@/components/core/app-header";
|
||||
import { ContentWrapper } from "@/components/core/content-wrapper";
|
||||
// local components
|
||||
import { ProjectsListHeader } from "@/plane-web/components/projects/header";
|
||||
import { ProjectsListMobileHeader } from "@/plane-web/components/projects/mobile-header";
|
||||
import { ProjectsListMobileHeader } from "@/components/projects/mobile-header";
|
||||
import { ProjectsBaseHeader } from "@/components/project/header";
|
||||
|
||||
export default function ProjectListLayout() {
|
||||
return (
|
||||
<>
|
||||
<AppHeader header={<ProjectsListHeader />} mobileHeader={<ProjectsListMobileHeader />} />
|
||||
<AppHeader header={<ProjectsBaseHeader />} mobileHeader={<ProjectsListMobileHeader />} />
|
||||
<ContentWrapper>
|
||||
<Outlet />
|
||||
</ContentWrapper>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
import { ProjectPageRoot } from "@/plane-web/components/projects/page";
|
||||
import { ProjectPageRoot } from "@/components/projects/page";
|
||||
|
||||
function ProjectsPage() {
|
||||
return <ProjectPageRoot />;
|
||||
|
||||
@@ -18,8 +18,6 @@ import { SettingsHeading } from "@/components/settings/heading";
|
||||
// hooks
|
||||
import { useProject } from "@/hooks/store/use-project";
|
||||
import { useUserPermissions } from "@/hooks/store/user";
|
||||
// plane web imports
|
||||
import { ProjectTeamspaceList } from "@/plane-web/components/projects/teamspaces/teamspace-list";
|
||||
// local imports
|
||||
import type { Route } from "./+types/page";
|
||||
import { MembersProjectSettingsHeader } from "./header";
|
||||
@@ -50,7 +48,6 @@ function MembersSettingsPage({ params }: Route.ComponentProps) {
|
||||
<PageHead title={pageTitle} />
|
||||
<SettingsHeading title={t("common.members")} />
|
||||
<ProjectSettingsMemberDefaults projectId={projectId} workspaceSlug={workspaceSlug} />
|
||||
<ProjectTeamspaceList projectId={projectId} workspaceSlug={workspaceSlug} />
|
||||
<ProjectMemberList projectId={projectId} workspaceSlug={workspaceSlug} />
|
||||
</SettingsContentWrapper>
|
||||
);
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
export type TProjectTemplateSelect = {
|
||||
disabled?: boolean;
|
||||
onClick?: () => void;
|
||||
};
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
export function ProjectTemplateSelect(props: TProjectTemplateSelect) {
|
||||
return <></>;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
import { ProjectsBaseHeader } from "@/components/project/header";
|
||||
|
||||
export function ProjectsListHeader() {
|
||||
return <ProjectsBaseHeader />;
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
// plane imports
|
||||
import { EUserPermissions, EProjectFeatureKey } from "@plane/constants";
|
||||
import { CycleIcon, IntakeIcon, ModuleIcon, PageIcon, ViewsIcon, WorkItemsIcon } from "@plane/propel/icons";
|
||||
// components
|
||||
import type { TNavigationItem } from "@/components/workspace/sidebar/project-navigation";
|
||||
|
||||
export const getProjectFeatureNavigation = (
|
||||
workspaceSlug: string,
|
||||
projectId: string,
|
||||
project: {
|
||||
cycle_view: boolean;
|
||||
module_view: boolean;
|
||||
issue_views_view: boolean;
|
||||
page_view: boolean;
|
||||
inbox_view: boolean;
|
||||
}
|
||||
): TNavigationItem[] => [
|
||||
{
|
||||
i18n_key: "sidebar.work_items",
|
||||
key: EProjectFeatureKey.WORK_ITEMS,
|
||||
name: "Work items",
|
||||
href: `/${workspaceSlug}/projects/${projectId}/issues`,
|
||||
icon: WorkItemsIcon,
|
||||
access: [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST],
|
||||
shouldRender: true,
|
||||
sortOrder: 1,
|
||||
},
|
||||
{
|
||||
i18n_key: "sidebar.cycles",
|
||||
key: EProjectFeatureKey.CYCLES,
|
||||
name: "Cycles",
|
||||
href: `/${workspaceSlug}/projects/${projectId}/cycles`,
|
||||
icon: CycleIcon,
|
||||
access: [EUserPermissions.ADMIN, EUserPermissions.MEMBER],
|
||||
shouldRender: project.cycle_view,
|
||||
sortOrder: 2,
|
||||
},
|
||||
{
|
||||
i18n_key: "sidebar.modules",
|
||||
key: EProjectFeatureKey.MODULES,
|
||||
name: "Modules",
|
||||
href: `/${workspaceSlug}/projects/${projectId}/modules`,
|
||||
icon: ModuleIcon,
|
||||
access: [EUserPermissions.ADMIN, EUserPermissions.MEMBER],
|
||||
shouldRender: project.module_view,
|
||||
sortOrder: 3,
|
||||
},
|
||||
{
|
||||
i18n_key: "sidebar.views",
|
||||
key: EProjectFeatureKey.VIEWS,
|
||||
name: "Views",
|
||||
href: `/${workspaceSlug}/projects/${projectId}/views`,
|
||||
icon: ViewsIcon,
|
||||
access: [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST],
|
||||
shouldRender: project.issue_views_view,
|
||||
sortOrder: 4,
|
||||
},
|
||||
{
|
||||
i18n_key: "sidebar.pages",
|
||||
key: EProjectFeatureKey.PAGES,
|
||||
name: "Pages",
|
||||
href: `/${workspaceSlug}/projects/${projectId}/pages`,
|
||||
icon: PageIcon,
|
||||
access: [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST],
|
||||
shouldRender: project.page_view,
|
||||
sortOrder: 5,
|
||||
},
|
||||
{
|
||||
i18n_key: "sidebar.intake",
|
||||
key: EProjectFeatureKey.INTAKE,
|
||||
name: "Intake",
|
||||
href: `/${workspaceSlug}/projects/${projectId}/intake`,
|
||||
icon: IntakeIcon,
|
||||
access: [EUserPermissions.ADMIN, EUserPermissions.MEMBER, EUserPermissions.GUEST],
|
||||
shouldRender: project.inbox_view,
|
||||
sortOrder: 6,
|
||||
},
|
||||
];
|
||||
@@ -1,14 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2023-present Plane Software, Inc. and contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
* See the LICENSE file for details.
|
||||
*/
|
||||
|
||||
export type TProjectTeamspaceList = {
|
||||
workspaceSlug: string;
|
||||
projectId: string;
|
||||
};
|
||||
|
||||
export function ProjectTeamspaceList(_props: TProjectTeamspaceList) {
|
||||
return null;
|
||||
}
|
||||
@@ -12,7 +12,7 @@ import { getAssetIdFromUrl, checkURLValidity } from "@plane/utils";
|
||||
// hooks
|
||||
import useKeypress from "@/hooks/use-keypress";
|
||||
// plane web components
|
||||
import { CreateProjectForm } from "@/plane-web/components/projects/create/root";
|
||||
import { CreateProjectForm } from "@/components/projects/create/root";
|
||||
// plane web types
|
||||
import type { TProject } from "@plane/types";
|
||||
// services
|
||||
|
||||
@@ -18,8 +18,6 @@ import { getTabIndex } from "@plane/utils";
|
||||
// components
|
||||
import { CoverImage } from "@/components/common/cover-image";
|
||||
import { ImagePickerPopover } from "@/components/core/image-picker-popover";
|
||||
// plane web imports
|
||||
import { ProjectTemplateSelect } from "@/plane-web/components/projects/create/template-select";
|
||||
|
||||
type Props = {
|
||||
handleClose: () => void;
|
||||
@@ -31,14 +29,7 @@ type Props = {
|
||||
};
|
||||
|
||||
function ProjectCreateHeader(props: Props) {
|
||||
const {
|
||||
handleClose,
|
||||
isMobile = false,
|
||||
handleFormOnChange,
|
||||
isClosable = true,
|
||||
handleTemplateSelect,
|
||||
showActionButtons = true,
|
||||
} = props;
|
||||
const { handleClose, isMobile = false, handleFormOnChange, isClosable = true } = props;
|
||||
const { watch, control, setValue } = useFormContext<IProject>();
|
||||
const { t } = useTranslation();
|
||||
// derived values
|
||||
@@ -54,11 +45,6 @@ function ProjectCreateHeader(props: Props) {
|
||||
alt={t("project_cover_image_alt")}
|
||||
className="absolute top-0 left-0 h-full w-full rounded-lg"
|
||||
/>
|
||||
{showActionButtons && (
|
||||
<div className="absolute top-2.5 left-2.5">
|
||||
<ProjectTemplateSelect onClick={handleTemplateSelect} />
|
||||
</div>
|
||||
)}
|
||||
{isClosable && (
|
||||
<div className="absolute top-2 right-2 p-2">
|
||||
<button type="button" onClick={handleClose} tabIndex={getIndex("close")}>
|
||||
|
||||
@@ -13,7 +13,7 @@ import { useMember } from "@/hooks/store/use-member";
|
||||
import { useUser, useUserPermissions } from "@/hooks/store/user";
|
||||
import { useAppRouter } from "@/hooks/use-app-router";
|
||||
// plane web imports
|
||||
import { useProjectColumns } from "@/plane-web/components/projects/settings/useProjectColumns";
|
||||
import { useProjectColumns } from "@/components/projects/settings/useProjectColumns";
|
||||
// store
|
||||
import type { IProjectMemberDetails } from "@/store/member/project/base-project-member.store";
|
||||
// local imports
|
||||
@@ -46,6 +46,7 @@ export const ProjectMemberListItem = observer(function ProjectMemberListItem(pro
|
||||
|
||||
if (memberId === currentUser?.id) {
|
||||
await leaveProject(workspaceSlug.toString(), projectId.toString())
|
||||
// oxlint-disable-next-line promise/always-return
|
||||
.then(async () => {
|
||||
router.push(`/${workspaceSlug}/projects`);
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user