From caa5e89002b7bbbb9855b43088c288939dc879ed Mon Sep 17 00:00:00 2001 From: Prateek Shourya Date: Mon, 13 Oct 2025 17:56:24 +0530 Subject: [PATCH] [WEB-5135] refactor: update `sites` 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. --- apps/space/.eslintrc.js | 14 ++++++++ .../app/[workspaceSlug]/[projectId]/page.ts | 2 +- apps/space/app/layout.tsx | 2 +- apps/space/app/provider.tsx | 2 +- .../editor/embeds/mentions/root.tsx | 2 +- apps/space/ce/hooks/use-editor-flagging.ts | 2 +- .../account/auth-forms/auth-banner.tsx | 4 +-- .../account/auth-forms/auth-header.tsx | 2 +- .../account/auth-forms/auth-root.tsx | 13 +++----- .../components/account/auth-forms/email.tsx | 5 +-- .../account/terms-and-conditions.tsx | 3 +- .../core/components/common/powered-by.tsx | 2 +- .../core/components/common/project-logo.tsx | 2 +- .../editor/embeds/mentions/root.tsx | 2 +- .../components/editor/lite-text-editor.tsx | 3 +- .../components/editor/rich-text-editor.tsx | 3 +- apps/space/core/components/editor/toolbar.tsx | 3 +- .../instance/instance-failure-view.tsx | 2 +- .../filters/applied-filters/filters-list.tsx | 2 +- .../issues/filters/applied-filters/label.tsx | 2 +- .../filters/applied-filters/priority.tsx | 3 +- .../issues/filters/applied-filters/root.tsx | 3 +- .../issues/filters/helpers/dropdown.tsx | 2 +- .../core/components/issues/filters/root.tsx | 5 +-- .../issue-layouts/kanban/base-kanban-root.tsx | 2 +- .../issues/issue-layouts/kanban/block.tsx | 6 ++-- .../issue-layouts/kanban/blocks-list.tsx | 4 +-- .../issues/issue-layouts/kanban/default.tsx | 4 +-- .../kanban/headers/group-by-card.tsx | 5 +-- .../kanban/headers/sub-group-by-card.tsx | 3 +- .../issue-layouts/kanban/kanban-group.tsx | 3 +- .../issues/issue-layouts/kanban/swimlanes.tsx | 5 +-- .../issue-layouts/list/base-list-root.tsx | 2 +- .../issues/issue-layouts/list/block.tsx | 2 +- .../issues/issue-layouts/list/blocks-list.tsx | 4 +-- .../issues/issue-layouts/list/default.tsx | 2 +- .../issues/issue-layouts/list/list-group.tsx | 11 +++++-- .../properties/all-properties.tsx | 2 +- .../issue-layouts/properties/member.tsx | 5 +-- .../issue-layouts/properties/priority.tsx | 2 +- .../components/issues/issue-layouts/root.tsx | 3 +- .../components/issues/issue-layouts/utils.tsx | 12 +++---- .../with-display-properties-HOC.tsx | 2 +- .../components/issues/navbar/controls.tsx | 3 +- .../components/issues/navbar/layout-icon.tsx | 5 +-- .../issues/navbar/layout-selection.tsx | 4 +-- .../core/components/issues/navbar/root.tsx | 2 +- .../components/issues/navbar/user-avatar.tsx | 3 +- .../peek-overview/comment/add-comment.tsx | 4 +-- .../comment/comment-detail-card.tsx | 4 +-- .../issues/peek-overview/header.tsx | 2 +- .../issues/peek-overview/issue-activity.tsx | 2 +- .../issues/peek-overview/issue-details.tsx | 2 +- .../issues/peek-overview/issue-properties.tsx | 2 +- .../issues/peek-overview/layout.tsx | 3 +- .../issues/peek-overview/side-peek-view.tsx | 2 +- .../core/hooks/use-intersection-observer.tsx | 3 +- apps/space/core/hooks/use-mention.tsx | 2 +- apps/space/core/lib/instance-provider.tsx | 2 +- apps/space/core/lib/store-provider.tsx | 3 +- apps/space/core/lib/toast-provider.tsx | 2 +- apps/space/core/store/cycle.store.ts | 2 +- .../core/store/helpers/filter.helpers.ts | 2 +- apps/space/core/store/instance.store.ts | 2 +- apps/space/core/store/issue-detail.store.ts | 3 +- apps/space/core/store/issue.store.ts | 3 +- apps/space/core/store/profile.store.ts | 3 +- .../space/core/store/publish/publish.store.ts | 2 +- .../core/store/publish/publish_list.store.ts | 2 +- apps/space/core/store/root.store.ts | 33 ++++++++++++------- apps/space/core/store/state.store.ts | 2 +- apps/space/core/store/user.store.ts | 5 +-- apps/space/core/types/issue.d.ts | 2 +- apps/space/helpers/authentication.helper.tsx | 2 +- apps/space/helpers/common.helper.ts | 3 +- apps/space/helpers/editor.helper.ts | 2 +- apps/space/helpers/issue.helper.ts | 2 +- apps/space/helpers/state.helper.ts | 2 +- 78 files changed, 170 insertions(+), 116 deletions(-) diff --git a/apps/space/.eslintrc.js b/apps/space/.eslintrc.js index 1662fabf756..a0bc76d5d9a 100644 --- a/apps/space/.eslintrc.js +++ b/apps/space/.eslintrc.js @@ -1,4 +1,18 @@ module.exports = { root: true, 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, + }, + ], + }, }; diff --git a/apps/space/app/[workspaceSlug]/[projectId]/page.ts b/apps/space/app/[workspaceSlug]/[projectId]/page.ts index 0badbe64f56..94c4152e45e 100644 --- a/apps/space/app/[workspaceSlug]/[projectId]/page.ts +++ b/apps/space/app/[workspaceSlug]/[projectId]/page.ts @@ -1,7 +1,7 @@ import { notFound, redirect } from "next/navigation"; // plane imports import { SitesProjectPublishService } from "@plane/services"; -import { TProjectPublishSettings } from "@plane/types"; +import type { TProjectPublishSettings } from "@plane/types"; const publishService = new SitesProjectPublishService(); diff --git a/apps/space/app/layout.tsx b/apps/space/app/layout.tsx index d0c7435da93..05d54bd07ae 100644 --- a/apps/space/app/layout.tsx +++ b/apps/space/app/layout.tsx @@ -1,4 +1,4 @@ -import { Metadata } from "next"; +import type { Metadata } from "next"; // helpers import { SPACE_BASE_PATH } from "@plane/constants"; // styles diff --git a/apps/space/app/provider.tsx b/apps/space/app/provider.tsx index af4940e24f8..4a0a483ad1f 100644 --- a/apps/space/app/provider.tsx +++ b/apps/space/app/provider.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC, ReactNode } from "react"; +import type { ReactNode, FC } from "react"; import { ThemeProvider } from "next-themes"; // components import { TranslationProvider } from "@plane/i18n"; diff --git a/apps/space/ce/components/editor/embeds/mentions/root.tsx b/apps/space/ce/components/editor/embeds/mentions/root.tsx index 16e21f848de..23f15fe274a 100644 --- a/apps/space/ce/components/editor/embeds/mentions/root.tsx +++ b/apps/space/ce/components/editor/embeds/mentions/root.tsx @@ -1,4 +1,4 @@ // plane editor -import { TMentionComponentProps } from "@plane/editor"; +import type { TMentionComponentProps } from "@plane/editor"; export const EditorAdditionalMentionsRoot: React.FC = () => null; diff --git a/apps/space/ce/hooks/use-editor-flagging.ts b/apps/space/ce/hooks/use-editor-flagging.ts index 7b4bc38c355..9e80c35aab2 100644 --- a/apps/space/ce/hooks/use-editor-flagging.ts +++ b/apps/space/ce/hooks/use-editor-flagging.ts @@ -1,5 +1,5 @@ // editor -import { TExtensions } from "@plane/editor"; +import type { TExtensions } from "@plane/editor"; export type TEditorFlaggingHookReturnType = { document: { diff --git a/apps/space/core/components/account/auth-forms/auth-banner.tsx b/apps/space/core/components/account/auth-forms/auth-banner.tsx index 20b9ca81994..30cd6e09338 100644 --- a/apps/space/core/components/account/auth-forms/auth-banner.tsx +++ b/apps/space/core/components/account/auth-forms/auth-banner.tsx @@ -1,9 +1,9 @@ "use client"; -import { FC } from "react"; +import type { FC } from "react"; import { Info, X } from "lucide-react"; // helpers -import { TAuthErrorInfo } from "@/helpers/authentication.helper"; +import type { TAuthErrorInfo } from "@/helpers/authentication.helper"; type TAuthBanner = { bannerData: TAuthErrorInfo | undefined; diff --git a/apps/space/core/components/account/auth-forms/auth-header.tsx b/apps/space/core/components/account/auth-forms/auth-header.tsx index f75dccecf5f..7996feedfa2 100644 --- a/apps/space/core/components/account/auth-forms/auth-header.tsx +++ b/apps/space/core/components/account/auth-forms/auth-header.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC } from "react"; +import type { FC } from "react"; // helpers import { EAuthModes } from "@/types/auth"; diff --git a/apps/space/core/components/account/auth-forms/auth-root.tsx b/apps/space/core/components/account/auth-forms/auth-root.tsx index e71a3a08de6..86452a3c6b5 100644 --- a/apps/space/core/components/account/auth-forms/auth-root.tsx +++ b/apps/space/core/components/account/auth-forms/auth-root.tsx @@ -1,6 +1,7 @@ "use client"; -import React, { FC, useEffect, useState } from "react"; +import type { FC } from "react"; +import React, { useEffect, useState } from "react"; import { observer } from "mobx-react"; import Image from "next/image"; import { useSearchParams } from "next/navigation"; @@ -8,16 +9,12 @@ import { useTheme } from "next-themes"; // plane imports import { API_BASE_URL } from "@plane/constants"; import { SitesAuthService } from "@plane/services"; -import { IEmailCheckData } from "@plane/types"; +import type { IEmailCheckData } from "@plane/types"; import { OAuthOptions } from "@plane/ui"; // components // helpers -import { - EAuthenticationErrorCodes, - EErrorAlertType, - TAuthErrorInfo, - authErrorHandler, -} from "@/helpers/authentication.helper"; +import type { TAuthErrorInfo } from "@/helpers/authentication.helper"; +import { EErrorAlertType, authErrorHandler, EAuthenticationErrorCodes } from "@/helpers/authentication.helper"; // hooks import { useInstance } from "@/hooks/store/use-instance"; // types diff --git a/apps/space/core/components/account/auth-forms/email.tsx b/apps/space/core/components/account/auth-forms/email.tsx index 867b1efe55c..7abaef6f9ce 100644 --- a/apps/space/core/components/account/auth-forms/email.tsx +++ b/apps/space/core/components/account/auth-forms/email.tsx @@ -1,12 +1,13 @@ "use client"; -import { FC, FormEvent, useMemo, useRef, useState } from "react"; +import type { FC, FormEvent } from "react"; +import { useMemo, useRef, useState } from "react"; import { observer } from "mobx-react"; // icons import { CircleAlert, XCircle } from "lucide-react"; // types import { Button } from "@plane/propel/button"; -import { IEmailCheckData } from "@plane/types"; +import type { IEmailCheckData } from "@plane/types"; // ui import { Input, Spinner } from "@plane/ui"; // helpers diff --git a/apps/space/core/components/account/terms-and-conditions.tsx b/apps/space/core/components/account/terms-and-conditions.tsx index 8725eb7b2ad..09611d92676 100644 --- a/apps/space/core/components/account/terms-and-conditions.tsx +++ b/apps/space/core/components/account/terms-and-conditions.tsx @@ -1,6 +1,7 @@ "use client"; -import React, { FC } from "react"; +import type { FC } from "react"; +import React from "react"; import Link from "next/link"; type Props = { diff --git a/apps/space/core/components/common/powered-by.tsx b/apps/space/core/components/common/powered-by.tsx index be4e5bf736c..653c150f9a5 100644 --- a/apps/space/core/components/common/powered-by.tsx +++ b/apps/space/core/components/common/powered-by.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC } from "react"; +import type { FC } from "react"; import { WEBSITE_URL } from "@plane/constants"; // assets import { PlaneLogo } from "@plane/propel/icons"; diff --git a/apps/space/core/components/common/project-logo.tsx b/apps/space/core/components/common/project-logo.tsx index 2dfc04b3888..bea8e213f4c 100644 --- a/apps/space/core/components/common/project-logo.tsx +++ b/apps/space/core/components/common/project-logo.tsx @@ -1,5 +1,5 @@ // types -import { TLogoProps } from "@plane/types"; +import type { TLogoProps } from "@plane/types"; // helpers import { cn } from "@plane/utils"; diff --git a/apps/space/core/components/editor/embeds/mentions/root.tsx b/apps/space/core/components/editor/embeds/mentions/root.tsx index 9ea5ef6fb20..95149b9267e 100644 --- a/apps/space/core/components/editor/embeds/mentions/root.tsx +++ b/apps/space/core/components/editor/embeds/mentions/root.tsx @@ -1,5 +1,5 @@ // plane editor -import { TMentionComponentProps } from "@plane/editor"; +import type { TMentionComponentProps } from "@plane/editor"; // plane web components import { EditorAdditionalMentionsRoot } from "@/plane-web/components/editor"; // local components diff --git a/apps/space/core/components/editor/lite-text-editor.tsx b/apps/space/core/components/editor/lite-text-editor.tsx index a9ff57a8249..5b33b58119c 100644 --- a/apps/space/core/components/editor/lite-text-editor.tsx +++ b/apps/space/core/components/editor/lite-text-editor.tsx @@ -1,6 +1,7 @@ import React from "react"; // plane imports -import { type EditorRefApi, type ILiteTextEditorProps, LiteTextEditorWithRef, type TFileHandler } from "@plane/editor"; +import { LiteTextEditorWithRef } from "@plane/editor"; +import type { EditorRefApi, ILiteTextEditorProps, TFileHandler } from "@plane/editor"; import type { MakeOptional } from "@plane/types"; import { cn, isCommentEmpty } from "@plane/utils"; // helpers diff --git a/apps/space/core/components/editor/rich-text-editor.tsx b/apps/space/core/components/editor/rich-text-editor.tsx index c058d3e88dc..1d48d7da28d 100644 --- a/apps/space/core/components/editor/rich-text-editor.tsx +++ b/apps/space/core/components/editor/rich-text-editor.tsx @@ -1,6 +1,7 @@ import React, { forwardRef } from "react"; // plane imports -import { type EditorRefApi, type IRichTextEditorProps, RichTextEditorWithRef, type TFileHandler } from "@plane/editor"; +import { RichTextEditorWithRef } from "@plane/editor"; +import type { EditorRefApi, IRichTextEditorProps, TFileHandler } from "@plane/editor"; import type { MakeOptional } from "@plane/types"; // helpers import { getEditorFileHandlers } from "@/helpers/editor.helper"; diff --git a/apps/space/core/components/editor/toolbar.tsx b/apps/space/core/components/editor/toolbar.tsx index b838aee0f38..bb6347f427c 100644 --- a/apps/space/core/components/editor/toolbar.tsx +++ b/apps/space/core/components/editor/toolbar.tsx @@ -2,7 +2,8 @@ import React, { useEffect, useState, useCallback } from "react"; // plane imports -import { TOOLBAR_ITEMS, type ToolbarMenuItem, type EditorRefApi } from "@plane/editor"; +import { TOOLBAR_ITEMS } from "@plane/editor"; +import type { ToolbarMenuItem, EditorRefApi } from "@plane/editor"; import { Button } from "@plane/propel/button"; import { Tooltip } from "@plane/propel/tooltip"; import { cn } from "@plane/utils"; diff --git a/apps/space/core/components/instance/instance-failure-view.tsx b/apps/space/core/components/instance/instance-failure-view.tsx index d5c18de7eaf..b1190285fec 100644 --- a/apps/space/core/components/instance/instance-failure-view.tsx +++ b/apps/space/core/components/instance/instance-failure-view.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC } from "react"; +import type { FC } from "react"; import Image from "next/image"; import { useTheme } from "next-themes"; import { Button } from "@plane/propel/button"; diff --git a/apps/space/core/components/issues/filters/applied-filters/filters-list.tsx b/apps/space/core/components/issues/filters/applied-filters/filters-list.tsx index d9d03de15eb..cb542facef2 100644 --- a/apps/space/core/components/issues/filters/applied-filters/filters-list.tsx +++ b/apps/space/core/components/issues/filters/applied-filters/filters-list.tsx @@ -4,7 +4,7 @@ import { observer } from "mobx-react"; import { X } from "lucide-react"; // types import { useTranslation } from "@plane/i18n"; -import { TFilters } from "@/types/issue"; +import type { TFilters } from "@/types/issue"; // components import { AppliedPriorityFilters } from "./priority"; import { AppliedStateFilters } from "./state"; diff --git a/apps/space/core/components/issues/filters/applied-filters/label.tsx b/apps/space/core/components/issues/filters/applied-filters/label.tsx index 86f65f86792..5abbd54bac1 100644 --- a/apps/space/core/components/issues/filters/applied-filters/label.tsx +++ b/apps/space/core/components/issues/filters/applied-filters/label.tsx @@ -2,7 +2,7 @@ import { X } from "lucide-react"; // types -import { IIssueLabel } from "@/types/issue"; +import type { IIssueLabel } from "@/types/issue"; type Props = { handleRemove: (val: string) => void; diff --git a/apps/space/core/components/issues/filters/applied-filters/priority.tsx b/apps/space/core/components/issues/filters/applied-filters/priority.tsx index 7fdf900bb24..a687cb67c5c 100644 --- a/apps/space/core/components/issues/filters/applied-filters/priority.tsx +++ b/apps/space/core/components/issues/filters/applied-filters/priority.tsx @@ -1,7 +1,8 @@ "use client"; import { X } from "lucide-react"; -import { PriorityIcon, type TIssuePriorities } from "@plane/propel/icons"; +import { PriorityIcon } from "@plane/propel/icons"; +import type { TIssuePriorities } from "@plane/propel/icons"; type Props = { handleRemove: (val: string) => void; diff --git a/apps/space/core/components/issues/filters/applied-filters/root.tsx b/apps/space/core/components/issues/filters/applied-filters/root.tsx index f5d2ce5a6b0..f67749f9959 100644 --- a/apps/space/core/components/issues/filters/applied-filters/root.tsx +++ b/apps/space/core/components/issues/filters/applied-filters/root.tsx @@ -1,6 +1,7 @@ "use client"; -import { FC, useCallback } from "react"; +import type { FC } from "react"; +import { useCallback } from "react"; import { cloneDeep } from "lodash-es"; import { observer } from "mobx-react"; import { useRouter } from "next/navigation"; diff --git a/apps/space/core/components/issues/filters/helpers/dropdown.tsx b/apps/space/core/components/issues/filters/helpers/dropdown.tsx index 176ad6de745..e9f025b2b48 100644 --- a/apps/space/core/components/issues/filters/helpers/dropdown.tsx +++ b/apps/space/core/components/issues/filters/helpers/dropdown.tsx @@ -1,7 +1,7 @@ "use client"; import React, { Fragment, useState } from "react"; -import { Placement } from "@popperjs/core"; +import type { Placement } from "@popperjs/core"; import { usePopper } from "react-popper"; import { Popover, Transition } from "@headlessui/react"; // ui diff --git a/apps/space/core/components/issues/filters/root.tsx b/apps/space/core/components/issues/filters/root.tsx index c9316598a85..8899a3378bc 100644 --- a/apps/space/core/components/issues/filters/root.tsx +++ b/apps/space/core/components/issues/filters/root.tsx @@ -1,6 +1,7 @@ "use client"; -import { FC, useCallback } from "react"; +import type { FC } from "react"; +import { useCallback } from "react"; import { cloneDeep } from "lodash-es"; import { observer } from "mobx-react"; import { useRouter } from "next/navigation"; @@ -14,7 +15,7 @@ import { queryParamGenerator } from "@/helpers/query-param-generator"; // hooks import { useIssueFilter } from "@/hooks/store/use-issue-filter"; // types -import { TIssueQueryFilters } from "@/types/issue"; +import type { TIssueQueryFilters } from "@/types/issue"; type IssueFiltersDropdownProps = { anchor: string; diff --git a/apps/space/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx b/apps/space/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx index a3ccabd0e81..b65b93924ea 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx @@ -4,7 +4,7 @@ import { useCallback, useMemo, useRef } from "react"; import { debounce } from "lodash-es"; import { observer } from "mobx-react"; // types -import { IIssueDisplayProperties } from "@plane/types"; +import type { IIssueDisplayProperties } from "@plane/types"; // components import { IssueLayoutHOC } from "@/components/issues/issue-layouts/issue-layout-HOC"; // hooks diff --git a/apps/space/core/components/issues/issue-layouts/kanban/block.tsx b/apps/space/core/components/issues/issue-layouts/kanban/block.tsx index 7511d9aaf94..e98502b3f5a 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/block.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/block.tsx @@ -1,12 +1,12 @@ "use client"; -import { MutableRefObject } from "react"; +import type { MutableRefObject } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { useParams, useSearchParams } from "next/navigation"; // plane types import { Tooltip } from "@plane/propel/tooltip"; -import { IIssueDisplayProperties } from "@plane/types"; +import type { IIssueDisplayProperties } from "@plane/types"; // plane ui // plane utils import { cn } from "@plane/utils"; @@ -18,7 +18,7 @@ import { queryParamGenerator } from "@/helpers/query-param-generator"; import { usePublish } from "@/hooks/store/publish"; import { useIssueDetails } from "@/hooks/store/use-issue-details"; // -import { IIssue } from "@/types/issue"; +import type { IIssue } from "@/types/issue"; import { IssueProperties } from "../properties/all-properties"; import { getIssueBlockId } from "../utils"; import { BlockReactions } from "./block-reactions"; diff --git a/apps/space/core/components/issues/issue-layouts/kanban/blocks-list.tsx b/apps/space/core/components/issues/issue-layouts/kanban/blocks-list.tsx index c0a58325b5d..c5cea19cc73 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/blocks-list.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/blocks-list.tsx @@ -1,7 +1,7 @@ -import { MutableRefObject } from "react"; +import type { MutableRefObject } from "react"; import { observer } from "mobx-react"; //types -import { IIssueDisplayProperties } from "@plane/types"; +import type { IIssueDisplayProperties } from "@plane/types"; // components import { KanbanIssueBlock } from "./block"; diff --git a/apps/space/core/components/issues/issue-layouts/kanban/default.tsx b/apps/space/core/components/issues/issue-layouts/kanban/default.tsx index e87250546c5..e5e622e8a95 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/default.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/default.tsx @@ -1,8 +1,8 @@ -import { MutableRefObject } from "react"; +import type { MutableRefObject } from "react"; import { isNil } from "lodash-es"; import { observer } from "mobx-react"; // types -import { +import type { GroupByColumnTypes, IGroupByColumn, TGroupedIssues, diff --git a/apps/space/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx b/apps/space/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx index a36d9f92299..5f56b9c2d19 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx @@ -1,10 +1,11 @@ "use client"; -import React, { FC } from "react"; +import type { FC } from "react"; +import React from "react"; import { observer } from "mobx-react"; import { Circle } from "lucide-react"; // types -import { TIssueGroupByOptions } from "@plane/types"; +import type { TIssueGroupByOptions } from "@plane/types"; interface IHeaderGroupByCard { groupBy: TIssueGroupByOptions | undefined; diff --git a/apps/space/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx b/apps/space/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx index 2e91624d111..fd7ba5f0df0 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx @@ -1,4 +1,5 @@ -import React, { FC } from "react"; +import type { FC } from "react"; +import React from "react"; import { observer } from "mobx-react"; import { Circle, ChevronDown, ChevronUp } from "lucide-react"; // mobx diff --git a/apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx b/apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx index 26383006ee0..7fbcc5ae67b 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/kanban-group.tsx @@ -1,6 +1,7 @@ "use client"; -import { MutableRefObject, forwardRef, useCallback, useRef, useState } from "react"; +import type { MutableRefObject } from "react"; +import { forwardRef, useCallback, useRef, useState } from "react"; import { observer } from "mobx-react"; //types import type { diff --git a/apps/space/core/components/issues/issue-layouts/kanban/swimlanes.tsx b/apps/space/core/components/issues/issue-layouts/kanban/swimlanes.tsx index a25d19c148f..2799ee28321 100644 --- a/apps/space/core/components/issues/issue-layouts/kanban/swimlanes.tsx +++ b/apps/space/core/components/issues/issue-layouts/kanban/swimlanes.tsx @@ -1,7 +1,8 @@ -import { MutableRefObject, useState } from "react"; +import type { MutableRefObject } from "react"; +import { useState } from "react"; import { observer } from "mobx-react"; // types -import { +import type { GroupByColumnTypes, IGroupByColumn, TGroupedIssues, diff --git a/apps/space/core/components/issues/issue-layouts/list/base-list-root.tsx b/apps/space/core/components/issues/issue-layouts/list/base-list-root.tsx index b810452dabe..c3d498e3157 100644 --- a/apps/space/core/components/issues/issue-layouts/list/base-list-root.tsx +++ b/apps/space/core/components/issues/issue-layouts/list/base-list-root.tsx @@ -1,7 +1,7 @@ import { useCallback, useMemo } from "react"; import { observer } from "mobx-react"; // types -import { IIssueDisplayProperties, TGroupedIssues } from "@plane/types"; +import type { IIssueDisplayProperties, TGroupedIssues } from "@plane/types"; // constants // components import { IssueLayoutHOC } from "@/components/issues/issue-layouts/issue-layout-HOC"; diff --git a/apps/space/core/components/issues/issue-layouts/list/block.tsx b/apps/space/core/components/issues/issue-layouts/list/block.tsx index a56c3d5b9da..522d46a9e80 100644 --- a/apps/space/core/components/issues/issue-layouts/list/block.tsx +++ b/apps/space/core/components/issues/issue-layouts/list/block.tsx @@ -6,7 +6,7 @@ import Link from "next/link"; import { useParams, useSearchParams } from "next/navigation"; // plane types import { Tooltip } from "@plane/propel/tooltip"; -import { IIssueDisplayProperties } from "@plane/types"; +import type { IIssueDisplayProperties } from "@plane/types"; // plane ui // plane utils import { cn } from "@plane/utils"; diff --git a/apps/space/core/components/issues/issue-layouts/list/blocks-list.tsx b/apps/space/core/components/issues/issue-layouts/list/blocks-list.tsx index bb25e5c1675..bf1b202f5c6 100644 --- a/apps/space/core/components/issues/issue-layouts/list/blocks-list.tsx +++ b/apps/space/core/components/issues/issue-layouts/list/blocks-list.tsx @@ -1,6 +1,6 @@ -import { FC, MutableRefObject } from "react"; +import type { FC, MutableRefObject } from "react"; // types -import { IIssueDisplayProperties } from "@plane/types"; +import type { IIssueDisplayProperties } from "@plane/types"; import { IssueBlock } from "./block"; interface Props { diff --git a/apps/space/core/components/issues/issue-layouts/list/default.tsx b/apps/space/core/components/issues/issue-layouts/list/default.tsx index 4beee971ab8..a10333a61e5 100644 --- a/apps/space/core/components/issues/issue-layouts/list/default.tsx +++ b/apps/space/core/components/issues/issue-layouts/list/default.tsx @@ -1,7 +1,7 @@ import { useRef } from "react"; import { observer } from "mobx-react"; // types -import { +import type { GroupByColumnTypes, TGroupedIssues, IIssueDisplayProperties, diff --git a/apps/space/core/components/issues/issue-layouts/list/list-group.tsx b/apps/space/core/components/issues/issue-layouts/list/list-group.tsx index 0a8c5ebb0d2..f62cd02329d 100644 --- a/apps/space/core/components/issues/issue-layouts/list/list-group.tsx +++ b/apps/space/core/components/issues/issue-layouts/list/list-group.tsx @@ -1,10 +1,17 @@ "use client"; -import { Fragment, MutableRefObject, forwardRef, useRef, useState } from "react"; +import type { MutableRefObject } from "react"; +import { Fragment, forwardRef, useRef, useState } from "react"; import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; // plane types -import { IGroupByColumn, TIssueGroupByOptions, IIssueDisplayProperties, TPaginationData, TLoader } from "@plane/types"; +import type { + IGroupByColumn, + TIssueGroupByOptions, + IIssueDisplayProperties, + TPaginationData, + TLoader, +} from "@plane/types"; // plane utils import { cn } from "@plane/utils"; // hooks diff --git a/apps/space/core/components/issues/issue-layouts/properties/all-properties.tsx b/apps/space/core/components/issues/issue-layouts/properties/all-properties.tsx index e8a8ead1788..c77fcbc95bb 100644 --- a/apps/space/core/components/issues/issue-layouts/properties/all-properties.tsx +++ b/apps/space/core/components/issues/issue-layouts/properties/all-properties.tsx @@ -11,7 +11,7 @@ import { WithDisplayPropertiesHOC } from "@/components/issues/issue-layouts/with // helpers import { getDate } from "@/helpers/date-time.helper"; //// hooks -import { IIssue } from "@/types/issue"; +import type { IIssue } from "@/types/issue"; import { IssueBlockCycle } from "./cycle"; import { IssueBlockDate } from "./due-date"; import { IssueBlockLabels } from "./labels"; diff --git a/apps/space/core/components/issues/issue-layouts/properties/member.tsx b/apps/space/core/components/issues/issue-layouts/properties/member.tsx index 9ae3314f180..a5baae8a3b3 100644 --- a/apps/space/core/components/issues/issue-layouts/properties/member.tsx +++ b/apps/space/core/components/issues/issue-layouts/properties/member.tsx @@ -2,7 +2,8 @@ import { observer } from "mobx-react"; // icons -import { LucideIcon, Users } from "lucide-react"; +import type { LucideIcon } from "lucide-react"; +import { Users } from "lucide-react"; // plane ui import { Avatar, AvatarGroup } from "@plane/ui"; // plane utils @@ -10,7 +11,7 @@ import { cn } from "@plane/utils"; // hooks import { useMember } from "@/hooks/store/use-member"; // -import { TPublicMember } from "@/types/member"; +import type { TPublicMember } from "@/types/member"; type Props = { memberIds: string[]; diff --git a/apps/space/core/components/issues/issue-layouts/properties/priority.tsx b/apps/space/core/components/issues/issue-layouts/properties/priority.tsx index 8514c059583..720d9b4684f 100644 --- a/apps/space/core/components/issues/issue-layouts/properties/priority.tsx +++ b/apps/space/core/components/issues/issue-layouts/properties/priority.tsx @@ -5,7 +5,7 @@ import { useTranslation } from "@plane/i18n"; // types import { PriorityIcon } from "@plane/propel/icons"; import { Tooltip } from "@plane/propel/tooltip"; -import { TIssuePriorities } from "@plane/types"; +import type { TIssuePriorities } from "@plane/types"; // constants import { cn, getIssuePriorityFilters } from "@plane/utils"; diff --git a/apps/space/core/components/issues/issue-layouts/root.tsx b/apps/space/core/components/issues/issue-layouts/root.tsx index 9dad67aa3ba..3f9ee8d6af8 100644 --- a/apps/space/core/components/issues/issue-layouts/root.tsx +++ b/apps/space/core/components/issues/issue-layouts/root.tsx @@ -1,6 +1,7 @@ "use client"; -import { FC, useEffect } from "react"; +import type { FC } from "react"; +import { useEffect } from "react"; import { observer } from "mobx-react"; import useSWR from "swr"; // components diff --git a/apps/space/core/components/issues/issue-layouts/utils.tsx b/apps/space/core/components/issues/issue-layouts/utils.tsx index 9beb230c8ea..78fcb1701da 100644 --- a/apps/space/core/components/issues/issue-layouts/utils.tsx +++ b/apps/space/core/components/issues/issue-layouts/utils.tsx @@ -5,7 +5,7 @@ import { ContrastIcon } from "lucide-react"; // types import { EIconSize, ISSUE_PRIORITIES } from "@plane/constants"; import { CycleGroupIcon, DiceIcon, PriorityIcon, StateGroupIcon } from "@plane/propel/icons"; -import { +import type { GroupByColumnTypes, IGroupByColumn, TCycleGroups, @@ -17,11 +17,11 @@ import { Avatar } from "@plane/ui"; // components // constants // stores -import { ICycleStore } from "@/store/cycle.store"; -import { IIssueLabelStore } from "@/store/label.store"; -import { IIssueMemberStore } from "@/store/members.store"; -import { IIssueModuleStore } from "@/store/module.store"; -import { IStateStore } from "@/store/state.store"; +import type { ICycleStore } from "@/store/cycle.store"; +import type { IIssueLabelStore } from "@/store/label.store"; +import type { IIssueMemberStore } from "@/store/members.store"; +import type { IIssueModuleStore } from "@/store/module.store"; +import type { IStateStore } from "@/store/state.store"; export const HIGHLIGHT_CLASS = "highlight"; export const HIGHLIGHT_WITH_LINE = "highlight-with-line"; diff --git a/apps/space/core/components/issues/issue-layouts/with-display-properties-HOC.tsx b/apps/space/core/components/issues/issue-layouts/with-display-properties-HOC.tsx index 3bc0a610c77..159b92a4d19 100644 --- a/apps/space/core/components/issues/issue-layouts/with-display-properties-HOC.tsx +++ b/apps/space/core/components/issues/issue-layouts/with-display-properties-HOC.tsx @@ -1,4 +1,4 @@ -import { ReactNode } from "react"; +import type { ReactNode } from "react"; import { observer } from "mobx-react"; // plane imports import type { IIssueDisplayProperties } from "@plane/types"; diff --git a/apps/space/core/components/issues/navbar/controls.tsx b/apps/space/core/components/issues/navbar/controls.tsx index 65eb73d37e1..0616d8b5d2f 100644 --- a/apps/space/core/components/issues/navbar/controls.tsx +++ b/apps/space/core/components/issues/navbar/controls.tsx @@ -1,6 +1,7 @@ "use client"; -import { useEffect, FC } from "react"; +import type { FC } from "react"; +import { useEffect } from "react"; import { observer } from "mobx-react"; import { useRouter, useSearchParams } from "next/navigation"; // components diff --git a/apps/space/core/components/issues/navbar/layout-icon.tsx b/apps/space/core/components/issues/navbar/layout-icon.tsx index cf3b76093f7..e9aed2b2679 100644 --- a/apps/space/core/components/issues/navbar/layout-icon.tsx +++ b/apps/space/core/components/issues/navbar/layout-icon.tsx @@ -1,5 +1,6 @@ -import { List, Kanban, LucideProps } from "lucide-react"; -import { TIssueLayout } from "@plane/constants"; +import type { LucideProps } from "lucide-react"; +import { List, Kanban } from "lucide-react"; +import type { TIssueLayout } from "@plane/constants"; export const IssueLayoutIcon = ({ layout, ...props }: { layout: TIssueLayout } & LucideProps) => { switch (layout) { diff --git a/apps/space/core/components/issues/navbar/layout-selection.tsx b/apps/space/core/components/issues/navbar/layout-selection.tsx index 143d81d8268..8c3c2d04280 100644 --- a/apps/space/core/components/issues/navbar/layout-selection.tsx +++ b/apps/space/core/components/issues/navbar/layout-selection.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC } from "react"; +import type { FC } from "react"; import { observer } from "mobx-react"; import { useRouter, useSearchParams } from "next/navigation"; // ui @@ -13,7 +13,7 @@ import { queryParamGenerator } from "@/helpers/query-param-generator"; // hooks import { useIssueFilter } from "@/hooks/store/use-issue-filter"; // mobx -import { TIssueLayout } from "@/types/issue"; +import type { TIssueLayout } from "@/types/issue"; import { IssueLayoutIcon } from "./layout-icon"; type Props = { diff --git a/apps/space/core/components/issues/navbar/root.tsx b/apps/space/core/components/issues/navbar/root.tsx index 4751047a38c..f5b8727cb23 100644 --- a/apps/space/core/components/issues/navbar/root.tsx +++ b/apps/space/core/components/issues/navbar/root.tsx @@ -1,6 +1,6 @@ "use client"; -import { FC } from "react"; +import type { FC } from "react"; import { observer } from "mobx-react"; import { Briefcase } from "lucide-react"; // components diff --git a/apps/space/core/components/issues/navbar/user-avatar.tsx b/apps/space/core/components/issues/navbar/user-avatar.tsx index 49dea2132eb..b5538cf707c 100644 --- a/apps/space/core/components/issues/navbar/user-avatar.tsx +++ b/apps/space/core/components/issues/navbar/user-avatar.tsx @@ -1,6 +1,7 @@ "use client"; -import { FC, Fragment, useEffect, useState } from "react"; +import type { FC } from "react"; +import { Fragment, useEffect, useState } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { usePathname, useSearchParams } from "next/navigation"; diff --git a/apps/space/core/components/issues/peek-overview/comment/add-comment.tsx b/apps/space/core/components/issues/peek-overview/comment/add-comment.tsx index 6afbb67acb8..3a6e6f1d6fc 100644 --- a/apps/space/core/components/issues/peek-overview/comment/add-comment.tsx +++ b/apps/space/core/components/issues/peek-overview/comment/add-comment.tsx @@ -4,10 +4,10 @@ import React, { useRef, useState } from "react"; import { observer } from "mobx-react"; import { useForm, Controller } from "react-hook-form"; // plane imports -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; import { TOAST_TYPE, setToast } from "@plane/propel/toast"; import { SitesFileService } from "@plane/services"; -import { TIssuePublicComment } from "@plane/types"; +import type { TIssuePublicComment } from "@plane/types"; // editor components import { LiteTextEditor } from "@/components/editor/lite-text-editor"; // hooks diff --git a/apps/space/core/components/issues/peek-overview/comment/comment-detail-card.tsx b/apps/space/core/components/issues/peek-overview/comment/comment-detail-card.tsx index d9b76029721..6e97ed6eaba 100644 --- a/apps/space/core/components/issues/peek-overview/comment/comment-detail-card.tsx +++ b/apps/space/core/components/issues/peek-overview/comment/comment-detail-card.tsx @@ -4,8 +4,8 @@ import { Controller, useForm } from "react-hook-form"; import { Check, MessageSquare, MoreVertical, X } from "lucide-react"; import { Menu, Transition } from "@headlessui/react"; // plane imports -import { EditorRefApi } from "@plane/editor"; -import { TIssuePublicComment } from "@plane/types"; +import type { EditorRefApi } from "@plane/editor"; +import type { TIssuePublicComment } from "@plane/types"; import { getFileURL } from "@plane/utils"; // components import { LiteTextEditor } from "@/components/editor/lite-text-editor"; diff --git a/apps/space/core/components/issues/peek-overview/header.tsx b/apps/space/core/components/issues/peek-overview/header.tsx index 69061126335..0bf33066a1e 100644 --- a/apps/space/core/components/issues/peek-overview/header.tsx +++ b/apps/space/core/components/issues/peek-overview/header.tsx @@ -13,7 +13,7 @@ import { copyTextToClipboard } from "@/helpers/string.helper"; import { useIssueDetails } from "@/hooks/store/use-issue-details"; import useClipboardWritePermission from "@/hooks/use-clipboard-write-permission"; // types -import { IIssue, IPeekMode } from "@/types/issue"; +import type { IIssue, IPeekMode } from "@/types/issue"; type Props = { handleClose: () => void; diff --git a/apps/space/core/components/issues/peek-overview/issue-activity.tsx b/apps/space/core/components/issues/peek-overview/issue-activity.tsx index 1f67db95c10..c31ca24f2cb 100644 --- a/apps/space/core/components/issues/peek-overview/issue-activity.tsx +++ b/apps/space/core/components/issues/peek-overview/issue-activity.tsx @@ -16,7 +16,7 @@ import { useIssueDetails } from "@/hooks/store/use-issue-details"; import { useUser } from "@/hooks/store/use-user"; import useIsInIframe from "@/hooks/use-is-in-iframe"; // types -import { IIssue } from "@/types/issue"; +import type { IIssue } from "@/types/issue"; type Props = { anchor: string; diff --git a/apps/space/core/components/issues/peek-overview/issue-details.tsx b/apps/space/core/components/issues/peek-overview/issue-details.tsx index 83eea5655e5..2ca097b236e 100644 --- a/apps/space/core/components/issues/peek-overview/issue-details.tsx +++ b/apps/space/core/components/issues/peek-overview/issue-details.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { RichTextEditor } from "@/components/editor/rich-text-editor"; import { usePublish } from "@/hooks/store/publish"; // types -import { IIssue } from "@/types/issue"; +import type { IIssue } from "@/types/issue"; // local imports import { IssueReactions } from "./issue-reaction"; diff --git a/apps/space/core/components/issues/peek-overview/issue-properties.tsx b/apps/space/core/components/issues/peek-overview/issue-properties.tsx index a43f6ff7434..6ea937d19b8 100644 --- a/apps/space/core/components/issues/peek-overview/issue-properties.tsx +++ b/apps/space/core/components/issues/peek-overview/issue-properties.tsx @@ -18,7 +18,7 @@ import { copyTextToClipboard, addSpaceIfCamelCase } from "@/helpers/string.helpe import { usePublish } from "@/hooks/store/publish"; import { useStates } from "@/hooks/store/use-state"; // types -import { IIssue, IPeekMode } from "@/types/issue"; +import type { IIssue, IPeekMode } from "@/types/issue"; type Props = { issueDetails: IIssue; diff --git a/apps/space/core/components/issues/peek-overview/layout.tsx b/apps/space/core/components/issues/peek-overview/layout.tsx index 2a2b95d27d5..817700bfab2 100644 --- a/apps/space/core/components/issues/peek-overview/layout.tsx +++ b/apps/space/core/components/issues/peek-overview/layout.tsx @@ -1,6 +1,7 @@ "use client"; -import { FC, Fragment, useEffect, useState } from "react"; +import type { FC } from "react"; +import { Fragment, useEffect, useState } from "react"; import { observer } from "mobx-react"; import { useRouter, useSearchParams } from "next/navigation"; import { Dialog, Transition } from "@headlessui/react"; diff --git a/apps/space/core/components/issues/peek-overview/side-peek-view.tsx b/apps/space/core/components/issues/peek-overview/side-peek-view.tsx index 8dbbaa0eea7..047989083df 100644 --- a/apps/space/core/components/issues/peek-overview/side-peek-view.tsx +++ b/apps/space/core/components/issues/peek-overview/side-peek-view.tsx @@ -6,7 +6,7 @@ import { Loader } from "@plane/ui"; // store hooks import { usePublish } from "@/hooks/store/publish"; // types -import { IIssue } from "@/types/issue"; +import type { IIssue } from "@/types/issue"; // local imports import { PeekOverviewHeader } from "./header"; import { PeekOverviewIssueActivity } from "./issue-activity"; diff --git a/apps/space/core/hooks/use-intersection-observer.tsx b/apps/space/core/hooks/use-intersection-observer.tsx index bce8b5dd05f..0fb1a266641 100644 --- a/apps/space/core/hooks/use-intersection-observer.tsx +++ b/apps/space/core/hooks/use-intersection-observer.tsx @@ -1,4 +1,5 @@ -import { RefObject, useEffect } from "react"; +import type { RefObject } from "react"; +import { useEffect } from "react"; export type UseIntersectionObserverProps = { containerRef: RefObject | undefined; diff --git a/apps/space/core/hooks/use-mention.tsx b/apps/space/core/hooks/use-mention.tsx index e3819d805c2..fc66eda1c45 100644 --- a/apps/space/core/hooks/use-mention.tsx +++ b/apps/space/core/hooks/use-mention.tsx @@ -2,7 +2,7 @@ import { useRef, useEffect } from "react"; import useSWR from "swr"; // plane imports import { UserService } from "@plane/services"; -import { IUser } from "@plane/types"; +import type { IUser } from "@plane/types"; export const useMention = () => { const userService = new UserService(); diff --git a/apps/space/core/lib/instance-provider.tsx b/apps/space/core/lib/instance-provider.tsx index 3356834e981..8ea98808610 100644 --- a/apps/space/core/lib/instance-provider.tsx +++ b/apps/space/core/lib/instance-provider.tsx @@ -1,6 +1,6 @@ "use client"; -import { ReactNode } from "react"; +import type { ReactNode } from "react"; import { observer } from "mobx-react"; import Image from "next/image"; import Link from "next/link"; diff --git a/apps/space/core/lib/store-provider.tsx b/apps/space/core/lib/store-provider.tsx index 88095fbc992..b017f90c49c 100644 --- a/apps/space/core/lib/store-provider.tsx +++ b/apps/space/core/lib/store-provider.tsx @@ -1,6 +1,7 @@ "use client"; -import { ReactNode, createContext } from "react"; +import type { ReactNode } from "react"; +import { createContext } from "react"; // plane web store import { RootStore } from "@/plane-web/store/root.store"; diff --git a/apps/space/core/lib/toast-provider.tsx b/apps/space/core/lib/toast-provider.tsx index e85a30a0005..e76c7e01e54 100644 --- a/apps/space/core/lib/toast-provider.tsx +++ b/apps/space/core/lib/toast-provider.tsx @@ -1,6 +1,6 @@ "use client"; -import { ReactNode } from "react"; +import type { ReactNode } from "react"; import { useTheme } from "next-themes"; // plane imports import { Toast } from "@plane/propel/toast"; diff --git a/apps/space/core/store/cycle.store.ts b/apps/space/core/store/cycle.store.ts index 6b624c92ac8..0f71d8841a6 100644 --- a/apps/space/core/store/cycle.store.ts +++ b/apps/space/core/store/cycle.store.ts @@ -1,7 +1,7 @@ import { action, makeObservable, observable, runInAction } from "mobx"; // plane imports import { SitesCycleService } from "@plane/services"; -import { TPublicCycle } from "@/types/cycle"; +import type { TPublicCycle } from "@/types/cycle"; // store import type { CoreRootStore } from "./root.store"; diff --git a/apps/space/core/store/helpers/filter.helpers.ts b/apps/space/core/store/helpers/filter.helpers.ts index fd949efefd9..342f1ee7b44 100644 --- a/apps/space/core/store/helpers/filter.helpers.ts +++ b/apps/space/core/store/helpers/filter.helpers.ts @@ -1,5 +1,5 @@ import { EIssueGroupByToServerOptions, EServerGroupByToFilterOptions } from "@plane/constants"; -import { IssuePaginationOptions, TIssueParams } from "@plane/types"; +import type { IssuePaginationOptions, TIssueParams } from "@plane/types"; /** * This Method is used to construct the url params along with paginated values diff --git a/apps/space/core/store/instance.store.ts b/apps/space/core/store/instance.store.ts index a3be82ece46..a1a49118db5 100644 --- a/apps/space/core/store/instance.store.ts +++ b/apps/space/core/store/instance.store.ts @@ -2,7 +2,7 @@ import { set } from "lodash-es"; import { observable, action, makeObservable, runInAction } from "mobx"; // plane imports import { InstanceService } from "@plane/services"; -import { IInstance, IInstanceConfig } from "@plane/types"; +import type { IInstance, IInstanceConfig } from "@plane/types"; // store import type { CoreRootStore } from "@/store/root.store"; diff --git a/apps/space/core/store/issue-detail.store.ts b/apps/space/core/store/issue-detail.store.ts index 8ae390364e7..a9b2431ab10 100644 --- a/apps/space/core/store/issue-detail.store.ts +++ b/apps/space/core/store/issue-detail.store.ts @@ -4,7 +4,8 @@ import { computedFn } from "mobx-utils"; import { v4 as uuidv4 } from "uuid"; // plane imports import { SitesFileService, SitesIssueService } from "@plane/services"; -import { EFileAssetType, TFileSignedURLResponse, TIssuePublicComment } from "@plane/types"; +import type { TFileSignedURLResponse, TIssuePublicComment } from "@plane/types"; +import { EFileAssetType } from "@plane/types"; // store import type { CoreRootStore } from "@/store/root.store"; // types diff --git a/apps/space/core/store/issue.store.ts b/apps/space/core/store/issue.store.ts index 5e90ce9e4af..ed4112a8225 100644 --- a/apps/space/core/store/issue.store.ts +++ b/apps/space/core/store/issue.store.ts @@ -5,7 +5,8 @@ import type { IssuePaginationOptions, TLoader } from "@plane/types"; // store import type { CoreRootStore } from "@/store/root.store"; // types -import { BaseIssuesStore, type IBaseIssuesStore } from "./helpers/base-issues.store"; +import { BaseIssuesStore } from "./helpers/base-issues.store"; +import type { IBaseIssuesStore } from "./helpers/base-issues.store"; export interface IIssueStore extends IBaseIssuesStore { // actions diff --git a/apps/space/core/store/profile.store.ts b/apps/space/core/store/profile.store.ts index 79bbee3936b..009b46ca493 100644 --- a/apps/space/core/store/profile.store.ts +++ b/apps/space/core/store/profile.store.ts @@ -2,7 +2,8 @@ import { set } from "lodash-es"; import { action, makeObservable, observable, runInAction } from "mobx"; // plane imports import { UserService } from "@plane/services"; -import { EStartOfTheWeek, TUserProfile } from "@plane/types"; +import type { TUserProfile } from "@plane/types"; +import { EStartOfTheWeek } from "@plane/types"; // store import type { CoreRootStore } from "@/store/root.store"; diff --git a/apps/space/core/store/publish/publish.store.ts b/apps/space/core/store/publish/publish.store.ts index ad539479791..49148d5553f 100644 --- a/apps/space/core/store/publish/publish.store.ts +++ b/apps/space/core/store/publish/publish.store.ts @@ -1,6 +1,6 @@ import { observable, makeObservable, computed } from "mobx"; // types -import { +import type { IWorkspaceLite, TProjectDetails, TPublishEntityType, diff --git a/apps/space/core/store/publish/publish_list.store.ts b/apps/space/core/store/publish/publish_list.store.ts index 3f37d5b1662..9cb9085f299 100644 --- a/apps/space/core/store/publish/publish_list.store.ts +++ b/apps/space/core/store/publish/publish_list.store.ts @@ -2,7 +2,7 @@ import { set } from "lodash-es"; import { makeObservable, observable, runInAction, action } from "mobx"; // plane imports import { SitesProjectPublishService } from "@plane/services"; -import { TProjectPublishSettings } from "@plane/types"; +import type { TProjectPublishSettings } from "@plane/types"; // store import { PublishStore } from "@/store/publish/publish.store"; import type { CoreRootStore } from "@/store/root.store"; diff --git a/apps/space/core/store/root.store.ts b/apps/space/core/store/root.store.ts index db9e26566b2..047e8582d95 100644 --- a/apps/space/core/store/root.store.ts +++ b/apps/space/core/store/root.store.ts @@ -1,16 +1,27 @@ import { enableStaticRendering } from "mobx-react"; // store imports -import { IInstanceStore, InstanceStore } from "@/store/instance.store"; -import { IssueDetailStore, IIssueDetailStore } from "@/store/issue-detail.store"; -import { IssueStore, IIssueStore } from "@/store/issue.store"; -import { IUserStore, UserStore } from "@/store/user.store"; -import { CycleStore, ICycleStore } from "./cycle.store"; -import { IssueFilterStore, IIssueFilterStore } from "./issue-filters.store"; -import { IIssueLabelStore, LabelStore } from "./label.store"; -import { IIssueMemberStore, MemberStore } from "./members.store"; -import { IIssueModuleStore, ModuleStore } from "./module.store"; -import { IPublishListStore, PublishListStore } from "./publish/publish_list.store"; -import { IStateStore, StateStore } from "./state.store"; +import type { IInstanceStore } from "@/store/instance.store"; +import { InstanceStore } from "@/store/instance.store"; +import type { IIssueDetailStore } from "@/store/issue-detail.store"; +import { IssueDetailStore } from "@/store/issue-detail.store"; +import type { IIssueStore } from "@/store/issue.store"; +import { IssueStore } from "@/store/issue.store"; +import type { IUserStore } from "@/store/user.store"; +import { UserStore } from "@/store/user.store"; +import type { ICycleStore } from "./cycle.store"; +import { CycleStore } from "./cycle.store"; +import type { IIssueFilterStore } from "./issue-filters.store"; +import { IssueFilterStore } from "./issue-filters.store"; +import type { IIssueLabelStore } from "./label.store"; +import { LabelStore } from "./label.store"; +import type { IIssueMemberStore } from "./members.store"; +import { MemberStore } from "./members.store"; +import type { IIssueModuleStore } from "./module.store"; +import { ModuleStore } from "./module.store"; +import type { IPublishListStore } from "./publish/publish_list.store"; +import { PublishListStore } from "./publish/publish_list.store"; +import type { IStateStore } from "./state.store"; +import { StateStore } from "./state.store"; enableStaticRendering(typeof window === "undefined"); diff --git a/apps/space/core/store/state.store.ts b/apps/space/core/store/state.store.ts index a525f100302..1de0fd6ab60 100644 --- a/apps/space/core/store/state.store.ts +++ b/apps/space/core/store/state.store.ts @@ -2,7 +2,7 @@ import { clone } from "lodash-es"; import { action, computed, makeObservable, observable, runInAction } from "mobx"; // plane imports import { SitesStateService } from "@plane/services"; -import { IState } from "@plane/types"; +import type { IState } from "@plane/types"; // helpers import { sortStates } from "@/helpers/state.helper"; // store diff --git a/apps/space/core/store/user.store.ts b/apps/space/core/store/user.store.ts index 1a97989f413..611afa4838f 100644 --- a/apps/space/core/store/user.store.ts +++ b/apps/space/core/store/user.store.ts @@ -3,9 +3,10 @@ import { set } from "lodash-es"; import { action, computed, makeObservable, observable, runInAction } from "mobx"; // plane imports import { UserService } from "@plane/services"; -import { ActorDetail, IUser } from "@plane/types"; +import type { ActorDetail, IUser } from "@plane/types"; // store types -import { ProfileStore, IProfileStore } from "@/store/profile.store"; +import type { IProfileStore } from "@/store/profile.store"; +import { ProfileStore } from "@/store/profile.store"; // store import type { CoreRootStore } from "@/store/root.store"; diff --git a/apps/space/core/types/issue.d.ts b/apps/space/core/types/issue.d.ts index ac7549a8ae7..66542317ec0 100644 --- a/apps/space/core/types/issue.d.ts +++ b/apps/space/core/types/issue.d.ts @@ -1,4 +1,4 @@ -import { ActorDetail, TIssue, TIssuePriorities, TStateGroups, TIssuePublicComment } from "@plane/types"; +import type { ActorDetail, TIssue, TIssuePriorities, TStateGroups, TIssuePublicComment } from "@plane/types"; export type TIssueLayout = "list" | "kanban" | "calendar" | "spreadsheet" | "gantt"; export type TIssueLayoutOptions = { diff --git a/apps/space/helpers/authentication.helper.tsx b/apps/space/helpers/authentication.helper.tsx index 7e409022e92..8c8f09c5471 100644 --- a/apps/space/helpers/authentication.helper.tsx +++ b/apps/space/helpers/authentication.helper.tsx @@ -1,4 +1,4 @@ -import { ReactNode } from "react"; +import type { ReactNode } from "react"; import Link from "next/link"; // helpers import { SUPPORT_EMAIL } from "./common.helper"; diff --git a/apps/space/helpers/common.helper.ts b/apps/space/helpers/common.helper.ts index 3ffc59573c5..cbb90199e96 100644 --- a/apps/space/helpers/common.helper.ts +++ b/apps/space/helpers/common.helper.ts @@ -1,4 +1,5 @@ -import { clsx, type ClassValue } from "clsx"; +import { clsx } from "clsx"; +import type { ClassValue } from "clsx"; import { twMerge } from "tailwind-merge"; export const SUPPORT_EMAIL = process.env.NEXT_PUBLIC_SUPPORT_EMAIL || ""; diff --git a/apps/space/helpers/editor.helper.ts b/apps/space/helpers/editor.helper.ts index 0315b9caf80..43b265af559 100644 --- a/apps/space/helpers/editor.helper.ts +++ b/apps/space/helpers/editor.helper.ts @@ -1,6 +1,6 @@ // plane imports import { MAX_FILE_SIZE } from "@plane/constants"; -import { TFileHandler } from "@plane/editor"; +import type { TFileHandler } from "@plane/editor"; import { SitesFileService } from "@plane/services"; import { getFileURL } from "@plane/utils"; // services diff --git a/apps/space/helpers/issue.helper.ts b/apps/space/helpers/issue.helper.ts index a7129ca495e..7971b4a5161 100644 --- a/apps/space/helpers/issue.helper.ts +++ b/apps/space/helpers/issue.helper.ts @@ -1,7 +1,7 @@ import { differenceInCalendarDays } from "date-fns/differenceInCalendarDays"; // plane internal import { STATE_GROUPS } from "@plane/constants"; -import { TStateGroups } from "@plane/types"; +import type { TStateGroups } from "@plane/types"; // helpers import { getDate } from "@/helpers/date-time.helper"; diff --git a/apps/space/helpers/state.helper.ts b/apps/space/helpers/state.helper.ts index 8d97c39f617..f5a8a88e58b 100644 --- a/apps/space/helpers/state.helper.ts +++ b/apps/space/helpers/state.helper.ts @@ -1,5 +1,5 @@ import { STATE_GROUPS } from "@plane/constants"; -import { IState } from "@plane/types"; +import type { IState } from "@plane/types"; export const sortStates = (states: IState[]) => { if (!states || states.length === 0) return;