[WEB-5134] refactor: update web ESLint configuration and refactor imports to use type imports (#7957)
* [WEB-5134] refactor: update `web` ESLint configuration and refactor imports to use type imports - Enhanced ESLint configuration by adding new rules for import consistency and type imports. - Refactored multiple files to replace regular imports with type imports for better clarity and performance. - Ensured consistent use of type imports across the application to align with TypeScript best practices. * refactor: standardize type imports across components - Updated multiple files to replace regular imports with type imports for improved clarity and consistency. - Ensured adherence to TypeScript best practices in the rich filters and issue layouts components.
This commit is contained in:
parent
4168127803
commit
9cfde896b3
1080 changed files with 2589 additions and 2082 deletions
|
|
@ -1,4 +1,18 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
root: true,
|
root: true,
|
||||||
extends: ["@plane/eslint-config/next.js"],
|
extends: ["@plane/eslint-config/next.js"],
|
||||||
|
rules: {
|
||||||
|
"no-duplicate-imports": "off",
|
||||||
|
"import/no-duplicates": ["error", { "prefer-inline": false }],
|
||||||
|
"import/consistent-type-specifier-style": ["error", "prefer-top-level"],
|
||||||
|
"@typescript-eslint/no-import-type-side-effects": "error",
|
||||||
|
"@typescript-eslint/consistent-type-imports": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
prefer: "type-imports",
|
||||||
|
fixStyle: "separate-type-imports",
|
||||||
|
disallowTypeAnnotations: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
import { FC, useState } from "react";
|
import type { FC } from "react";
|
||||||
|
import { useState } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { SIDEBAR_WIDTH } from "@plane/constants";
|
import { SIDEBAR_WIDTH } from "@plane/constants";
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ import { useRouter } from "next/navigation";
|
||||||
// plane package imports
|
// plane package imports
|
||||||
import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS } from "@plane/constants";
|
import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { type TabItem, Tabs } from "@plane/ui";
|
import { Tabs } from "@plane/ui";
|
||||||
|
import type { TabItem } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
import AnalyticsFilterActions from "@/components/analytics/analytics-filter-actions";
|
import AnalyticsFilterActions from "@/components/analytics/analytics-filter-actions";
|
||||||
import { PageHead } from "@/components/core/page-title";
|
import { PageHead } from "@/components/core/page-title";
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import { SidebarProjectsListItem } from "@/components/workspace/sidebar/projects
|
||||||
import { useAppTheme } from "@/hooks/store/use-app-theme";
|
import { useAppTheme } from "@/hooks/store/use-app-theme";
|
||||||
import { useProject } from "@/hooks/store/use-project";
|
import { useProject } from "@/hooks/store/use-project";
|
||||||
import { useUserPermissions } from "@/hooks/store/user";
|
import { useUserPermissions } from "@/hooks/store/user";
|
||||||
import { TProject } from "@/plane-web/types";
|
import type { TProject } from "@/plane-web/types";
|
||||||
import { ExtendedSidebarWrapper } from "./extended-sidebar-wrapper";
|
import { ExtendedSidebarWrapper } from "./extended-sidebar-wrapper";
|
||||||
|
|
||||||
export const ExtendedProjectSidebar = observer(() => {
|
export const ExtendedProjectSidebar = observer(() => {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
import React from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EXTENDED_SIDEBAR_WIDTH, SIDEBAR_WIDTH } from "@plane/constants";
|
import { EXTENDED_SIDEBAR_WIDTH, SIDEBAR_WIDTH } from "@plane/constants";
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import { observer } from "mobx-react";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { WORKSPACE_SIDEBAR_DYNAMIC_NAVIGATION_ITEMS_LINKS } from "@plane/constants";
|
import { WORKSPACE_SIDEBAR_DYNAMIC_NAVIGATION_ITEMS_LINKS } from "@plane/constants";
|
||||||
import { EUserWorkspaceRoles } from "@plane/types";
|
import type { EUserWorkspaceRoles } from "@plane/types";
|
||||||
// hooks
|
// hooks
|
||||||
import { useAppTheme } from "@/hooks/store/use-app-theme";
|
import { useAppTheme } from "@/hooks/store/use-app-theme";
|
||||||
import { useWorkspace } from "@/hooks/store/use-workspace";
|
import { useWorkspace } from "@/hooks/store/use-workspace";
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
// ui
|
// ui
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useParams, useRouter } from "next/navigation";
|
import { useParams, useRouter } from "next/navigation";
|
||||||
import { ChevronDown, PanelRight } from "lucide-react";
|
import { ChevronDown, PanelRight } from "lucide-react";
|
||||||
import { PROFILE_VIEWER_TAB, PROFILE_ADMINS_TAB, EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
import { PROFILE_VIEWER_TAB, PROFILE_ADMINS_TAB, EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { YourWorkIcon } from "@plane/propel/icons";
|
import { YourWorkIcon } from "@plane/propel/icons";
|
||||||
import { IUserProfileProjectSegregation } from "@plane/types";
|
import type { IUserProfileProjectSegregation } from "@plane/types";
|
||||||
import { Breadcrumbs, Header, CustomMenu } from "@plane/ui";
|
import { Breadcrumbs, Header, CustomMenu } from "@plane/ui";
|
||||||
import { cn } from "@plane/utils";
|
import { cn } from "@plane/utils";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -10,13 +10,13 @@ import { EIssueFilterType, ISSUE_LAYOUTS, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "
|
||||||
// plane i18n
|
// plane i18n
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
// types
|
// types
|
||||||
import {
|
import type {
|
||||||
EIssuesStoreType,
|
|
||||||
IIssueDisplayFilterOptions,
|
IIssueDisplayFilterOptions,
|
||||||
IIssueDisplayProperties,
|
IIssueDisplayProperties,
|
||||||
TIssueLayouts,
|
TIssueLayouts,
|
||||||
EIssueLayoutTypes,
|
EIssueLayoutTypes,
|
||||||
} from "@plane/types";
|
} from "@plane/types";
|
||||||
|
import { EIssuesStoreType } from "@plane/types";
|
||||||
// ui
|
// ui
|
||||||
import { CustomMenu } from "@plane/ui";
|
import { CustomMenu } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ import useSWR from "swr";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { GROUP_CHOICES } from "@plane/constants";
|
import { GROUP_CHOICES } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { IUserStateDistribution, TStateGroups } from "@plane/types";
|
import type { IUserStateDistribution, TStateGroups } from "@plane/types";
|
||||||
import { ContentWrapper } from "@plane/ui";
|
import { ContentWrapper } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
import { PageHead } from "@/components/core/page-title";
|
import { PageHead } from "@/components/core/page-title";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
import { ArchiveIcon, CycleIcon, ModuleIcon, WorkItemsIcon } from "@plane/propel/icons";
|
import { ArchiveIcon, CycleIcon, ModuleIcon, WorkItemsIcon } from "@plane/propel/icons";
|
||||||
|
|
|
||||||
|
|
@ -19,13 +19,8 @@ import { useTranslation } from "@plane/i18n";
|
||||||
import { Button } from "@plane/propel/button";
|
import { Button } from "@plane/propel/button";
|
||||||
import { CycleIcon } from "@plane/propel/icons";
|
import { CycleIcon } from "@plane/propel/icons";
|
||||||
import { Tooltip } from "@plane/propel/tooltip";
|
import { Tooltip } from "@plane/propel/tooltip";
|
||||||
import {
|
import type { ICustomSearchSelectOption, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types";
|
||||||
EIssuesStoreType,
|
import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types";
|
||||||
ICustomSearchSelectOption,
|
|
||||||
IIssueDisplayFilterOptions,
|
|
||||||
IIssueDisplayProperties,
|
|
||||||
EIssueLayoutTypes,
|
|
||||||
} from "@plane/types";
|
|
||||||
import { Breadcrumbs, BreadcrumbNavigationSearchDropdown, Header } from "@plane/ui";
|
import { Breadcrumbs, BreadcrumbNavigationSearchDropdown, Header } from "@plane/ui";
|
||||||
import { cn } from "@plane/utils";
|
import { cn } from "@plane/utils";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@ import { Calendar, ChevronDown, Kanban, List } from "lucide-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EIssueFilterType, ISSUE_LAYOUTS, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants";
|
import { EIssueFilterType, ISSUE_LAYOUTS, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EIssuesStoreType, IIssueDisplayFilterOptions, IIssueDisplayProperties, EIssueLayoutTypes } from "@plane/types";
|
import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, EIssueLayoutTypes } from "@plane/types";
|
||||||
|
import { EIssuesStoreType } from "@plane/types";
|
||||||
import { CustomMenu } from "@plane/ui";
|
import { CustomMenu } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
import { WorkItemsModal } from "@/components/analytics/work-items/modal";
|
import { WorkItemsModal } from "@/components/analytics/work-items/modal";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
// ui
|
// ui
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// ui
|
// ui
|
||||||
import { GanttChartSquare, LayoutGrid, List, type LucideIcon } from "lucide-react";
|
import { GanttChartSquare, LayoutGrid, List } from "lucide-react";
|
||||||
|
import type { LucideIcon } from "lucide-react";
|
||||||
// plane package imports
|
// plane package imports
|
||||||
import { TCycleLayoutOptions } from "@plane/types";
|
import type { TCycleLayoutOptions } from "@plane/types";
|
||||||
import { CustomMenu } from "@plane/ui";
|
import { CustomMenu } from "@plane/ui";
|
||||||
// hooks
|
// hooks
|
||||||
import { useCycleFilter } from "@/hooks/store/use-cycle-filter";
|
import { useCycleFilter } from "@/hooks/store/use-cycle-filter";
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ import { useParams } from "next/navigation";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EUserPermissionsLevel, CYCLE_TRACKER_ELEMENTS } from "@plane/constants";
|
import { EUserPermissionsLevel, CYCLE_TRACKER_ELEMENTS } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EUserProjectRoles, TCycleFilters } from "@plane/types";
|
import type { TCycleFilters } from "@plane/types";
|
||||||
|
import { EUserProjectRoles } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { Header, EHeaderVariant } from "@plane/ui";
|
import { Header, EHeaderVariant } from "@plane/ui";
|
||||||
import { calculateTotalFilters } from "@plane/utils";
|
import { calculateTotalFilters } from "@plane/utils";
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@ import { ChevronDown } from "lucide-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants";
|
import { EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EIssuesStoreType, IIssueDisplayFilterOptions, IIssueDisplayProperties, EIssueLayoutTypes } from "@plane/types";
|
import type { IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types";
|
||||||
|
import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { WorkItemsModal } from "@/components/analytics/work-items/modal";
|
import { WorkItemsModal } from "@/components/analytics/work-items/modal";
|
||||||
import {
|
import {
|
||||||
|
|
|
||||||
|
|
@ -17,13 +17,8 @@ import {
|
||||||
import { Button } from "@plane/propel/button";
|
import { Button } from "@plane/propel/button";
|
||||||
import { ModuleIcon } from "@plane/propel/icons";
|
import { ModuleIcon } from "@plane/propel/icons";
|
||||||
import { Tooltip } from "@plane/propel/tooltip";
|
import { Tooltip } from "@plane/propel/tooltip";
|
||||||
import {
|
import type { ICustomSearchSelectOption, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types";
|
||||||
EIssuesStoreType,
|
import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types";
|
||||||
ICustomSearchSelectOption,
|
|
||||||
IIssueDisplayFilterOptions,
|
|
||||||
IIssueDisplayProperties,
|
|
||||||
EIssueLayoutTypes,
|
|
||||||
} from "@plane/types";
|
|
||||||
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
||||||
import { cn } from "@plane/utils";
|
import { cn } from "@plane/utils";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@ import { Calendar, ChevronDown, Kanban, List } from "lucide-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EIssueFilterType, ISSUE_LAYOUTS, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants";
|
import { EIssueFilterType, ISSUE_LAYOUTS, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EIssuesStoreType, IIssueDisplayFilterOptions, IIssueDisplayProperties, EIssueLayoutTypes } from "@plane/types";
|
import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, EIssueLayoutTypes } from "@plane/types";
|
||||||
|
import { EIssuesStoreType } from "@plane/types";
|
||||||
import { CustomMenu } from "@plane/ui";
|
import { CustomMenu } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
import { WorkItemsModal } from "@/components/analytics/work-items/modal";
|
import { WorkItemsModal } from "@/components/analytics/work-items/modal";
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ import { useParams } from "next/navigation";
|
||||||
// types
|
// types
|
||||||
import { EUserPermissionsLevel } from "@plane/constants";
|
import { EUserPermissionsLevel } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EUserProjectRoles, TModuleFilters } from "@plane/types";
|
import type { TModuleFilters } from "@plane/types";
|
||||||
|
import { EUserProjectRoles } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { calculateTotalFilters } from "@plane/utils";
|
import { calculateTotalFilters } from "@plane/utils";
|
||||||
import { PageHead } from "@/components/core/page-title";
|
import { PageHead } from "@/components/core/page-title";
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@ import { useParams } from "next/navigation";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
// plane types
|
// plane types
|
||||||
import { getButtonStyling } from "@plane/propel/button";
|
import { getButtonStyling } from "@plane/propel/button";
|
||||||
import { EFileAssetType, TSearchEntityRequestPayload, TWebhookConnectionQueryParams } from "@plane/types";
|
import type { TSearchEntityRequestPayload, TWebhookConnectionQueryParams } from "@plane/types";
|
||||||
|
import { EFileAssetType } from "@plane/types";
|
||||||
// plane ui
|
// plane ui
|
||||||
// plane utils
|
// plane utils
|
||||||
import { cn } from "@plane/utils";
|
import { cn } from "@plane/utils";
|
||||||
|
|
@ -15,7 +16,8 @@ import { cn } from "@plane/utils";
|
||||||
import { LogoSpinner } from "@/components/common/logo-spinner";
|
import { LogoSpinner } from "@/components/common/logo-spinner";
|
||||||
import { PageHead } from "@/components/core/page-title";
|
import { PageHead } from "@/components/core/page-title";
|
||||||
import { IssuePeekOverview } from "@/components/issues/peek-overview";
|
import { IssuePeekOverview } from "@/components/issues/peek-overview";
|
||||||
import { PageRoot, TPageRootConfig, TPageRootHandlers } from "@/components/pages/editor/page-root";
|
import type { TPageRootConfig, TPageRootHandlers } from "@/components/pages/editor/page-root";
|
||||||
|
import { PageRoot } from "@/components/pages/editor/page-root";
|
||||||
// hooks
|
// hooks
|
||||||
import { useEditorConfig } from "@/hooks/editor";
|
import { useEditorConfig } from "@/hooks/editor";
|
||||||
import { useEditorAsset } from "@/hooks/store/use-editor-asset";
|
import { useEditorAsset } from "@/hooks/store/use-editor-asset";
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { useParams } from "next/navigation";
|
||||||
import { EProjectFeatureKey } from "@plane/constants";
|
import { EProjectFeatureKey } from "@plane/constants";
|
||||||
import { PageIcon } from "@plane/propel/icons";
|
import { PageIcon } from "@plane/propel/icons";
|
||||||
// types
|
// types
|
||||||
import { ICustomSearchSelectOption } from "@plane/types";
|
import type { ICustomSearchSelectOption } from "@plane/types";
|
||||||
// ui
|
// ui
|
||||||
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import {
|
||||||
// plane types
|
// plane types
|
||||||
import { Button } from "@plane/propel/button";
|
import { Button } from "@plane/propel/button";
|
||||||
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
||||||
import { TPage } from "@plane/types";
|
import type { TPage } from "@plane/types";
|
||||||
// plane ui
|
// plane ui
|
||||||
import { Breadcrumbs, Header } from "@plane/ui";
|
import { Breadcrumbs, Header } from "@plane/ui";
|
||||||
// helpers
|
// helpers
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
// components
|
// components
|
||||||
import { AppHeader } from "@/components/core/app-header";
|
import { AppHeader } from "@/components/core/app-header";
|
||||||
import { ContentWrapper } from "@/components/core/content-wrapper";
|
import { ContentWrapper } from "@/components/core/content-wrapper";
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ import { useParams, useSearchParams } from "next/navigation";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EUserPermissionsLevel } from "@plane/constants";
|
import { EUserPermissionsLevel } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EUserProjectRoles, TPageNavigationTabs } from "@plane/types";
|
import type { TPageNavigationTabs } from "@plane/types";
|
||||||
|
import { EUserProjectRoles } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { PageHead } from "@/components/core/page-title";
|
import { PageHead } from "@/components/core/page-title";
|
||||||
import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root";
|
import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root";
|
||||||
|
|
|
||||||
|
|
@ -17,14 +17,8 @@ import {
|
||||||
import { Button } from "@plane/propel/button";
|
import { Button } from "@plane/propel/button";
|
||||||
import { ViewsIcon } from "@plane/propel/icons";
|
import { ViewsIcon } from "@plane/propel/icons";
|
||||||
import { Tooltip } from "@plane/propel/tooltip";
|
import { Tooltip } from "@plane/propel/tooltip";
|
||||||
import {
|
import type { ICustomSearchSelectOption, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types";
|
||||||
EIssuesStoreType,
|
import { EIssuesStoreType, EViewAccess, EIssueLayoutTypes } from "@plane/types";
|
||||||
EViewAccess,
|
|
||||||
ICustomSearchSelectOption,
|
|
||||||
IIssueDisplayFilterOptions,
|
|
||||||
IIssueDisplayProperties,
|
|
||||||
EIssueLayoutTypes,
|
|
||||||
} from "@plane/types";
|
|
||||||
// ui
|
// ui
|
||||||
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@ import { useParams } from "next/navigation";
|
||||||
// components
|
// components
|
||||||
import { EUserPermissionsLevel } from "@plane/constants";
|
import { EUserPermissionsLevel } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EUserProjectRoles, EViewAccess, TViewFilterProps } from "@plane/types";
|
import type { EViewAccess, TViewFilterProps } from "@plane/types";
|
||||||
|
import { EUserProjectRoles } from "@plane/types";
|
||||||
import { Header, EHeaderVariant } from "@plane/ui";
|
import { Header, EHeaderVariant } from "@plane/ui";
|
||||||
import { calculateTotalFilters } from "@plane/utils";
|
import { calculateTotalFilters } from "@plane/utils";
|
||||||
import { PageHead } from "@/components/core/page-title";
|
import { PageHead } from "@/components/core/page-title";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
// components
|
// components
|
||||||
import { AppHeader } from "@/components/core/app-header";
|
import { AppHeader } from "@/components/core/app-header";
|
||||||
import { ContentWrapper } from "@/components/core/content-wrapper";
|
import { ContentWrapper } from "@/components/core/content-wrapper";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
// plane web layouts
|
// plane web layouts
|
||||||
import { ProjectAuthWrapper } from "@/plane-web/layouts/project-wrapper";
|
import { ProjectAuthWrapper } from "@/plane-web/layouts/project-wrapper";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
// components
|
// components
|
||||||
import { AppHeader } from "@/components/core/app-header";
|
import { AppHeader } from "@/components/core/app-header";
|
||||||
import { ContentWrapper } from "@/components/core/content-wrapper";
|
import { ContentWrapper } from "@/components/core/content-wrapper";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { isEmpty } from "lodash-es";
|
import { isEmpty } from "lodash-es";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// plane helpers
|
// plane helpers
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,8 @@ import {
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { Button } from "@plane/propel/button";
|
import { Button } from "@plane/propel/button";
|
||||||
import { ViewsIcon } from "@plane/propel/icons";
|
import { ViewsIcon } from "@plane/propel/icons";
|
||||||
import {
|
import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, ICustomSearchSelectOption } from "@plane/types";
|
||||||
EIssuesStoreType,
|
import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types";
|
||||||
IIssueDisplayFilterOptions,
|
|
||||||
IIssueDisplayProperties,
|
|
||||||
ICustomSearchSelectOption,
|
|
||||||
EIssueLayoutTypes,
|
|
||||||
} from "@plane/types";
|
|
||||||
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
|
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC, ReactNode } from "react";
|
import type { FC, ReactNode } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { usePathname } from "next/navigation";
|
import { usePathname } from "next/navigation";
|
||||||
// constants
|
// constants
|
||||||
import { WORKSPACE_SETTINGS_ACCESS } from "@plane/constants";
|
import { WORKSPACE_SETTINGS_ACCESS } from "@plane/constants";
|
||||||
import { EUserWorkspaceRoles } from "@plane/types";
|
import type { EUserWorkspaceRoles } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view";
|
import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view";
|
||||||
import { getWorkspaceActivePath, pathnameToAccessKey } from "@/components/settings/helper";
|
import { getWorkspaceActivePath, pathnameToAccessKey } from "@/components/settings/helper";
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import {
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { Button } from "@plane/propel/button";
|
import { Button } from "@plane/propel/button";
|
||||||
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
||||||
import { IWorkspaceBulkInviteFormData } from "@plane/types";
|
import type { IWorkspaceBulkInviteFormData } from "@plane/types";
|
||||||
import { cn } from "@plane/utils";
|
import { cn } from "@plane/utils";
|
||||||
// components
|
// components
|
||||||
import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view";
|
import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view";
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import {
|
||||||
EUserPermissions,
|
EUserPermissions,
|
||||||
WORKSPACE_SETTINGS_CATEGORY,
|
WORKSPACE_SETTINGS_CATEGORY,
|
||||||
} from "@plane/constants";
|
} from "@plane/constants";
|
||||||
import { EUserWorkspaceRoles } from "@plane/types";
|
import type { EUserWorkspaceRoles } from "@plane/types";
|
||||||
import { SettingsSidebar } from "@/components/settings/sidebar";
|
import { SettingsSidebar } from "@/components/settings/sidebar";
|
||||||
import { useUserPermissions } from "@/hooks/store/user";
|
import { useUserPermissions } from "@/hooks/store/user";
|
||||||
import { shouldRenderSettingLink } from "@/plane-web/helpers/workspace.helper";
|
import { shouldRenderSettingLink } from "@/plane-web/helpers/workspace.helper";
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import { useParams } from "next/navigation";
|
||||||
import useSWR from "swr";
|
import useSWR from "swr";
|
||||||
import { EUserPermissions, EUserPermissionsLevel, WORKSPACE_SETTINGS_TRACKER_EVENTS } from "@plane/constants";
|
import { EUserPermissions, EUserPermissionsLevel, WORKSPACE_SETTINGS_TRACKER_EVENTS } from "@plane/constants";
|
||||||
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
||||||
import { IWebhook } from "@plane/types";
|
import type { IWebhook } from "@plane/types";
|
||||||
// ui
|
// ui
|
||||||
// components
|
// components
|
||||||
import { LogoSpinner } from "@/components/common/logo-spinner";
|
import { LogoSpinner } from "@/components/common/logo-spinner";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { usePathname } from "next/navigation";
|
import { usePathname } from "next/navigation";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ import { getPasswordStrength } from "@plane/utils";
|
||||||
import { PageHead } from "@/components/core/page-title";
|
import { PageHead } from "@/components/core/page-title";
|
||||||
import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header";
|
import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header";
|
||||||
// helpers
|
// helpers
|
||||||
import { authErrorHandler, type EAuthenticationErrorCodes } from "@/helpers/authentication.helper";
|
import { authErrorHandler } from "@/helpers/authentication.helper";
|
||||||
|
import type { EAuthenticationErrorCodes } from "@/helpers/authentication.helper";
|
||||||
// hooks
|
// hooks
|
||||||
import { useUser } from "@/hooks/store/user";
|
import { useUser } from "@/hooks/store/user";
|
||||||
// services
|
// services
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import { useParams } from "next/navigation";
|
||||||
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
||||||
import { IProject } from "@plane/types";
|
import type { IProject } from "@plane/types";
|
||||||
// ui
|
// ui
|
||||||
// components
|
// components
|
||||||
import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view";
|
import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode, useEffect } from "react";
|
import type { ReactNode } from "react";
|
||||||
|
import { useEffect } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useParams, usePathname } from "next/navigation";
|
import { useParams, usePathname } from "next/navigation";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Forgot Password - Plane",
|
title: "Forgot Password - Plane",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Reset Password - Plane",
|
title: "Reset Password - Plane",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Set Password - Plane",
|
title: "Set Password - Plane",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Create Workspace",
|
title: "Create Workspace",
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import Link from "next/link";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { Button, getButtonStyling } from "@plane/propel/button";
|
import { Button, getButtonStyling } from "@plane/propel/button";
|
||||||
import { PlaneLogo } from "@plane/propel/icons";
|
import { PlaneLogo } from "@plane/propel/icons";
|
||||||
import { IWorkspace } from "@plane/types";
|
import type { IWorkspace } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { CreateWorkspaceForm } from "@/components/workspace/create-workspace-form";
|
import { CreateWorkspaceForm } from "@/components/workspace/create-workspace-form";
|
||||||
// hooks
|
// hooks
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Invitations",
|
title: "Invitations",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata, Viewport } from "next";
|
import type { Metadata, Viewport } from "next";
|
||||||
|
|
||||||
import { PreloadResources } from "./layout.preload";
|
import { PreloadResources } from "./layout.preload";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Onboarding",
|
title: "Onboarding",
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,11 @@ import { useEffect, useState } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useTheme } from "next-themes";
|
import { useTheme } from "next-themes";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { I_THEME_OPTION, THEME_OPTIONS } from "@plane/constants";
|
import type { I_THEME_OPTION } from "@plane/constants";
|
||||||
|
import { THEME_OPTIONS } from "@plane/constants";
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { setPromiseToast } from "@plane/propel/toast";
|
import { setPromiseToast } from "@plane/propel/toast";
|
||||||
import { IUserTheme } from "@plane/types";
|
import type { IUserTheme } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { applyTheme, unsetCustomCssVariables } from "@plane/utils";
|
import { applyTheme, unsetCustomCssVariables } from "@plane/utils";
|
||||||
import { LogoSpinner } from "@/components/common/logo-spinner";
|
import { LogoSpinner } from "@/components/common/logo-spinner";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
// components
|
// components
|
||||||
import { CommandPalette } from "@/components/command-palette";
|
import { CommandPalette } from "@/components/command-palette";
|
||||||
// wrappers
|
// wrappers
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@ import { PageHead } from "@/components/core/page-title";
|
||||||
import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header";
|
import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header";
|
||||||
import { ProfileSettingContentWrapper } from "@/components/profile/profile-setting-content-wrapper";
|
import { ProfileSettingContentWrapper } from "@/components/profile/profile-setting-content-wrapper";
|
||||||
// helpers
|
// helpers
|
||||||
import { authErrorHandler, type EAuthenticationErrorCodes } from "@/helpers/authentication.helper";
|
import { authErrorHandler } from "@/helpers/authentication.helper";
|
||||||
|
import type { EAuthenticationErrorCodes } from "@/helpers/authentication.helper";
|
||||||
// hooks
|
// hooks
|
||||||
import { useUser } from "@/hooks/store/user";
|
import { useUser } from "@/hooks/store/user";
|
||||||
// services
|
// services
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Sign up - Plane",
|
title: "Sign up - Plane",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Workspace Invitations",
|
title: "Workspace Invitations",
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata, Viewport } from "next";
|
import type { Metadata, Viewport } from "next";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
robots: {
|
robots: {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Metadata, Viewport } from "next";
|
import type { Metadata, Viewport } from "next";
|
||||||
import Script from "next/script";
|
import Script from "next/script";
|
||||||
|
|
||||||
// styles
|
// styles
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
// ui
|
// ui
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC, ReactNode } from "react";
|
import type { FC, ReactNode } from "react";
|
||||||
import { AppProgressProvider as ProgressProvider } from "@bprogress/next";
|
import { AppProgressProvider as ProgressProvider } from "@bprogress/next";
|
||||||
import dynamic from "next/dynamic";
|
import dynamic from "next/dynamic";
|
||||||
import { useTheme, ThemeProvider } from "next-themes";
|
import { useTheme, ThemeProvider } from "next-themes";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { AnalyticsTab } from "@plane/types";
|
import type { AnalyticsTab } from "@plane/types";
|
||||||
import { Overview } from "@/components/analytics/overview";
|
import { Overview } from "@/components/analytics/overview";
|
||||||
import { WorkItems } from "@/components/analytics/work-items";
|
import { WorkItems } from "@/components/analytics/work-items";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
export type TCustomAutomationsRootProps = {
|
export type TCustomAutomationsRootProps = {
|
||||||
projectId: string;
|
projectId: string;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EProjectFeatureKey } from "@plane/constants";
|
import type { EProjectFeatureKey } from "@plane/constants";
|
||||||
// local components
|
// local components
|
||||||
import { ProjectBreadcrumb } from "./project";
|
import { ProjectBreadcrumb } from "./project";
|
||||||
import { ProjectFeatureBreadcrumb } from "./project-feature";
|
import { ProjectFeatureBreadcrumb } from "./project-feature";
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EProjectFeatureKey } from "@plane/constants";
|
import { EProjectFeatureKey } from "@plane/constants";
|
||||||
import { ISvgIcons } from "@plane/propel/icons";
|
import type { ISvgIcons } from "@plane/propel/icons";
|
||||||
import { BreadcrumbNavigationDropdown, Breadcrumbs } from "@plane/ui";
|
import { BreadcrumbNavigationDropdown, Breadcrumbs } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
import { SwitcherLabel } from "@/components/common/switcher-label";
|
import { SwitcherLabel } from "@/components/common/switcher-label";
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { ProjectIcon } from "@plane/propel/icons";
|
import { ProjectIcon } from "@plane/propel/icons";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { ICustomSearchSelectOption } from "@plane/types";
|
import type { ICustomSearchSelectOption } from "@plane/types";
|
||||||
import { BreadcrumbNavigationSearchDropdown, Breadcrumbs } from "@plane/ui";
|
import { BreadcrumbNavigationSearchDropdown, Breadcrumbs } from "@plane/ui";
|
||||||
// components
|
// components
|
||||||
import { Logo } from "@/components/common/logo";
|
import { Logo } from "@/components/common/logo";
|
||||||
|
|
@ -11,7 +11,7 @@ import { SwitcherLabel } from "@/components/common/switcher-label";
|
||||||
// hooks
|
// hooks
|
||||||
import { useProject } from "@/hooks/store/use-project";
|
import { useProject } from "@/hooks/store/use-project";
|
||||||
import { useAppRouter } from "@/hooks/use-app-router";
|
import { useAppRouter } from "@/hooks/use-app-router";
|
||||||
import { TProject } from "@/plane-web/types";
|
import type { TProject } from "@/plane-web/types";
|
||||||
|
|
||||||
type TProjectBreadcrumbProps = {
|
type TProjectBreadcrumbProps = {
|
||||||
workspaceSlug: string;
|
workspaceSlug: string;
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,15 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
// types
|
|
||||||
import { LayoutGrid } from "lucide-react";
|
import { LayoutGrid } from "lucide-react";
|
||||||
|
// plane imports
|
||||||
import { CycleIcon, ModuleIcon, PageIcon, ProjectIcon, ViewsIcon } from "@plane/propel/icons";
|
import { CycleIcon, ModuleIcon, PageIcon, ProjectIcon, ViewsIcon } from "@plane/propel/icons";
|
||||||
import {
|
import type {
|
||||||
IWorkspaceDefaultSearchResult,
|
IWorkspaceDefaultSearchResult,
|
||||||
IWorkspaceIssueSearchResult,
|
IWorkspaceIssueSearchResult,
|
||||||
IWorkspacePageSearchResult,
|
IWorkspacePageSearchResult,
|
||||||
IWorkspaceProjectSearchResult,
|
IWorkspaceProjectSearchResult,
|
||||||
IWorkspaceSearchResult,
|
IWorkspaceSearchResult,
|
||||||
} from "@plane/types";
|
} from "@plane/types";
|
||||||
// ui
|
|
||||||
// helpers
|
|
||||||
import { generateWorkItemLink } from "@plane/utils";
|
import { generateWorkItemLink } from "@plane/utils";
|
||||||
// plane web components
|
// plane web components
|
||||||
import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier";
|
import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { useParams } from "next/navigation";
|
import { useParams } from "next/navigation";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { EIssueServiceType, EIssuesStoreType, TIssue } from "@plane/types";
|
import type { TIssue } from "@plane/types";
|
||||||
|
import { EIssueServiceType, EIssuesStoreType } from "@plane/types";
|
||||||
// components
|
// components
|
||||||
import { BulkDeleteIssuesModal } from "@/components/core/modals/bulk-delete-issues-modal";
|
import { BulkDeleteIssuesModal } from "@/components/core/modals/bulk-delete-issues-modal";
|
||||||
import { DeleteIssueModal } from "@/components/issues/delete-issue-modal";
|
import { DeleteIssueModal } from "@/components/issues/delete-issue-modal";
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
import { FC, ReactNode, useRef } from "react";
|
import type { FC, ReactNode } from "react";
|
||||||
|
import { useRef } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { EIssueCommentAccessSpecifier, TIssueComment } from "@plane/types";
|
import type { TIssueComment } from "@plane/types";
|
||||||
|
import { EIssueCommentAccessSpecifier } from "@plane/types";
|
||||||
import { Avatar, Tooltip } from "@plane/ui";
|
import { Avatar, Tooltip } from "@plane/ui";
|
||||||
import { calculateTimeAgo, cn, getFileURL, renderFormattedDate, renderFormattedTime } from "@plane/utils";
|
import { calculateTimeAgo, cn, getFileURL, renderFormattedDate, renderFormattedTime } from "@plane/utils";
|
||||||
// hooks
|
// hooks
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { AppSidebarToggleButton } from "@/components/sidebar/sidebar-toggle-button";
|
import { AppSidebarToggleButton } from "@/components/sidebar/sidebar-toggle-button";
|
||||||
import { useAppTheme } from "@/hooks/store/use-app-theme";
|
import { useAppTheme } from "@/hooks/store/use-app-theme";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { IWorkspace } from "@plane/types";
|
import type { IWorkspace } from "@plane/types";
|
||||||
|
|
||||||
type TProps = {
|
type TProps = {
|
||||||
workspace?: IWorkspace;
|
workspace?: IWorkspace;
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-stat
|
||||||
// hooks
|
// hooks
|
||||||
import { useCycle } from "@/hooks/store/use-cycle";
|
import { useCycle } from "@/hooks/store/use-cycle";
|
||||||
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
|
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
|
||||||
import { ActiveCycleIssueDetails } from "@/store/issue/cycle";
|
import type { ActiveCycleIssueDetails } from "@/store/issue/cycle";
|
||||||
|
|
||||||
interface IActiveCycleDetails {
|
interface IActiveCycleDetails {
|
||||||
workspaceSlug: string;
|
workspaceSlug: string;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
type Props = {
|
type Props = {
|
||||||
cycleId: string;
|
cycleId: string;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
"use client";
|
"use client";
|
||||||
import { FC, Fragment } from "react";
|
import type { FC } from "react";
|
||||||
|
import { Fragment } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// plane imports
|
// plane imports
|
||||||
import { useTranslation } from "@plane/i18n";
|
import { useTranslation } from "@plane/i18n";
|
||||||
import { TCycleEstimateType } from "@plane/types";
|
import type { TCycleEstimateType } from "@plane/types";
|
||||||
import { Loader } from "@plane/ui";
|
import { Loader } from "@plane/ui";
|
||||||
import { getDate } from "@plane/utils";
|
import { getDate } from "@plane/utils";
|
||||||
// components
|
// components
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
import React from "react";
|
||||||
// components
|
// components
|
||||||
import { SidebarChart } from "./base";
|
import { SidebarChart } from "./base";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
import React from "react";
|
||||||
// local components
|
// local components
|
||||||
|
|
||||||
type TDeDupeButtonRoot = {
|
type TDeDupeButtonRoot = {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
"use-client";
|
"use-client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
// types
|
// types
|
||||||
import { TDeDupeIssue } from "@plane/types";
|
import type { TDeDupeIssue } from "@plane/types";
|
||||||
|
|
||||||
type TDuplicateModalRootProps = {
|
type TDuplicateModalRootProps = {
|
||||||
workspaceSlug: string;
|
workspaceSlug: string;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
import React from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// types
|
// types
|
||||||
import { TDeDupeIssue } from "@plane/types";
|
import type { TDeDupeIssue } from "@plane/types";
|
||||||
import type { TIssueOperations } from "@/components/issues/issue-detail";
|
import type { TIssueOperations } from "@/components/issues/issue-detail";
|
||||||
|
|
||||||
type TDeDupeIssuePopoverRootProps = {
|
type TDeDupeIssuePopoverRootProps = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
|
||||||
type TDeDupeIssueButtonLabelProps = {
|
type TDeDupeIssueButtonLabelProps = {
|
||||||
isOpen: boolean;
|
isOpen: boolean;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
"use client";
|
"use client";
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { TIssue } from "@plane/types";
|
import React from "react";
|
||||||
|
import type { TIssue } from "@plane/types";
|
||||||
|
|
||||||
export interface EpicModalProps {
|
export interface EpicModalProps {
|
||||||
data?: Partial<TIssue>;
|
data?: Partial<TIssue>;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { Pen, Trash } from "lucide-react";
|
import { Pen, Trash } from "lucide-react";
|
||||||
import { PROJECT_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants";
|
import { PROJECT_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import { TEstimateSystemKeys, EEstimateSystem } from "@plane/types";
|
import type { TEstimateSystemKeys } from "@plane/types";
|
||||||
|
import { EEstimateSystem } from "@plane/types";
|
||||||
|
|
||||||
export const isEstimateSystemEnabled = (key: TEstimateSystemKeys) => {
|
export const isEstimateSystemEnabled = (key: TEstimateSystemKeys) => {
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
|
||||||
export type TEstimateTimeInputProps = {
|
export type TEstimateTimeInputProps = {
|
||||||
value?: number;
|
value?: number;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
|
||||||
import { TEstimatePointsObject, TEstimateSystemKeys, TEstimateTypeErrorObject } from "@plane/types";
|
import type { TEstimatePointsObject, TEstimateSystemKeys, TEstimateTypeErrorObject } from "@plane/types";
|
||||||
|
|
||||||
export type TEstimatePointDelete = {
|
export type TEstimatePointDelete = {
|
||||||
workspaceSlug: string;
|
workspaceSlug: string;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
|
|
||||||
type TUpdateEstimateModal = {
|
type TUpdateEstimateModal = {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
// components
|
// components
|
||||||
import type { IBlockUpdateData, IGanttBlock } from "@plane/types";
|
import type { IBlockUpdateData, IGanttBlock } from "@plane/types";
|
||||||
import RenderIfVisible from "@/components/core/render-if-visible-HOC";
|
import RenderIfVisible from "@/components/core/render-if-visible-HOC";
|
||||||
// hooks
|
// hooks
|
||||||
import { BlockRow } from "@/components/gantt-chart/blocks/block-row";
|
import { BlockRow } from "@/components/gantt-chart/blocks/block-row";
|
||||||
import { BLOCK_HEIGHT } from "@/components/gantt-chart/constants";
|
import { BLOCK_HEIGHT } from "@/components/gantt-chart/constants";
|
||||||
import { TSelectionHelper } from "@/hooks/use-multiple-select";
|
import type { TSelectionHelper } from "@/hooks/use-multiple-select";
|
||||||
// types
|
// types
|
||||||
|
|
||||||
export type GanttChartBlocksProps = {
|
export type GanttChartBlocksProps = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
//
|
//
|
||||||
import type { IBlockUpdateDependencyData } from "@plane/types";
|
import type { IBlockUpdateDependencyData } from "@plane/types";
|
||||||
import { GanttChartBlock } from "@/components/gantt-chart/blocks/block";
|
import { GanttChartBlock } from "@/components/gantt-chart/blocks/block";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { RefObject } from "react";
|
import type { RefObject } from "react";
|
||||||
import type { IGanttBlock } from "@plane/types";
|
import type { IGanttBlock } from "@plane/types";
|
||||||
|
|
||||||
type LeftDependencyDraggableProps = {
|
type LeftDependencyDraggableProps = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { RefObject } from "react";
|
import type { RefObject } from "react";
|
||||||
import type { IGanttBlock } from "@plane/types";
|
import type { IGanttBlock } from "@plane/types";
|
||||||
|
|
||||||
type RightDependencyDraggableProps = {
|
type RightDependencyDraggableProps = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
isEpic?: boolean;
|
isEpic?: boolean;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { EInboxIssueSource } from "@plane/types";
|
import type { EInboxIssueSource } from "@plane/types";
|
||||||
|
|
||||||
export type TInboxSourcePill = {
|
export type TInboxSourcePill = {
|
||||||
source: EInboxIssueSource;
|
source: EInboxIssueSource;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { observer } from "mobx-react";
|
||||||
import { BulkOperationsUpgradeBanner } from "@/components/issues/bulk-operations/upgrade-banner";
|
import { BulkOperationsUpgradeBanner } from "@/components/issues/bulk-operations/upgrade-banner";
|
||||||
// hooks
|
// hooks
|
||||||
import { useMultipleSelectStore } from "@/hooks/store/use-multiple-select-store";
|
import { useMultipleSelectStore } from "@/hooks/store/use-multiple-select-store";
|
||||||
import { TSelectionHelper } from "@/hooks/use-multiple-select";
|
import type { TSelectionHelper } from "@/hooks/use-multiple-select";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
className?: string;
|
className?: string;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React from "react";
|
import type React from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React from "react";
|
import type React from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
// plane types
|
// plane types
|
||||||
import { TIssueServiceType, TWorkItemWidgets } from "@plane/types";
|
import type { TIssueServiceType, TWorkItemWidgets } from "@plane/types";
|
||||||
|
|
||||||
export type TWorkItemAdditionalWidgetActionButtonsProps = {
|
export type TWorkItemAdditionalWidgetActionButtonsProps = {
|
||||||
disabled: boolean;
|
disabled: boolean;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
// plane types
|
// plane types
|
||||||
import { TIssueServiceType, TWorkItemWidgets } from "@plane/types";
|
import type { TIssueServiceType, TWorkItemWidgets } from "@plane/types";
|
||||||
|
|
||||||
export type TWorkItemAdditionalWidgetCollapsiblesProps = {
|
export type TWorkItemAdditionalWidgetCollapsiblesProps = {
|
||||||
disabled: boolean;
|
disabled: boolean;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
// plane types
|
// plane types
|
||||||
import { TIssueServiceType, TWorkItemWidgets } from "@plane/types";
|
import type { TIssueServiceType, TWorkItemWidgets } from "@plane/types";
|
||||||
|
|
||||||
export type TWorkItemAdditionalWidgetModalsProps = {
|
export type TWorkItemAdditionalWidgetModalsProps = {
|
||||||
hideWidgets: TWorkItemWidgets[];
|
hideWidgets: TWorkItemWidgets[];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
|
|
||||||
export type TAdditionalActivityRoot = {
|
export type TAdditionalActivityRoot = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
import React from "react";
|
||||||
// plane imports
|
// plane imports
|
||||||
|
|
||||||
export type TWorkItemAdditionalSidebarProperties = {
|
export type TWorkItemAdditionalSidebarProperties = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
// hooks
|
// hooks
|
||||||
import { useIssueDetail } from "@/hooks/store/use-issue-detail";
|
import { useIssueDetail } from "@/hooks/store/use-issue-detail";
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
// types
|
// types
|
||||||
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
import { TOAST_TYPE, setToast } from "@plane/propel/toast";
|
||||||
import { Tooltip } from "@plane/propel/tooltip";
|
import { Tooltip } from "@plane/propel/tooltip";
|
||||||
import { IIssueDisplayProperties } from "@plane/types";
|
import type { IIssueDisplayProperties } from "@plane/types";
|
||||||
// ui
|
// ui
|
||||||
// helpers
|
// helpers
|
||||||
import { cn } from "@plane/utils";
|
import { cn } from "@plane/utils";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
|
||||||
type TIssueAdditionalPropertiesActivity = {
|
type TIssueAdditionalPropertiesActivity = {
|
||||||
activityId: string;
|
activityId: string;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
|
|
||||||
export type TIssueTypeActivity = { activityId: string; showIssue?: boolean; ends: "top" | "bottom" | undefined };
|
export type TIssueTypeActivity = { activityId: string; showIssue?: boolean; ends: "top" | "bottom" | undefined };
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
import { IIssueDisplayProperties, TIssue } from "@plane/types";
|
import React from "react";
|
||||||
|
import type { IIssueDisplayProperties, TIssue } from "@plane/types";
|
||||||
|
|
||||||
export type TWorkItemLayoutAdditionalProperties = {
|
export type TWorkItemLayoutAdditionalProperties = {
|
||||||
displayProperties: IIssueDisplayProperties;
|
displayProperties: IIssueDisplayProperties;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import React, { FC } from "react";
|
import type { FC } from "react";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
issueId: string;
|
issueId: string;
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue