diff --git a/packages/types/src/project/projects.d.ts b/packages/types/src/project/projects.d.ts index f310d9c66..86384b401 100644 --- a/packages/types/src/project/projects.d.ts +++ b/packages/types/src/project/projects.d.ts @@ -1,4 +1,4 @@ -import { EUserProjectRoles } from "constants/project"; +import { EUserProjectRoles } from "@/constants/project"; import type { IProjectViewProps, IUser, diff --git a/packages/types/src/workspace.d.ts b/packages/types/src/workspace.d.ts index 2d7e94d95..ceaa53d02 100644 --- a/packages/types/src/workspace.d.ts +++ b/packages/types/src/workspace.d.ts @@ -1,4 +1,4 @@ -import { EUserWorkspaceRoles } from "constants/workspace"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; import type { IProjectMember, IUser, diff --git a/packages/ui/src/tooltip/tooltip.tsx b/packages/ui/src/tooltip/tooltip.tsx index 92bab8d04..ca1769186 100644 --- a/packages/ui/src/tooltip/tooltip.tsx +++ b/packages/ui/src/tooltip/tooltip.tsx @@ -49,7 +49,9 @@ export const Tooltip: React.FC = ({ hoverCloseDelay={closeDelay} content={
{tooltipHeading &&
{tooltipHeading}
} {tooltipContent} diff --git a/space/.eslintrc.js b/space/.eslintrc.js index c8df60750..57d39bcfa 100644 --- a/space/.eslintrc.js +++ b/space/.eslintrc.js @@ -1,4 +1,52 @@ module.exports = { root: true, extends: ["custom"], + parser: "@typescript-eslint/parser", + settings: { + "import/resolver": { + typescript: {}, + node: { + moduleDirectory: ["node_modules", "."], + }, + }, + }, + rules: { + "import/order": [ + "error", + { + groups: ["builtin", "external", "internal", "parent", "sibling",], + pathGroups: [ + { + pattern: "react", + group: "external", + position: "before", + }, + { + pattern: "lucide-react", + group: "external", + position: "after", + }, + { + pattern: "@headlessui/**", + group: "external", + position: "after", + }, + { + pattern: "@plane/**", + group: "external", + position: "after", + }, + { + pattern: "@/**", + group: "internal", + } + ], + pathGroupsExcludedImportTypes: ["builtin", "internal", "react"], + alphabetize: { + order: "asc", + caseInsensitive: true, + }, + }, + ], + }, }; diff --git a/space/components/accounts/github-sign-in.tsx b/space/components/accounts/github-sign-in.tsx index 322011ae3..3b9b3f71b 100644 --- a/space/components/accounts/github-sign-in.tsx +++ b/space/components/accounts/github-sign-in.tsx @@ -1,6 +1,6 @@ import { useEffect, useState, FC } from "react"; -import Link from "next/link"; import Image from "next/image"; +import Link from "next/link"; import { useRouter } from "next/router"; // next-themes import { useTheme } from "next-themes"; diff --git a/space/components/accounts/onboarding-form.tsx b/space/components/accounts/onboarding-form.tsx index 644f732f3..4ebb69b75 100644 --- a/space/components/accounts/onboarding-form.tsx +++ b/space/components/accounts/onboarding-form.tsx @@ -1,19 +1,19 @@ import { useEffect, Fragment } from "react"; -import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; +import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; -import { Listbox, Transition } from "@headlessui/react"; import { Check, ChevronDown } from "lucide-react"; +import { Listbox, Transition } from "@headlessui/react"; // mobx store -import { useMobxStore } from "lib/mobx/store-provider"; +import { Button, Input } from "@plane/ui"; +import { USER_ROLES } from "@/constants/workspace"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // constants -import { USER_ROLES } from "constants/workspace"; // hooks +import { UserService } from "@/services/user.service"; import useToast from "hooks/use-toast"; // services -import { UserService } from "services/user.service"; // ui -import { Button, Input } from "@plane/ui"; const defaultValues = { first_name: "", diff --git a/space/components/accounts/sign-in-forms/create-password.tsx b/space/components/accounts/sign-in-forms/create-password.tsx index 55205e707..ffcdfe7ba 100644 --- a/space/components/accounts/sign-in-forms/create-password.tsx +++ b/space/components/accounts/sign-in-forms/create-password.tsx @@ -2,15 +2,15 @@ import React, { useEffect } from "react"; import Link from "next/link"; import { Controller, useForm } from "react-hook-form"; // services -import { AuthService } from "services/authentication.service"; +import { Button, Input } from "@plane/ui"; +import { ESignInSteps } from "@/components/accounts"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/authentication.service"; // hooks import useToast from "hooks/use-toast"; // ui -import { Button, Input } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; // constants -import { ESignInSteps } from "components/accounts"; type Props = { email: string; diff --git a/space/components/accounts/sign-in-forms/email-form.tsx b/space/components/accounts/sign-in-forms/email-form.tsx index 4f8ed4294..ca702320c 100644 --- a/space/components/accounts/sign-in-forms/email-form.tsx +++ b/space/components/accounts/sign-in-forms/email-form.tsx @@ -2,17 +2,17 @@ import React, { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; import { XCircle } from "lucide-react"; // services -import { AuthService } from "services/authentication.service"; +import { Button, Input } from "@plane/ui"; +import { ESignInSteps } from "@/components/accounts"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/authentication.service"; // hooks import useToast from "hooks/use-toast"; // ui -import { Button, Input } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; // types import { IEmailCheckData } from "types/auth"; // constants -import { ESignInSteps } from "components/accounts"; type Props = { handleStepChange: (step: ESignInSteps) => void; diff --git a/space/components/accounts/sign-in-forms/o-auth-options.tsx b/space/components/accounts/sign-in-forms/o-auth-options.tsx index 28da6fb7d..b546d9d3f 100644 --- a/space/components/accounts/sign-in-forms/o-auth-options.tsx +++ b/space/components/accounts/sign-in-forms/o-auth-options.tsx @@ -1,13 +1,13 @@ +import { observer } from "mobx-react-lite"; import useSWR from "swr"; -import { observer } from "mobx-react-lite"; // services -import { AuthService } from "services/authentication.service"; -import { AppConfigService } from "services/app-config.service"; +import { GitHubSignInButton, GoogleSignInButton } from "@/components/accounts"; +import { AppConfigService } from "@/services/app-config.service"; +import { AuthService } from "@/services/authentication.service"; // hooks import useToast from "hooks/use-toast"; // components -import { GitHubSignInButton, GoogleSignInButton } from "components/accounts"; type Props = { handleSignInRedirection: () => Promise; diff --git a/space/components/accounts/sign-in-forms/optional-set-password.tsx b/space/components/accounts/sign-in-forms/optional-set-password.tsx index 219971759..082a238d9 100644 --- a/space/components/accounts/sign-in-forms/optional-set-password.tsx +++ b/space/components/accounts/sign-in-forms/optional-set-password.tsx @@ -4,9 +4,9 @@ import { Controller, useForm } from "react-hook-form"; // ui import { Button, Input } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; +import { ESignInSteps } from "@/components/accounts"; +import { checkEmailValidity } from "@/helpers/string.helper"; // constants -import { ESignInSteps } from "components/accounts"; type Props = { email: string; diff --git a/space/components/accounts/sign-in-forms/password.tsx b/space/components/accounts/sign-in-forms/password.tsx index f909f16c5..67863e010 100644 --- a/space/components/accounts/sign-in-forms/password.tsx +++ b/space/components/accounts/sign-in-forms/password.tsx @@ -3,17 +3,17 @@ import Link from "next/link"; import { Controller, useForm } from "react-hook-form"; import { XCircle } from "lucide-react"; // services -import { AuthService } from "services/authentication.service"; +import { Button, Input } from "@plane/ui"; +import { ESignInSteps } from "@/components/accounts"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/authentication.service"; // hooks import useToast from "hooks/use-toast"; // ui -import { Button, Input } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; // types import { IPasswordSignInData } from "types/auth"; // constants -import { ESignInSteps } from "components/accounts"; type Props = { email: string; diff --git a/space/components/accounts/sign-in-forms/root.tsx b/space/components/accounts/sign-in-forms/root.tsx index c36842ce7..4f7859d76 100644 --- a/space/components/accounts/sign-in-forms/root.tsx +++ b/space/components/accounts/sign-in-forms/root.tsx @@ -2,11 +2,6 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import useSWR from "swr"; // hooks -import useSignInRedirection from "hooks/use-sign-in-redirection"; -// services -import { AppConfigService } from "services/app-config.service"; -// components -import { LatestFeatureBlock } from "components/common"; import { EmailForm, UniqueCodeForm, @@ -16,7 +11,12 @@ import { OptionalSetPasswordForm, CreatePasswordForm, SelfHostedSignInForm, -} from "components/accounts"; +} from "@/components/accounts"; +import { LatestFeatureBlock } from "@/components/common"; +import { AppConfigService } from "@/services/app-config.service"; +import useSignInRedirection from "hooks/use-sign-in-redirection"; +// services +// components export enum ESignInSteps { EMAIL = "EMAIL", diff --git a/space/components/accounts/sign-in-forms/self-hosted-sign-in.tsx b/space/components/accounts/sign-in-forms/self-hosted-sign-in.tsx index af1e5d68f..ddea6bf00 100644 --- a/space/components/accounts/sign-in-forms/self-hosted-sign-in.tsx +++ b/space/components/accounts/sign-in-forms/self-hosted-sign-in.tsx @@ -3,13 +3,13 @@ import Link from "next/link"; import { Controller, useForm } from "react-hook-form"; import { XCircle } from "lucide-react"; // services -import { AuthService } from "services/authentication.service"; +import { Button, Input } from "@plane/ui"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/authentication.service"; // hooks import useToast from "hooks/use-toast"; // ui -import { Button, Input } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; // types import { IPasswordSignInData } from "types/auth"; diff --git a/space/components/accounts/sign-in-forms/set-password-link.tsx b/space/components/accounts/sign-in-forms/set-password-link.tsx index 0b5ad21d9..4b2e41c78 100644 --- a/space/components/accounts/sign-in-forms/set-password-link.tsx +++ b/space/components/accounts/sign-in-forms/set-password-link.tsx @@ -1,13 +1,13 @@ import React from "react"; import { Controller, useForm } from "react-hook-form"; // services -import { AuthService } from "services/authentication.service"; +import { Button, Input } from "@plane/ui"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/authentication.service"; // hooks import useToast from "hooks/use-toast"; // ui -import { Button, Input } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; // types import { IEmailCheckData } from "types/auth"; diff --git a/space/components/accounts/sign-in-forms/unique-code.tsx b/space/components/accounts/sign-in-forms/unique-code.tsx index 4c61fa151..f0dcbba47 100644 --- a/space/components/accounts/sign-in-forms/unique-code.tsx +++ b/space/components/accounts/sign-in-forms/unique-code.tsx @@ -3,19 +3,19 @@ import Link from "next/link"; import { Controller, useForm } from "react-hook-form"; import { CornerDownLeft, XCircle } from "lucide-react"; // services -import { AuthService } from "services/authentication.service"; -import { UserService } from "services/user.service"; -// hooks -import useToast from "hooks/use-toast"; -import useTimer from "hooks/use-timer"; -// ui import { Button, Input } from "@plane/ui"; +import { ESignInSteps } from "@/components/accounts"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/authentication.service"; +import { UserService } from "@/services/user.service"; +// hooks +import useTimer from "hooks/use-timer"; +import useToast from "hooks/use-toast"; +// ui // helpers -import { checkEmailValidity } from "helpers/string.helper"; // types import { IEmailCheckData, IMagicSignInData } from "types/auth"; // constants -import { ESignInSteps } from "components/accounts"; type Props = { email: string; diff --git a/space/components/accounts/user-logged-in.tsx b/space/components/accounts/user-logged-in.tsx index de0b18d51..f9f5aeb39 100644 --- a/space/components/accounts/user-logged-in.tsx +++ b/space/components/accounts/user-logged-in.tsx @@ -1,10 +1,10 @@ import Image from "next/image"; // mobx -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // assets -import UserLoggedInImage from "public/user-logged-in.svg"; import PlaneLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; +import UserLoggedInImage from "public/user-logged-in.svg"; export const UserLoggedIn = () => { const { user: userStore } = useMobxStore(); diff --git a/space/components/common/project-logo.tsx b/space/components/common/project-logo.tsx index 3d5887b28..9b69e9616 100644 --- a/space/components/common/project-logo.tsx +++ b/space/components/common/project-logo.tsx @@ -1,7 +1,7 @@ // helpers -import { cn } from "helpers/common.helper"; -// types import { TProjectLogoProps } from "@plane/types"; +import { cn } from "@/helpers/common.helper"; +// types type Props = { className?: string; diff --git a/space/components/issues/board-views/block-due-date.tsx b/space/components/issues/board-views/block-due-date.tsx index 2920100a8..ecf229562 100644 --- a/space/components/issues/board-views/block-due-date.tsx +++ b/space/components/issues/board-views/block-due-date.tsx @@ -1,7 +1,7 @@ "use client"; // helpers -import { renderFullDate } from "helpers/date-time.helper"; +import { renderFullDate } from "@/helpers/date-time.helper"; export const dueDateIconDetails = ( date: string, diff --git a/space/components/issues/board-views/block-priority.tsx b/space/components/issues/board-views/block-priority.tsx index 6b5e6ad9d..9bfa3808b 100644 --- a/space/components/issues/board-views/block-priority.tsx +++ b/space/components/issues/board-views/block-priority.tsx @@ -1,9 +1,9 @@ "use client"; // types +import { issuePriorityFilter } from "@/constants/data"; import { TIssuePriorityKey } from "types/issue"; // constants -import { issuePriorityFilter } from "constants/data"; export const IssueBlockPriority = ({ priority }: { priority: TIssuePriorityKey | null }) => { const priority_detail = priority != null ? issuePriorityFilter(priority) : null; diff --git a/space/components/issues/board-views/block-state.tsx b/space/components/issues/board-views/block-state.tsx index 4afdbb990..bc444445d 100644 --- a/space/components/issues/board-views/block-state.tsx +++ b/space/components/issues/board-views/block-state.tsx @@ -1,7 +1,7 @@ // ui import { StateGroupIcon } from "@plane/ui"; // constants -import { issueGroupFilter } from "constants/data"; +import { issueGroupFilter } from "@/constants/data"; export const IssueBlockState = ({ state }: any) => { const stateGroup = issueGroupFilter(state.group); diff --git a/space/components/issues/board-views/kanban/block.tsx b/space/components/issues/board-views/kanban/block.tsx index 1a7eb9105..1284f7949 100644 --- a/space/components/issues/board-views/kanban/block.tsx +++ b/space/components/issues/board-views/kanban/block.tsx @@ -2,16 +2,16 @@ // mobx react lite import { observer } from "mobx-react-lite"; -import { useMobxStore } from "lib/mobx/store-provider"; +import { useRouter } from "next/router"; +import { IssueBlockDueDate } from "@/components/issues/board-views/block-due-date"; +import { IssueBlockPriority } from "@/components/issues/board-views/block-priority"; +import { IssueBlockState } from "@/components/issues/board-views/block-state"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // components -import { IssueBlockPriority } from "components/issues/board-views/block-priority"; -import { IssueBlockState } from "components/issues/board-views/block-state"; -import { IssueBlockDueDate } from "components/issues/board-views/block-due-date"; // interfaces +import { RootStore } from "@/store/root"; import { IIssue } from "types/issue"; -import { RootStore } from "store/root"; -import { useRouter } from "next/router"; export const IssueKanBanBlock = observer(({ issue }: { issue: IIssue }) => { const { project: projectStore, issueDetails: issueDetailStore }: RootStore = useMobxStore(); diff --git a/space/components/issues/board-views/kanban/header.tsx b/space/components/issues/board-views/kanban/header.tsx index a3c623306..ac15dc95c 100644 --- a/space/components/issues/board-views/kanban/header.tsx +++ b/space/components/issues/board-views/kanban/header.tsx @@ -1,14 +1,14 @@ // mobx react lite import { observer } from "mobx-react-lite"; // interfaces -import { IIssueState } from "types/issue"; // constants -import { issueGroupFilter } from "constants/data"; -// ui import { StateGroupIcon } from "@plane/ui"; +import { issueGroupFilter } from "@/constants/data"; +// ui // mobx hook -import { useMobxStore } from "lib/mobx/store-provider"; -import { RootStore } from "store/root"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { RootStore } from "@/store/root"; +import { IIssueState } from "types/issue"; export const IssueKanBanHeader = observer(({ state }: { state: IIssueState }) => { const store: RootStore = useMobxStore(); diff --git a/space/components/issues/board-views/kanban/index.tsx b/space/components/issues/board-views/kanban/index.tsx index 381c340da..a7f3fc6f6 100644 --- a/space/components/issues/board-views/kanban/index.tsx +++ b/space/components/issues/board-views/kanban/index.tsx @@ -3,15 +3,15 @@ // mobx react lite import { observer } from "mobx-react-lite"; // components -import { IssueKanBanHeader } from "components/issues/board-views/kanban/header"; -import { IssueKanBanBlock } from "components/issues/board-views/kanban/block"; +import { IssueKanBanBlock } from "@/components/issues/board-views/kanban/block"; +import { IssueKanBanHeader } from "@/components/issues/board-views/kanban/header"; // ui -import { Icon } from "components/ui"; +import { Icon } from "@/components/ui"; // interfaces -import { IIssueState, IIssue } from "types/issue"; // mobx hook -import { useMobxStore } from "lib/mobx/store-provider"; -import { RootStore } from "store/root"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { RootStore } from "@/store/root"; +import { IIssueState, IIssue } from "types/issue"; export const IssueKanbanView = observer(() => { const store: RootStore = useMobxStore(); diff --git a/space/components/issues/board-views/list/block.tsx b/space/components/issues/board-views/list/block.tsx index 039d731b5..4a980aba4 100644 --- a/space/components/issues/board-views/list/block.tsx +++ b/space/components/issues/board-views/list/block.tsx @@ -1,17 +1,17 @@ import { FC } from "react"; -import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; +import { useRouter } from "next/router"; // components -import { IssueBlockPriority } from "components/issues/board-views/block-priority"; -import { IssueBlockState } from "components/issues/board-views/block-state"; -import { IssueBlockLabels } from "components/issues/board-views/block-labels"; -import { IssueBlockDueDate } from "components/issues/board-views/block-due-date"; +import { IssueBlockDueDate } from "@/components/issues/board-views/block-due-date"; +import { IssueBlockLabels } from "@/components/issues/board-views/block-labels"; +import { IssueBlockPriority } from "@/components/issues/board-views/block-priority"; +import { IssueBlockState } from "@/components/issues/board-views/block-state"; // mobx hook -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // interfaces +import { RootStore } from "@/store/root"; import { IIssue } from "types/issue"; // store -import { RootStore } from "store/root"; export const IssueListBlock: FC<{ issue: IIssue }> = observer((props) => { const { issue } = props; diff --git a/space/components/issues/board-views/list/header.tsx b/space/components/issues/board-views/list/header.tsx index 82b7ac26f..cc0a88f5d 100644 --- a/space/components/issues/board-views/list/header.tsx +++ b/space/components/issues/board-views/list/header.tsx @@ -1,14 +1,14 @@ // mobx react lite import { observer } from "mobx-react-lite"; // interfaces -import { IIssueState } from "types/issue"; // ui import { StateGroupIcon } from "@plane/ui"; // constants -import { issueGroupFilter } from "constants/data"; +import { issueGroupFilter } from "@/constants/data"; // mobx hook -import { useMobxStore } from "lib/mobx/store-provider"; -import { RootStore } from "store/root"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { RootStore } from "@/store/root"; +import { IIssueState } from "types/issue"; export const IssueListHeader = observer(({ state }: { state: IIssueState }) => { const store: RootStore = useMobxStore(); diff --git a/space/components/issues/board-views/list/index.tsx b/space/components/issues/board-views/list/index.tsx index 441935def..65d79eaac 100644 --- a/space/components/issues/board-views/list/index.tsx +++ b/space/components/issues/board-views/list/index.tsx @@ -1,13 +1,13 @@ import { observer } from "mobx-react-lite"; // components -import { IssueListHeader } from "components/issues/board-views/list/header"; -import { IssueListBlock } from "components/issues/board-views/list/block"; +import { IssueListBlock } from "@/components/issues/board-views/list/block"; +import { IssueListHeader } from "@/components/issues/board-views/list/header"; // interfaces -import { IIssueState, IIssue } from "types/issue"; // mobx hook -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // store -import { RootStore } from "store/root"; +import { RootStore } from "@/store/root"; +import { IIssueState, IIssue } from "types/issue"; export const IssueListView = observer(() => { const { issue: issueStore }: RootStore = useMobxStore(); diff --git a/space/components/issues/filters/applied-filters/filters-list.tsx b/space/components/issues/filters/applied-filters/filters-list.tsx index c971dbfe7..a036cfedf 100644 --- a/space/components/issues/filters/applied-filters/filters-list.tsx +++ b/space/components/issues/filters/applied-filters/filters-list.tsx @@ -1,11 +1,11 @@ // components -import { AppliedPriorityFilters } from "./priority"; -import { AppliedStateFilters } from "./state"; // icons import { X } from "lucide-react"; // helpers -import { IIssueFilterOptions } from "store/issues/types"; +import { IIssueFilterOptions } from "@/store/issues/types"; import { IIssueLabel, IIssueState } from "types/issue"; +import { AppliedPriorityFilters } from "./priority"; +import { AppliedStateFilters } from "./state"; // types type Props = { diff --git a/space/components/issues/filters/applied-filters/priority.tsx b/space/components/issues/filters/applied-filters/priority.tsx index 79264ac7c..bbe72e404 100644 --- a/space/components/issues/filters/applied-filters/priority.tsx +++ b/space/components/issues/filters/applied-filters/priority.tsx @@ -1,5 +1,5 @@ -import { PriorityIcon } from "@plane/ui"; import { X } from "lucide-react"; +import { PriorityIcon } from "@plane/ui"; type Props = { handleRemove: (val: string) => void; diff --git a/space/components/issues/filters/applied-filters/root.tsx b/space/components/issues/filters/applied-filters/root.tsx index a7afaa673..6adc7c261 100644 --- a/space/components/issues/filters/applied-filters/root.tsx +++ b/space/components/issues/filters/applied-filters/root.tsx @@ -1,12 +1,12 @@ import { FC, useCallback } from "react"; -import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; +import { useRouter } from "next/router"; // components -import { AppliedFiltersList } from "./filters-list"; // store -import { useMobxStore } from "lib/mobx/store-provider"; -import { RootStore } from "store/root"; -import { IIssueFilterOptions } from "store/issues/types"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { IIssueFilterOptions } from "@/store/issues/types"; +import { RootStore } from "@/store/root"; +import { AppliedFiltersList } from "./filters-list"; export const IssueAppliedFilters: FC = observer(() => { const router = useRouter(); diff --git a/space/components/issues/filters/helpers/dropdown.tsx b/space/components/issues/filters/helpers/dropdown.tsx index 809cd6f5a..d98dee7dd 100644 --- a/space/components/issues/filters/helpers/dropdown.tsx +++ b/space/components/issues/filters/helpers/dropdown.tsx @@ -1,7 +1,7 @@ import React, { Fragment, useState } from "react"; +import { Placement } from "@popperjs/core"; import { usePopper } from "react-popper"; import { Popover, Transition } from "@headlessui/react"; -import { Placement } from "@popperjs/core"; // ui import { Button } from "@plane/ui"; diff --git a/space/components/issues/filters/labels.tsx b/space/components/issues/filters/labels.tsx index c8dd2132b..e5cb12696 100644 --- a/space/components/issues/filters/labels.tsx +++ b/space/components/issues/filters/labels.tsx @@ -1,11 +1,11 @@ import React, { useState } from "react"; // components -import { FilterHeader, FilterOption } from "./helpers"; // ui import { Loader } from "@plane/ui"; // types import { IIssueLabel } from "types/issue"; +import { FilterHeader, FilterOption } from "./helpers"; const LabelIcons = ({ color }: { color: string }) => ( diff --git a/space/components/issues/filters/priority.tsx b/space/components/issues/filters/priority.tsx index 8a5a643f4..98c35eea6 100644 --- a/space/components/issues/filters/priority.tsx +++ b/space/components/issues/filters/priority.tsx @@ -3,9 +3,9 @@ import { observer } from "mobx-react-lite"; // ui import { PriorityIcon } from "@plane/ui"; // components +import { issuePriorityFilters } from "@/constants/data"; import { FilterHeader, FilterOption } from "./helpers"; // constants -import { issuePriorityFilters } from "constants/data"; type Props = { appliedFilters: string[] | null; diff --git a/space/components/issues/filters/root.tsx b/space/components/issues/filters/root.tsx index b45dfffe3..489cf584b 100644 --- a/space/components/issues/filters/root.tsx +++ b/space/components/issues/filters/root.tsx @@ -1,16 +1,16 @@ import { FC, useCallback } from "react"; -import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; +import { useRouter } from "next/router"; // components +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/store/issues/helpers"; +import { IIssueFilterOptions } from "@/store/issues/types"; +import { RootStore } from "@/store/root"; import { FiltersDropdown } from "./helpers/dropdown"; import { FilterSelection } from "./selection"; // types -import { IIssueFilterOptions } from "store/issues/types"; // helpers -import { ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "store/issues/helpers"; // store -import { RootStore } from "store/root"; -import { useMobxStore } from "lib/mobx/store-provider"; export const IssueFiltersDropdown: FC = observer(() => { const router = useRouter(); diff --git a/space/components/issues/filters/selection.tsx b/space/components/issues/filters/selection.tsx index b44912190..71f0c5f1b 100644 --- a/space/components/issues/filters/selection.tsx +++ b/space/components/issues/filters/selection.tsx @@ -2,13 +2,13 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { Search, X } from "lucide-react"; // components -import { FilterPriority, FilterState } from "./"; // types // filter helpers -import { ILayoutDisplayFiltersOptions } from "store/issues/helpers"; -import { IIssueFilterOptions } from "store/issues/types"; +import { ILayoutDisplayFiltersOptions } from "@/store/issues/helpers"; +import { IIssueFilterOptions } from "@/store/issues/types"; import { IIssueState, IIssueLabel } from "types/issue"; +import { FilterPriority, FilterState } from "./"; type Props = { filters: IIssueFilterOptions; diff --git a/space/components/issues/filters/state.tsx b/space/components/issues/filters/state.tsx index a3781386d..734abef55 100644 --- a/space/components/issues/filters/state.tsx +++ b/space/components/issues/filters/state.tsx @@ -1,10 +1,10 @@ import React, { useState } from "react"; // components -import { FilterHeader, FilterOption } from "./helpers"; // ui import { Loader, StateGroupIcon } from "@plane/ui"; // types import { IIssueState } from "types/issue"; +import { FilterHeader, FilterOption } from "./helpers"; type Props = { appliedFilters: string[] | null; diff --git a/space/components/issues/navbar/index.tsx b/space/components/issues/navbar/index.tsx index feb11ed13..409c7b286 100644 --- a/space/components/issues/navbar/index.tsx +++ b/space/components/issues/navbar/index.tsx @@ -1,20 +1,20 @@ import { useEffect } from "react"; +import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; -import { observer } from "mobx-react-lite"; // components +import { Briefcase } from "lucide-react"; +import { Avatar, Button } from "@plane/ui"; +import { ProjectLogo } from "@/components/common"; +import { IssueFiltersDropdown } from "@/components/issues/filters"; +// ui +// lib +import { useMobxStore } from "@/lib/mobx/store-provider"; +// store +import { RootStore } from "@/store/root"; +import { TIssueBoardKeys } from "types/issue"; import { NavbarIssueBoardView } from "./issue-board-view"; import { NavbarTheme } from "./theme"; -import { IssueFiltersDropdown } from "components/issues/filters"; -import { ProjectLogo } from "components/common"; -// ui -import { Avatar, Button } from "@plane/ui"; -import { Briefcase } from "lucide-react"; -// lib -import { useMobxStore } from "lib/mobx/store-provider"; -// store -import { RootStore } from "store/root"; -import { TIssueBoardKeys } from "types/issue"; const IssueNavbar = observer(() => { const { diff --git a/space/components/issues/navbar/issue-board-view.tsx b/space/components/issues/navbar/issue-board-view.tsx index 906d3543d..f2d624974 100644 --- a/space/components/issues/navbar/issue-board-view.tsx +++ b/space/components/issues/navbar/issue-board-view.tsx @@ -1,10 +1,10 @@ -import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; +import { useRouter } from "next/router"; // constants -import { issueViews } from "constants/data"; +import { issueViews } from "@/constants/data"; // mobx -import { useMobxStore } from "lib/mobx/store-provider"; -import { RootStore } from "store/root"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { RootStore } from "@/store/root"; import { TIssueBoardKeys } from "types/issue"; export const NavbarIssueBoardView = observer(() => { diff --git a/space/components/issues/navbar/theme.tsx b/space/components/issues/navbar/theme.tsx index cd22654a2..1d45625c7 100644 --- a/space/components/issues/navbar/theme.tsx +++ b/space/components/issues/navbar/theme.tsx @@ -1,9 +1,9 @@ // next theme +import { useEffect, useState } from "react"; +import { observer } from "mobx-react-lite"; import { useTheme } from "next-themes"; // mobx react lite -import { observer } from "mobx-react-lite"; -import { useEffect, useState } from "react"; export const NavbarTheme = observer(() => { const [appTheme, setAppTheme] = useState("light"); diff --git a/space/components/issues/peek-overview/comment/add-comment.tsx b/space/components/issues/peek-overview/comment/add-comment.tsx index 3dba8b29c..6df72e2a8 100644 --- a/space/components/issues/peek-overview/comment/add-comment.tsx +++ b/space/components/issues/peek-overview/comment/add-comment.tsx @@ -1,20 +1,20 @@ import React, { useRef } from "react"; -import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; +import { useRouter } from "next/router"; import { useForm, Controller } from "react-hook-form"; // lib -import { useMobxStore } from "lib/mobx/store-provider"; +import { LiteTextEditorWithRef } from "@plane/lite-text-editor"; +import { Button } from "@plane/ui"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // hooks +import fileService from "@/services/file.service"; +import { RootStore } from "@/store/root"; import useToast from "hooks/use-toast"; // ui -import { Button } from "@plane/ui"; // types import { Comment } from "types/issue"; // components -import { LiteTextEditorWithRef } from "@plane/lite-text-editor"; // service -import fileService from "services/file.service"; -import { RootStore } from "store/root"; const defaultValues: Partial = { comment_html: "", diff --git a/space/components/issues/peek-overview/comment/comment-detail-card.tsx b/space/components/issues/peek-overview/comment/comment-detail-card.tsx index c3a26f83e..3db64bbd1 100644 --- a/space/components/issues/peek-overview/comment/comment-detail-card.tsx +++ b/space/components/issues/peek-overview/comment/comment-detail-card.tsx @@ -1,23 +1,23 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { Controller, useForm } from "react-hook-form"; -import { Menu, Transition } from "@headlessui/react"; import { Check, MessageSquare, MoreVertical, X } from "lucide-react"; +import { Menu, Transition } from "@headlessui/react"; // mobx store -import { useMobxStore } from "lib/mobx/store-provider"; // components import { LiteReadOnlyEditorWithRef, LiteTextEditorWithRef } from "@plane/lite-text-editor"; -import { CommentReactions } from "components/issues/peek-overview"; +import { CommentReactions } from "@/components/issues/peek-overview"; // helpers -import { timeAgo } from "helpers/date-time.helper"; +import { timeAgo } from "@/helpers/date-time.helper"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // types -import { Comment } from "types/issue"; // services -import fileService from "services/file.service"; +import fileService from "@/services/file.service"; +import { RootStore } from "@/store/root"; import useEditorSuggestions from "hooks/use-editor-suggestions"; -import { RootStore } from "store/root"; +import { Comment } from "types/issue"; type Props = { workspaceSlug: string; comment: Comment; diff --git a/space/components/issues/peek-overview/comment/comment-reactions.tsx b/space/components/issues/peek-overview/comment/comment-reactions.tsx index 3914c41fb..219274667 100644 --- a/space/components/issues/peek-overview/comment/comment-reactions.tsx +++ b/space/components/issues/peek-overview/comment/comment-reactions.tsx @@ -1,15 +1,14 @@ import React from "react"; -import { useRouter } from "next/router"; - // mobx import { observer } from "mobx-react-lite"; -import { useMobxStore } from "lib/mobx/store-provider"; +import { useRouter } from "next/router"; // ui -import { ReactionSelector } from "components/ui"; import { Tooltip } from "@plane/ui"; +import { ReactionSelector } from "@/components/ui"; // helpers -import { groupReactions, renderEmoji } from "helpers/emoji.helper"; +import { groupReactions, renderEmoji } from "@/helpers/emoji.helper"; +import { useMobxStore } from "@/lib/mobx/store-provider"; type Props = { commentId: string; diff --git a/space/components/issues/peek-overview/full-screen-peek-view.tsx b/space/components/issues/peek-overview/full-screen-peek-view.tsx index e07620c05..32b850b12 100644 --- a/space/components/issues/peek-overview/full-screen-peek-view.tsx +++ b/space/components/issues/peek-overview/full-screen-peek-view.tsx @@ -1,13 +1,13 @@ import { observer } from "mobx-react-lite"; // components +import { Loader } from "@plane/ui"; import { PeekOverviewHeader, PeekOverviewIssueActivity, PeekOverviewIssueDetails, PeekOverviewIssueProperties, -} from "components/issues/peek-overview"; +} from "@/components/issues/peek-overview"; // types -import { Loader } from "@plane/ui"; import { IIssue } from "types/issue"; type Props = { diff --git a/space/components/issues/peek-overview/header.tsx b/space/components/issues/peek-overview/header.tsx index 72a302b90..0a3824f5d 100644 --- a/space/components/issues/peek-overview/header.tsx +++ b/space/components/issues/peek-overview/header.tsx @@ -1,18 +1,18 @@ import React from "react"; import { observer } from "mobx-react-lite"; -import { Listbox, Transition } from "@headlessui/react"; import { MoveRight } from "lucide-react"; +import { Listbox, Transition } from "@headlessui/react"; // hooks -import useToast from "hooks/use-toast"; // ui -import { Icon } from "components/ui"; +import { Icon } from "@/components/ui"; // helpers -import { copyTextToClipboard } from "helpers/string.helper"; +import { copyTextToClipboard } from "@/helpers/string.helper"; // store -import { IPeekMode } from "store/issue_details"; -import { RootStore } from "store/root"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { IPeekMode } from "@/store/issue_details"; +import { RootStore } from "@/store/root"; // lib -import { useMobxStore } from "lib/mobx/store-provider"; +import useToast from "hooks/use-toast"; // types import { IIssue } from "types/issue"; diff --git a/space/components/issues/peek-overview/issue-activity.tsx b/space/components/issues/peek-overview/issue-activity.tsx index cbb27679b..ad9f65aeb 100644 --- a/space/components/issues/peek-overview/issue-activity.tsx +++ b/space/components/issues/peek-overview/issue-activity.tsx @@ -1,17 +1,17 @@ import React from "react"; +import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; // mobx -import { observer } from "mobx-react-lite"; // lib -import { useMobxStore } from "lib/mobx/store-provider"; -// components -import { CommentCard, AddComment } from "components/issues/peek-overview"; -// ui -import { Icon } from "components/ui"; import { Button } from "@plane/ui"; +import { CommentCard, AddComment } from "@/components/issues/peek-overview"; +import { Icon } from "@/components/ui"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +// components +// ui // types import { IIssue } from "types/issue"; diff --git a/space/components/issues/peek-overview/issue-details.tsx b/space/components/issues/peek-overview/issue-details.tsx index d84103388..dfc1be430 100644 --- a/space/components/issues/peek-overview/issue-details.tsx +++ b/space/components/issues/peek-overview/issue-details.tsx @@ -1,8 +1,8 @@ -import { IssueReactions } from "components/issues/peek-overview"; import { RichReadOnlyEditor } from "@plane/rich-text-editor"; +import { IssueReactions } from "@/components/issues/peek-overview"; // types -import { IIssue } from "types/issue"; import useEditorSuggestions from "hooks/use-editor-suggestions"; +import { IIssue } from "types/issue"; type Props = { issueDetails: IIssue; diff --git a/space/components/issues/peek-overview/issue-emoji-reactions.tsx b/space/components/issues/peek-overview/issue-emoji-reactions.tsx index 928d9115e..016074ff9 100644 --- a/space/components/issues/peek-overview/issue-emoji-reactions.tsx +++ b/space/components/issues/peek-overview/issue-emoji-reactions.tsx @@ -1,13 +1,13 @@ import { useEffect } from "react"; -import { useRouter } from "next/router"; import { observer } from "mobx-react-lite"; +import { useRouter } from "next/router"; // lib -import { useMobxStore } from "lib/mobx/store-provider"; -// helpers -import { groupReactions, renderEmoji } from "helpers/emoji.helper"; -// components -import { ReactionSelector } from "components/ui"; import { Tooltip } from "@plane/ui"; +import { ReactionSelector } from "@/components/ui"; +import { groupReactions, renderEmoji } from "@/helpers/emoji.helper"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +// helpers +// components export const IssueEmojiReactions: React.FC = observer(() => { // router diff --git a/space/components/issues/peek-overview/issue-properties.tsx b/space/components/issues/peek-overview/issue-properties.tsx index 0c327ca59..1018c22f7 100644 --- a/space/components/issues/peek-overview/issue-properties.tsx +++ b/space/components/issues/peek-overview/issue-properties.tsx @@ -1,18 +1,18 @@ // hooks -import useToast from "hooks/use-toast"; // ui import { StateGroupIcon } from "@plane/ui"; // icons -import { Icon } from "components/ui"; +import { Icon } from "@/components/ui"; // helpers -import { copyTextToClipboard, addSpaceIfCamelCase } from "helpers/string.helper"; -import { renderFullDate } from "helpers/date-time.helper"; -import { dueDateIconDetails } from "../board-views/block-due-date"; +import { issueGroupFilter, issuePriorityFilter } from "@/constants/data"; +import { renderFullDate } from "@/helpers/date-time.helper"; +import { copyTextToClipboard, addSpaceIfCamelCase } from "@/helpers/string.helper"; // types -import { IIssue } from "types/issue"; -import { IPeekMode } from "store/issue_details"; +import { IPeekMode } from "@/store/issue_details"; // constants -import { issueGroupFilter, issuePriorityFilter } from "constants/data"; +import useToast from "hooks/use-toast"; +import { IIssue } from "types/issue"; +import { dueDateIconDetails } from "../board-views/block-due-date"; type Props = { issueDetails: IIssue; diff --git a/space/components/issues/peek-overview/issue-reaction.tsx b/space/components/issues/peek-overview/issue-reaction.tsx index 79b45f104..eaa5bb8d5 100644 --- a/space/components/issues/peek-overview/issue-reaction.tsx +++ b/space/components/issues/peek-overview/issue-reaction.tsx @@ -1,5 +1,5 @@ -import { IssueEmojiReactions, IssueVotes } from "components/issues/peek-overview"; -import { useMobxStore } from "lib/mobx/store-provider"; +import { IssueEmojiReactions, IssueVotes } from "@/components/issues/peek-overview"; +import { useMobxStore } from "@/lib/mobx/store-provider"; export const IssueReactions: React.FC = () => { const { project: projectStore } = useMobxStore(); diff --git a/space/components/issues/peek-overview/issue-vote-reactions.tsx b/space/components/issues/peek-overview/issue-vote-reactions.tsx index 40ad145d0..80a2fde83 100644 --- a/space/components/issues/peek-overview/issue-vote-reactions.tsx +++ b/space/components/issues/peek-overview/issue-vote-reactions.tsx @@ -1,13 +1,13 @@ import { useState, useEffect } from "react"; +import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // mobx -import { observer } from "mobx-react-lite"; // lib -import { useMobxStore } from "lib/mobx/store-provider"; -// ui import { Tooltip } from "@plane/ui"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +// ui export const IssueVotes: React.FC = observer(() => { const [isSubmitting, setIsSubmitting] = useState(false); diff --git a/space/components/issues/peek-overview/layout.tsx b/space/components/issues/peek-overview/layout.tsx index 602277f3e..b76da13f4 100644 --- a/space/components/issues/peek-overview/layout.tsx +++ b/space/components/issues/peek-overview/layout.tsx @@ -1,15 +1,15 @@ import React, { useEffect, useState } from "react"; +import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // mobx -import { observer } from "mobx-react-lite"; // headless ui import { Dialog, Transition } from "@headlessui/react"; // components -import { FullScreenPeekView, SidePeekView } from "components/issues/peek-overview"; +import { FullScreenPeekView, SidePeekView } from "@/components/issues/peek-overview"; // lib -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; export const IssuePeekOverview: React.FC = observer(() => { // states diff --git a/space/components/issues/peek-overview/side-peek-view.tsx b/space/components/issues/peek-overview/side-peek-view.tsx index 0ec82a8ef..8a8636edc 100644 --- a/space/components/issues/peek-overview/side-peek-view.tsx +++ b/space/components/issues/peek-overview/side-peek-view.tsx @@ -1,13 +1,13 @@ import { observer } from "mobx-react-lite"; // components +import { Loader } from "@plane/ui"; import { PeekOverviewHeader, PeekOverviewIssueActivity, PeekOverviewIssueDetails, PeekOverviewIssueProperties, -} from "components/issues/peek-overview"; +} from "@/components/issues/peek-overview"; -import { Loader } from "@plane/ui"; import { IIssue } from "types/issue"; type Props = { diff --git a/space/components/ui/dropdown.tsx b/space/components/ui/dropdown.tsx index 75399619b..788627094 100644 --- a/space/components/ui/dropdown.tsx +++ b/space/components/ui/dropdown.tsx @@ -1,9 +1,9 @@ import { Fragment, useState, useRef } from "react"; import Link from "next/link"; +import { Check, ChevronLeft } from "lucide-react"; import { Popover, Transition } from "@headlessui/react"; // hooks import useOutSideClick from "hooks/use-outside-click"; -import { Check, ChevronLeft } from "lucide-react"; type ItemOptionType = { display: React.ReactNode; diff --git a/space/components/ui/reaction-selector.tsx b/space/components/ui/reaction-selector.tsx index ae18d4883..9b999a618 100644 --- a/space/components/ui/reaction-selector.tsx +++ b/space/components/ui/reaction-selector.tsx @@ -4,10 +4,10 @@ import { Fragment } from "react"; import { Popover, Transition } from "@headlessui/react"; // helper -import { renderEmoji } from "helpers/emoji.helper"; +import { Icon } from "@/components/ui"; +import { renderEmoji } from "@/helpers/emoji.helper"; // icons -import { Icon } from "components/ui"; const reactionEmojis = ["128077", "128078", "128516", "128165", "128533", "129505", "9992", "128064"]; diff --git a/space/components/views/login.tsx b/space/components/views/login.tsx index 5ce24c869..e622f3e78 100644 --- a/space/components/views/login.tsx +++ b/space/components/views/login.tsx @@ -1,11 +1,11 @@ +import { observer } from "mobx-react-lite"; import Image from "next/image"; // mobx -import { observer } from "mobx-react-lite"; -import { useMobxStore } from "lib/mobx/store-provider"; -// components -import { SignInRoot, UserLoggedIn } from "components/accounts"; import { Loader } from "@plane/ui"; +import { SignInRoot, UserLoggedIn } from "@/components/accounts"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +// components // images import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text-new.png"; diff --git a/space/components/views/project-details.tsx b/space/components/views/project-details.tsx index e3a0baaaa..914272a8b 100644 --- a/space/components/views/project-details.tsx +++ b/space/components/views/project-details.tsx @@ -1,18 +1,18 @@ import { useEffect } from "react"; +import { observer } from "mobx-react-lite"; import Image from "next/image"; import { useRouter } from "next/router"; -import { observer } from "mobx-react-lite"; // components -import { IssueListView } from "components/issues/board-views/list"; -import { IssueKanbanView } from "components/issues/board-views/kanban"; -import { IssueCalendarView } from "components/issues/board-views/calendar"; -import { IssueSpreadsheetView } from "components/issues/board-views/spreadsheet"; -import { IssueGanttView } from "components/issues/board-views/gantt"; -import { IssuePeekOverview } from "components/issues/peek-overview"; -import { IssueAppliedFilters } from "components/issues/filters/applied-filters/root"; +import { IssueCalendarView } from "@/components/issues/board-views/calendar"; +import { IssueGanttView } from "@/components/issues/board-views/gantt"; +import { IssueKanbanView } from "@/components/issues/board-views/kanban"; +import { IssueListView } from "@/components/issues/board-views/list"; +import { IssueSpreadsheetView } from "@/components/issues/board-views/spreadsheet"; +import { IssueAppliedFilters } from "@/components/issues/filters/applied-filters/root"; +import { IssuePeekOverview } from "@/components/issues/peek-overview"; // mobx store -import { RootStore } from "store/root"; -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { RootStore } from "@/store/root"; // assets import SomethingWentWrongImage from "public/something-went-wrong.svg"; diff --git a/space/contexts/toast.context.tsx b/space/contexts/toast.context.tsx index a382b4fd2..86608f02c 100644 --- a/space/contexts/toast.context.tsx +++ b/space/contexts/toast.context.tsx @@ -2,7 +2,7 @@ import React, { createContext, useCallback, useReducer } from "react"; // uuid import { v4 as uuid } from "uuid"; // components -import ToastAlert from "components/ui/toast-alert"; +import ToastAlert from "@/components/ui/toast-alert"; export const toastContext = createContext({} as ContextType); diff --git a/space/hooks/use-editor-suggestions.tsx b/space/hooks/use-editor-suggestions.tsx index 0659121b7..81bf68754 100644 --- a/space/hooks/use-editor-suggestions.tsx +++ b/space/hooks/use-editor-suggestions.tsx @@ -1,5 +1,5 @@ -import { useMobxStore } from "lib/mobx/store-provider"; -import { RootStore } from "store/root"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { RootStore } from "@/store/root"; const useEditorSuggestions = () => { const { mentionsStore }: RootStore = useMobxStore(); diff --git a/space/hooks/use-sign-in-redirection.tsx b/space/hooks/use-sign-in-redirection.tsx index 306e7985a..7517c7dfc 100644 --- a/space/hooks/use-sign-in-redirection.tsx +++ b/space/hooks/use-sign-in-redirection.tsx @@ -1,7 +1,7 @@ import { useCallback, useState } from "react"; import { useRouter } from "next/router"; // mobx store -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // types import { IUser } from "types/user"; diff --git a/space/hooks/use-toast.tsx b/space/hooks/use-toast.tsx index 6de3c104c..13f598f88 100644 --- a/space/hooks/use-toast.tsx +++ b/space/hooks/use-toast.tsx @@ -1,5 +1,5 @@ import { useContext } from "react"; -import { toastContext } from "contexts/toast.context"; +import { toastContext } from "@/contexts/toast.context"; const useToast = () => { const toastContextData = useContext(toastContext); diff --git a/space/layouts/project-layout.tsx b/space/layouts/project-layout.tsx index 3ae079982..c5946277f 100644 --- a/space/layouts/project-layout.tsx +++ b/space/layouts/project-layout.tsx @@ -4,7 +4,7 @@ import Image from "next/image"; import { observer } from "mobx-react-lite"; import planeLogo from "public/plane-logo.svg"; // components -import IssueNavbar from "components/issues/navbar"; +import IssueNavbar from "@/components/issues/navbar"; const ProjectLayout = ({ children }: { children: React.ReactNode }) => (
diff --git a/space/lib/mobx/store-init.tsx b/space/lib/mobx/store-init.tsx index bcefd203b..897c8e3a2 100644 --- a/space/lib/mobx/store-init.tsx +++ b/space/lib/mobx/store-init.tsx @@ -2,7 +2,7 @@ import { useEffect } from "react"; // js cookie import Cookie from "js-cookie"; // mobx store -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; const MobxStoreInit = () => { const { user: userStore } = useMobxStore(); diff --git a/space/lib/mobx/store-provider.tsx b/space/lib/mobx/store-provider.tsx index e12f2823a..18854c1d5 100644 --- a/space/lib/mobx/store-provider.tsx +++ b/space/lib/mobx/store-provider.tsx @@ -2,7 +2,7 @@ import { createContext, useContext } from "react"; // mobx store -import { RootStore } from "store/root"; +import { RootStore } from "@/store/root"; let rootStore: RootStore = new RootStore(); diff --git a/space/pages/[workspace_slug]/[project_slug]/index.tsx b/space/pages/[workspace_slug]/[project_slug]/index.tsx index e50c01c18..b0ee7d0cd 100644 --- a/space/pages/[workspace_slug]/[project_slug]/index.tsx +++ b/space/pages/[workspace_slug]/[project_slug]/index.tsx @@ -4,11 +4,11 @@ import { useRouter } from "next/router"; import useSWR from "swr"; /// layouts -import ProjectLayout from "layouts/project-layout"; // components -import { ProjectDetailsView } from "components/views/project-details"; +import { ProjectDetailsView } from "@/components/views/project-details"; // lib -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import ProjectLayout from "layouts/project-layout"; const WorkspaceProjectPage = (props: any) => { const SITE_TITLE = props?.project_settings?.project_details?.name || "Plane | Deploy"; diff --git a/space/pages/_app.tsx b/space/pages/_app.tsx index da1db272c..9d80d53a3 100644 --- a/space/pages/_app.tsx +++ b/space/pages/_app.tsx @@ -1,15 +1,15 @@ -import Head from "next/head"; import type { AppProps } from "next/app"; +import Head from "next/head"; import { ThemeProvider } from "next-themes"; // styles -import "styles/globals.css"; +import "@/styles/globals.css"; // contexts -import { ToastContextProvider } from "contexts/toast.context"; +import { SITE_NAME, SITE_DESCRIPTION, SITE_URL, TWITTER_USER_NAME, SITE_KEYWORDS, SITE_TITLE } from "@/constants/seo"; +import { ToastContextProvider } from "@/contexts/toast.context"; // mobx store provider -import { MobxStoreProvider } from "lib/mobx/store-provider"; -import MobxStoreInit from "lib/mobx/store-init"; +import MobxStoreInit from "@/lib/mobx/store-init"; +import { MobxStoreProvider } from "@/lib/mobx/store-provider"; // constants -import { SITE_NAME, SITE_DESCRIPTION, SITE_URL, TWITTER_USER_NAME, SITE_KEYWORDS, SITE_TITLE } from "constants/seo"; const prefix = parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0") === 0 ? "/" : "/spaces/"; diff --git a/space/pages/accounts/password.tsx b/space/pages/accounts/password.tsx index 85da11290..16e805b6f 100644 --- a/space/pages/accounts/password.tsx +++ b/space/pages/accounts/password.tsx @@ -3,20 +3,20 @@ import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; import { useTheme } from "next-themes"; -import { Lightbulb } from "lucide-react"; import { Controller, useForm } from "react-hook-form"; +import { Lightbulb } from "lucide-react"; // services -import { AuthService } from "services/authentication.service"; -// hooks -import useToast from "hooks/use-toast"; -import useSignInRedirection from "hooks/use-sign-in-redirection"; -// ui import { Button, Input } from "@plane/ui"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/authentication.service"; +// hooks +import useSignInRedirection from "hooks/use-sign-in-redirection"; +import useToast from "hooks/use-toast"; +// ui // images -import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text-new.png"; import latestFeatures from "public/onboarding/onboarding-pages.svg"; +import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text-new.png"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; type TResetPasswordFormValues = { email: string; diff --git a/space/pages/index.tsx b/space/pages/index.tsx index e680c257c..b1c2bd97c 100644 --- a/space/pages/index.tsx +++ b/space/pages/index.tsx @@ -1,13 +1,13 @@ import { useEffect } from "react"; +import { observer } from "mobx-react-lite"; import { NextPage } from "next"; import { useRouter } from "next/router"; -import { observer } from "mobx-react-lite"; // components -import { LoginView } from "components/views"; +import { LoginView } from "@/components/views"; // store -import { RootStore } from "store/root"; -import { useMobxStore } from "lib/mobx/store-provider"; +import { useMobxStore } from "@/lib/mobx/store-provider"; +import { RootStore } from "@/store/root"; const Index: NextPage = observer(() => { const router = useRouter(); diff --git a/space/pages/onboarding/index.tsx b/space/pages/onboarding/index.tsx index 423eec2de..95acaef29 100644 --- a/space/pages/onboarding/index.tsx +++ b/space/pages/onboarding/index.tsx @@ -1,9 +1,9 @@ import React, { useEffect } from "react"; // mobx import { observer } from "mobx-react-lite"; -import { useMobxStore } from "lib/mobx/store-provider"; +import { OnBoardingForm } from "@/components/accounts/onboarding-form"; +import { useMobxStore } from "@/lib/mobx/store-provider"; // components -import { OnBoardingForm } from "components/accounts/onboarding-form"; const imagePrefix = Boolean(parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0")) ? "/spaces" : ""; diff --git a/space/services/app-config.service.ts b/space/services/app-config.service.ts index af79935cf..a6a1a9cf6 100644 --- a/space/services/app-config.service.ts +++ b/space/services/app-config.service.ts @@ -1,7 +1,7 @@ // services -import APIService from "services/api.service"; +import APIService from "@/services/api.service"; // helper -import { API_BASE_URL } from "helpers/common.helper"; +import { API_BASE_URL } from "@/helpers/common.helper"; // types import { IAppConfig } from "types/app"; diff --git a/space/services/authentication.service.ts b/space/services/authentication.service.ts index 7bf0eccfa..0fbf0c71b 100644 --- a/space/services/authentication.service.ts +++ b/space/services/authentication.service.ts @@ -1,6 +1,6 @@ // services -import APIService from "services/api.service"; -import { API_BASE_URL } from "helpers/common.helper"; +import APIService from "@/services/api.service"; +import { API_BASE_URL } from "@/helpers/common.helper"; import { IEmailCheckData, IEmailCheckResponse, ILoginTokenResponse, IPasswordSignInData } from "types/auth"; export class AuthService extends APIService { diff --git a/space/services/file.service.ts b/space/services/file.service.ts index ecebf92b7..52793ec75 100644 --- a/space/services/file.service.ts +++ b/space/services/file.service.ts @@ -1,7 +1,7 @@ // services -import APIService from "services/api.service"; +import APIService from "@/services/api.service"; // helpers -import { API_BASE_URL } from "helpers/common.helper"; +import { API_BASE_URL } from "@/helpers/common.helper"; import axios from "axios"; interface UnSplashImage { diff --git a/space/services/issue.service.ts b/space/services/issue.service.ts index 5feb1b00b..b6f2e3be2 100644 --- a/space/services/issue.service.ts +++ b/space/services/issue.service.ts @@ -1,6 +1,6 @@ // services -import APIService from "services/api.service"; -import { API_BASE_URL } from "helpers/common.helper"; +import APIService from "@/services/api.service"; +import { API_BASE_URL } from "@/helpers/common.helper"; class IssueService extends APIService { constructor() { diff --git a/space/services/project.service.ts b/space/services/project.service.ts index 0d6eca951..2e173d282 100644 --- a/space/services/project.service.ts +++ b/space/services/project.service.ts @@ -1,6 +1,6 @@ // services -import APIService from "services/api.service"; -import { API_BASE_URL } from "helpers/common.helper"; +import APIService from "@/services/api.service"; +import { API_BASE_URL } from "@/helpers/common.helper"; class ProjectService extends APIService { constructor() { diff --git a/space/services/user.service.ts b/space/services/user.service.ts index c8232afa9..e49378d93 100644 --- a/space/services/user.service.ts +++ b/space/services/user.service.ts @@ -1,7 +1,7 @@ // services -import APIService from "services/api.service"; +import APIService from "@/services/api.service"; // helpers -import { API_BASE_URL } from "helpers/common.helper"; +import { API_BASE_URL } from "@/helpers/common.helper"; // types import { IUser } from "types/user"; diff --git a/space/store/issue.ts b/space/store/issue.ts index 02dd3cdd0..8e4876f66 100644 --- a/space/store/issue.ts +++ b/space/store/issue.ts @@ -1,6 +1,6 @@ import { observable, action, computed, makeObservable, runInAction } from "mobx"; // services -import IssueService from "services/issue.service"; +import IssueService from "@/services/issue.service"; // store import { RootStore } from "./root"; // types diff --git a/space/store/issue_details.ts b/space/store/issue_details.ts index 346206e94..766cb979d 100644 --- a/space/store/issue_details.ts +++ b/space/store/issue_details.ts @@ -3,7 +3,7 @@ import { v4 as uuidv4 } from "uuid"; // store import { RootStore } from "./root"; // services -import IssueService from "services/issue.service"; +import IssueService from "@/services/issue.service"; import { IIssue, IVote } from "types/issue"; export type IPeekMode = "side" | "modal" | "full"; diff --git a/space/store/issues/base-issue-filter.store.ts b/space/store/issues/base-issue-filter.store.ts index 2cd2e3bc9..3859d94c6 100644 --- a/space/store/issues/base-issue-filter.store.ts +++ b/space/store/issues/base-issue-filter.store.ts @@ -1,5 +1,5 @@ // types -import { RootStore } from "store/root"; +import { RootStore } from "@/store/root"; export interface IIssueFilterBaseStore { // helper methods diff --git a/space/store/issues/issue-filters.store.ts b/space/store/issues/issue-filters.store.ts index f2408e290..fffa42e03 100644 --- a/space/store/issues/issue-filters.store.ts +++ b/space/store/issues/issue-filters.store.ts @@ -1,6 +1,6 @@ import { action, makeObservable, observable, runInAction, computed } from "mobx"; // types -import { RootStore } from "store/root"; +import { RootStore } from "@/store/root"; import { IIssueFilterOptions, TIssueParams } from "./types"; import { handleIssueQueryParamsByLayout } from "./helpers"; import { IssueFilterBaseStore } from "./base-issue-filter.store"; diff --git a/space/store/project.ts b/space/store/project.ts index 76b4d06cb..b12cf18db 100644 --- a/space/store/project.ts +++ b/space/store/project.ts @@ -1,7 +1,7 @@ // mobx import { observable, action, makeObservable, runInAction } from "mobx"; // service -import ProjectService from "services/project.service"; +import ProjectService from "@/services/project.service"; import { TIssueBoardKeys } from "types/issue"; // types import { IWorkspace, IProject, IProjectSettings } from "types/project"; diff --git a/space/store/user.ts b/space/store/user.ts index e97f655f7..0e9b90106 100644 --- a/space/store/user.ts +++ b/space/store/user.ts @@ -1,7 +1,7 @@ // mobx import { observable, action, computed, makeObservable, runInAction } from "mobx"; // service -import { UserService } from "services/user.service"; +import { UserService } from "@/services/user.service"; // types import { IUser } from "types/user"; diff --git a/space/tsconfig.json b/space/tsconfig.json index 3047edb7c..9d3e164be 100644 --- a/space/tsconfig.json +++ b/space/tsconfig.json @@ -4,6 +4,9 @@ "exclude": ["node_modules"], "compilerOptions": { "baseUrl": ".", - "jsx": "preserve" + "jsx": "preserve", + "paths": { + "@/*": ["*"] + } } } diff --git a/web/.eslintrc.js b/web/.eslintrc.js index eb05b2af8..57d39bcfa 100644 --- a/web/.eslintrc.js +++ b/web/.eslintrc.js @@ -11,93 +11,42 @@ module.exports = { }, }, rules: { - // "import/order": [ - // "error", - // { - // groups: ["builtin", "external", "internal", "parent", "sibling"], - // pathGroups: [ - // { - // pattern: "react", - // group: "external", - // position: "before", - // }, - // { - // pattern: "@headlessui/**", - // group: "external", - // position: "after", - // }, - // { - // pattern: "lucide-react", - // group: "external", - // position: "after", - // }, - // { - // pattern: "@plane/ui", - // group: "external", - // position: "after", - // }, - // { - // pattern: "components/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "constants/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "contexts/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "helpers/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "hooks/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "layouts/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "lib/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "services/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "store/**", - // group: "internal", - // position: "before", - // }, - // { - // pattern: "@plane/types", - // group: "internal", - // position: "after", - // }, - // { - // pattern: "lib/types", - // group: "internal", - // position: "after", - // }, - // ], - // pathGroupsExcludedImportTypes: ["builtin", "internal", "react"], - // alphabetize: { - // order: "asc", - // caseInsensitive: true, - // }, - // }, - // ], + "import/order": [ + "error", + { + groups: ["builtin", "external", "internal", "parent", "sibling",], + pathGroups: [ + { + pattern: "react", + group: "external", + position: "before", + }, + { + pattern: "lucide-react", + group: "external", + position: "after", + }, + { + pattern: "@headlessui/**", + group: "external", + position: "after", + }, + { + pattern: "@plane/**", + group: "external", + position: "after", + }, + { + pattern: "@/**", + group: "internal", + } + ], + pathGroupsExcludedImportTypes: ["builtin", "internal", "react"], + alphabetize: { + order: "asc", + caseInsensitive: true, + }, + }, + ], }, }; diff --git a/web/components/account/deactivate-account-modal.tsx b/web/components/account/deactivate-account-modal.tsx index 34129cebe..41508ad67 100644 --- a/web/components/account/deactivate-account-modal.tsx +++ b/web/components/account/deactivate-account-modal.tsx @@ -2,12 +2,12 @@ import React, { useState } from "react"; import { useRouter } from "next/router"; import { useTheme } from "next-themes"; import { mutate } from "swr"; -import { Dialog, Transition } from "@headlessui/react"; import { Trash2 } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; // hooks // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { useUser } from "hooks/store"; +import { useUser } from "@/hooks/store"; type Props = { isOpen: boolean; diff --git a/web/components/account/o-auth/o-auth-options.tsx b/web/components/account/o-auth/o-auth-options.tsx index 39123328e..1dd970fd6 100644 --- a/web/components/account/o-auth/o-auth-options.tsx +++ b/web/components/account/o-auth/o-auth-options.tsx @@ -2,11 +2,11 @@ import { observer } from "mobx-react-lite"; // ui import { TOAST_TYPE, setToast } from "@plane/ui"; // components -import { GitHubSignInButton, GoogleSignInButton } from "components/account"; +import { GitHubSignInButton, GoogleSignInButton } from "@/components/account"; // hooks -import { useApplication } from "hooks/store"; +import { useApplication } from "@/hooks/store"; // services -import { AuthService } from "services/auth.service"; +import { AuthService } from "@/services/auth.service"; type Props = { handleSignInRedirection: () => Promise; diff --git a/web/components/account/sign-in-forms/email.tsx b/web/components/account/sign-in-forms/email.tsx index 881c75f83..76051e94d 100644 --- a/web/components/account/sign-in-forms/email.tsx +++ b/web/components/account/sign-in-forms/email.tsx @@ -1,15 +1,15 @@ import React from "react"; +import { observer } from "mobx-react-lite"; import { Controller, useForm } from "react-hook-form"; import { XCircle } from "lucide-react"; -import { observer } from "mobx-react-lite"; -// services -import { AuthService } from "services/auth.service"; -// ui -import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -// helpers -import { checkEmailValidity } from "helpers/string.helper"; -// types import { IEmailCheckData } from "@plane/types"; +// services +import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/auth.service"; +// ui +// helpers +// types type Props = { onSubmit: (isPasswordAutoset: boolean) => void; diff --git a/web/components/account/sign-in-forms/forgot-password-popover.tsx b/web/components/account/sign-in-forms/forgot-password-popover.tsx index d652e51f1..31bafce26 100644 --- a/web/components/account/sign-in-forms/forgot-password-popover.tsx +++ b/web/components/account/sign-in-forms/forgot-password-popover.tsx @@ -1,7 +1,7 @@ import { Fragment, useState } from "react"; import { usePopper } from "react-popper"; -import { Popover } from "@headlessui/react"; import { X } from "lucide-react"; +import { Popover } from "@headlessui/react"; export const ForgotPasswordPopover = () => { // popper-js refs diff --git a/web/components/account/sign-in-forms/optional-set-password.tsx b/web/components/account/sign-in-forms/optional-set-password.tsx index 5555d0016..26ec05aa5 100644 --- a/web/components/account/sign-in-forms/optional-set-password.tsx +++ b/web/components/account/sign-in-forms/optional-set-password.tsx @@ -1,16 +1,16 @@ import React, { useState } from "react"; import { Controller, useForm } from "react-hook-form"; // services -import { AuthService } from "services/auth.service"; // hooks -import { useEventTracker } from "hooks/store"; // ui +import { Eye, EyeOff } from "lucide-react"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; +import { PASSWORD_CREATE_SELECTED, PASSWORD_CREATE_SKIPPED } from "@/constants/event-tracker"; +import { checkEmailValidity } from "@/helpers/string.helper"; // icons -import { Eye, EyeOff } from "lucide-react"; -import { PASSWORD_CREATE_SELECTED, PASSWORD_CREATE_SKIPPED } from "constants/event-tracker"; +import { useEventTracker } from "@/hooks/store"; +import { AuthService } from "@/services/auth.service"; type Props = { email: string; diff --git a/web/components/account/sign-in-forms/password.tsx b/web/components/account/sign-in-forms/password.tsx index f42398850..8d7c9f891 100644 --- a/web/components/account/sign-in-forms/password.tsx +++ b/web/components/account/sign-in-forms/password.tsx @@ -3,19 +3,19 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { Controller, useForm } from "react-hook-form"; import { Eye, EyeOff, XCircle } from "lucide-react"; +import { IPasswordSignInData } from "@plane/types"; // services import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -import { ESignInSteps, ForgotPasswordPopover } from "components/account"; -import { FORGOT_PASSWORD, SIGN_IN_WITH_PASSWORD } from "constants/event-tracker"; -import { checkEmailValidity } from "helpers/string.helper"; -import { useApplication, useEventTracker } from "hooks/store"; -import { AuthService } from "services/auth.service"; +import { ESignInSteps, ForgotPasswordPopover } from "@/components/account"; +import { FORGOT_PASSWORD, SIGN_IN_WITH_PASSWORD } from "@/constants/event-tracker"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { useApplication, useEventTracker } from "@/hooks/store"; +import { AuthService } from "@/services/auth.service"; // hooks // components // ui // helpers // types -import { IPasswordSignInData } from "@plane/types"; // constants type Props = { diff --git a/web/components/account/sign-in-forms/root.tsx b/web/components/account/sign-in-forms/root.tsx index 835e018dc..fad37efaf 100644 --- a/web/components/account/sign-in-forms/root.tsx +++ b/web/components/account/sign-in-forms/root.tsx @@ -8,11 +8,11 @@ import { SignInPasswordForm, OAuthOptions, SignInOptionalSetPasswordForm, -} from "components/account"; -import { LatestFeatureBlock } from "components/common"; -import { NAVIGATE_TO_SIGNUP } from "constants/event-tracker"; -import { useApplication, useEventTracker } from "hooks/store"; -import useSignInRedirection from "hooks/use-sign-in-redirection"; +} from "@/components/account"; +import { LatestFeatureBlock } from "@/components/common"; +import { NAVIGATE_TO_SIGNUP } from "@/constants/event-tracker"; +import { useApplication, useEventTracker } from "@/hooks/store"; +import useSignInRedirection from "@/hooks/use-sign-in-redirection"; // components // constants diff --git a/web/components/account/sign-in-forms/unique-code.tsx b/web/components/account/sign-in-forms/unique-code.tsx index fbfa04fcb..2a9144469 100644 --- a/web/components/account/sign-in-forms/unique-code.tsx +++ b/web/components/account/sign-in-forms/unique-code.tsx @@ -1,21 +1,21 @@ import React, { useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { XCircle } from "lucide-react"; +import { IEmailCheckData, IMagicSignInData } from "@plane/types"; // services import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -import { CODE_VERIFIED } from "constants/event-tracker"; -import { checkEmailValidity } from "helpers/string.helper"; -import { useEventTracker } from "hooks/store"; +import { CODE_VERIFIED } from "@/constants/event-tracker"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { useEventTracker } from "@/hooks/store"; -import useTimer from "hooks/use-timer"; -import { AuthService } from "services/auth.service"; -import { UserService } from "services/user.service"; +import useTimer from "@/hooks/use-timer"; +import { AuthService } from "@/services/auth.service"; +import { UserService } from "@/services/user.service"; // hooks // ui // helpers // types -import { IEmailCheckData, IMagicSignInData } from "@plane/types"; // constants type Props = { diff --git a/web/components/account/sign-up-forms/email.tsx b/web/components/account/sign-up-forms/email.tsx index 22dba892f..bc4fb1d86 100644 --- a/web/components/account/sign-up-forms/email.tsx +++ b/web/components/account/sign-up-forms/email.tsx @@ -2,14 +2,14 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { Controller, useForm } from "react-hook-form"; import { XCircle } from "lucide-react"; +import { IEmailCheckData } from "@plane/types"; // services import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -import { checkEmailValidity } from "helpers/string.helper"; -import { AuthService } from "services/auth.service"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/auth.service"; // ui // helpers // types -import { IEmailCheckData } from "@plane/types"; type Props = { onSubmit: () => void; diff --git a/web/components/account/sign-up-forms/optional-set-password.tsx b/web/components/account/sign-up-forms/optional-set-password.tsx index 93f774248..c269c389a 100644 --- a/web/components/account/sign-up-forms/optional-set-password.tsx +++ b/web/components/account/sign-up-forms/optional-set-password.tsx @@ -3,11 +3,11 @@ import { Controller, useForm } from "react-hook-form"; // services import { Eye, EyeOff } from "lucide-react"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -import { ESignUpSteps } from "components/account"; -import { PASSWORD_CREATE_SKIPPED, SETUP_PASSWORD } from "constants/event-tracker"; -import { checkEmailValidity } from "helpers/string.helper"; -import { useEventTracker } from "hooks/store"; -import { AuthService } from "services/auth.service"; +import { ESignUpSteps } from "@/components/account"; +import { PASSWORD_CREATE_SKIPPED, SETUP_PASSWORD } from "@/constants/event-tracker"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { useEventTracker } from "@/hooks/store"; +import { AuthService } from "@/services/auth.service"; // hooks // ui // helpers diff --git a/web/components/account/sign-up-forms/password.tsx b/web/components/account/sign-up-forms/password.tsx index 7fab81fbe..9cafabe81 100644 --- a/web/components/account/sign-up-forms/password.tsx +++ b/web/components/account/sign-up-forms/password.tsx @@ -3,14 +3,14 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { Controller, useForm } from "react-hook-form"; import { Eye, EyeOff, XCircle } from "lucide-react"; +import { IPasswordSignInData } from "@plane/types"; // services // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; -import { AuthService } from "services/auth.service"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { AuthService } from "@/services/auth.service"; // types -import { IPasswordSignInData } from "@plane/types"; type Props = { onSubmit: () => Promise; diff --git a/web/components/account/sign-up-forms/root.tsx b/web/components/account/sign-up-forms/root.tsx index 455112e9e..4fab3abcd 100644 --- a/web/components/account/sign-up-forms/root.tsx +++ b/web/components/account/sign-up-forms/root.tsx @@ -8,10 +8,10 @@ import { SignUpOptionalSetPasswordForm, SignUpPasswordForm, SignUpUniqueCodeForm, -} from "components/account"; -import { NAVIGATE_TO_SIGNIN } from "constants/event-tracker"; -import { useApplication, useEventTracker } from "hooks/store"; -import useSignInRedirection from "hooks/use-sign-in-redirection"; +} from "@/components/account"; +import { NAVIGATE_TO_SIGNIN } from "@/constants/event-tracker"; +import { useApplication, useEventTracker } from "@/hooks/store"; +import useSignInRedirection from "@/hooks/use-sign-in-redirection"; // components // constants diff --git a/web/components/account/sign-up-forms/unique-code.tsx b/web/components/account/sign-up-forms/unique-code.tsx index 82f9685b1..bc6e1ee4c 100644 --- a/web/components/account/sign-up-forms/unique-code.tsx +++ b/web/components/account/sign-up-forms/unique-code.tsx @@ -2,20 +2,20 @@ import React, { useState } from "react"; import Link from "next/link"; import { Controller, useForm } from "react-hook-form"; import { XCircle } from "lucide-react"; +import { IEmailCheckData, IMagicSignInData } from "@plane/types"; // services import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -import { CODE_VERIFIED } from "constants/event-tracker"; -import { checkEmailValidity } from "helpers/string.helper"; -import { useEventTracker } from "hooks/store"; -import useTimer from "hooks/use-timer"; -import { AuthService } from "services/auth.service"; -import { UserService } from "services/user.service"; +import { CODE_VERIFIED } from "@/constants/event-tracker"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { useEventTracker } from "@/hooks/store"; +import useTimer from "@/hooks/use-timer"; +import { AuthService } from "@/services/auth.service"; +import { UserService } from "@/services/user.service"; // hooks // ui // helpers // types -import { IEmailCheckData, IMagicSignInData } from "@plane/types"; // constants type Props = { diff --git a/web/components/analytics/custom-analytics/custom-analytics.tsx b/web/components/analytics/custom-analytics/custom-analytics.tsx index 1159689c6..9f075a8bb 100644 --- a/web/components/analytics/custom-analytics/custom-analytics.tsx +++ b/web/components/analytics/custom-analytics/custom-analytics.tsx @@ -2,16 +2,16 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { useForm } from "react-hook-form"; import useSWR from "swr"; +import { IAnalyticsParams } from "@plane/types"; // services // components -import { CustomAnalyticsSelectBar, CustomAnalyticsMainContent, CustomAnalyticsSidebar } from "components/analytics"; +import { CustomAnalyticsSelectBar, CustomAnalyticsMainContent, CustomAnalyticsSidebar } from "@/components/analytics"; // types // fetch-keys -import { ANALYTICS } from "constants/fetch-keys"; -import { cn } from "helpers/common.helper"; -import { useApplication } from "hooks/store"; -import { AnalyticsService } from "services/analytics.service"; -import { IAnalyticsParams } from "@plane/types"; +import { ANALYTICS } from "@/constants/fetch-keys"; +import { cn } from "@/helpers/common.helper"; +import { useApplication } from "@/hooks/store"; +import { AnalyticsService } from "@/services/analytics.service"; type Props = { additionalParams?: Partial; diff --git a/web/components/analytics/custom-analytics/graph/custom-tooltip.tsx b/web/components/analytics/custom-analytics/graph/custom-tooltip.tsx index b90e9994f..9101f1cf2 100644 --- a/web/components/analytics/custom-analytics/graph/custom-tooltip.tsx +++ b/web/components/analytics/custom-analytics/graph/custom-tooltip.tsx @@ -1,9 +1,9 @@ // nivo import { BarTooltipProps } from "@nivo/bar"; -import { DATE_KEYS } from "constants/analytics"; -import { renderMonthAndYear } from "helpers/analytics.helper"; -// types import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types"; +import { DATE_KEYS } from "@/constants/analytics"; +import { renderMonthAndYear } from "@/helpers/analytics.helper"; +// types type Props = { datum: BarTooltipProps; diff --git a/web/components/analytics/custom-analytics/graph/index.tsx b/web/components/analytics/custom-analytics/graph/index.tsx index 0e70fd898..742424c79 100644 --- a/web/components/analytics/custom-analytics/graph/index.tsx +++ b/web/components/analytics/custom-analytics/graph/index.tsx @@ -1,14 +1,14 @@ // nivo import { BarDatum } from "@nivo/bar"; // components +import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types"; import { Tooltip } from "@plane/ui"; // ui -import { BarGraph } from "components/ui"; +import { BarGraph } from "@/components/ui"; // helpers -import { generateBarColor, generateDisplayName } from "helpers/analytics.helper"; -import { findStringWithMostCharacters } from "helpers/array.helper"; +import { generateBarColor, generateDisplayName } from "@/helpers/analytics.helper"; +import { findStringWithMostCharacters } from "@/helpers/array.helper"; // types -import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types"; import { CustomTooltip } from "./custom-tooltip"; type Props = { diff --git a/web/components/analytics/custom-analytics/main-content.tsx b/web/components/analytics/custom-analytics/main-content.tsx index e13b9cdd1..f57edbefd 100644 --- a/web/components/analytics/custom-analytics/main-content.tsx +++ b/web/components/analytics/custom-analytics/main-content.tsx @@ -1,15 +1,15 @@ import { useRouter } from "next/router"; import { mutate } from "swr"; +import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types"; // components import { Button, Loader } from "@plane/ui"; -import { AnalyticsGraph, AnalyticsTable } from "components/analytics"; +import { AnalyticsGraph, AnalyticsTable } from "@/components/analytics"; // ui // helpers -import { ANALYTICS } from "constants/fetch-keys"; -import { convertResponseToBarGraphData } from "helpers/analytics.helper"; +import { ANALYTICS } from "@/constants/fetch-keys"; +import { convertResponseToBarGraphData } from "@/helpers/analytics.helper"; // types -import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types"; // fetch-keys type Props = { diff --git a/web/components/analytics/custom-analytics/select-bar.tsx b/web/components/analytics/custom-analytics/select-bar.tsx index 7ce2f31ef..dc241d1ee 100644 --- a/web/components/analytics/custom-analytics/select-bar.tsx +++ b/web/components/analytics/custom-analytics/select-bar.tsx @@ -1,11 +1,11 @@ import { observer } from "mobx-react-lite"; import { Control, Controller, UseFormSetValue } from "react-hook-form"; +import { IAnalyticsParams } from "@plane/types"; // hooks -import { SelectProject, SelectSegment, SelectXAxis, SelectYAxis } from "components/analytics"; -import { useProject } from "hooks/store"; +import { SelectProject, SelectSegment, SelectXAxis, SelectYAxis } from "@/components/analytics"; +import { useProject } from "@/hooks/store"; // components // types -import { IAnalyticsParams } from "@plane/types"; type Props = { control: Control; diff --git a/web/components/analytics/custom-analytics/select/project.tsx b/web/components/analytics/custom-analytics/select/project.tsx index 61c3acb09..325683904 100644 --- a/web/components/analytics/custom-analytics/select/project.tsx +++ b/web/components/analytics/custom-analytics/select/project.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; // hooks import { CustomSearchSelect } from "@plane/ui"; -import { useProject } from "hooks/store"; +import { useProject } from "@/hooks/store"; // ui type Props = { diff --git a/web/components/analytics/custom-analytics/select/segment.tsx b/web/components/analytics/custom-analytics/select/segment.tsx index de94eac62..07bbb0e37 100644 --- a/web/components/analytics/custom-analytics/select/segment.tsx +++ b/web/components/analytics/custom-analytics/select/segment.tsx @@ -1,10 +1,10 @@ import { useRouter } from "next/router"; +import { IAnalyticsParams, TXAxisValues } from "@plane/types"; // ui import { CustomSelect } from "@plane/ui"; // types -import { ANALYTICS_X_AXIS_VALUES } from "constants/analytics"; -import { IAnalyticsParams, TXAxisValues } from "@plane/types"; +import { ANALYTICS_X_AXIS_VALUES } from "@/constants/analytics"; // constants type Props = { diff --git a/web/components/analytics/custom-analytics/select/x-axis.tsx b/web/components/analytics/custom-analytics/select/x-axis.tsx index 9daecaaa0..a0c21b1b6 100644 --- a/web/components/analytics/custom-analytics/select/x-axis.tsx +++ b/web/components/analytics/custom-analytics/select/x-axis.tsx @@ -1,10 +1,10 @@ import { useRouter } from "next/router"; +import { IAnalyticsParams, TXAxisValues } from "@plane/types"; // ui import { CustomSelect } from "@plane/ui"; // types -import { ANALYTICS_X_AXIS_VALUES } from "constants/analytics"; -import { IAnalyticsParams, TXAxisValues } from "@plane/types"; +import { ANALYTICS_X_AXIS_VALUES } from "@/constants/analytics"; // constants type Props = { diff --git a/web/components/analytics/custom-analytics/select/y-axis.tsx b/web/components/analytics/custom-analytics/select/y-axis.tsx index 92e4fd2e5..a33feb967 100644 --- a/web/components/analytics/custom-analytics/select/y-axis.tsx +++ b/web/components/analytics/custom-analytics/select/y-axis.tsx @@ -1,8 +1,8 @@ // ui +import { TYAxisValues } from "@plane/types"; import { CustomSelect } from "@plane/ui"; // types -import { ANALYTICS_Y_AXIS_VALUES } from "constants/analytics"; -import { TYAxisValues } from "@plane/types"; +import { ANALYTICS_Y_AXIS_VALUES } from "@/constants/analytics"; // constants type Props = { diff --git a/web/components/analytics/custom-analytics/sidebar/projects-list.tsx b/web/components/analytics/custom-analytics/sidebar/projects-list.tsx index 31812cb00..7b665e5d8 100644 --- a/web/components/analytics/custom-analytics/sidebar/projects-list.tsx +++ b/web/components/analytics/custom-analytics/sidebar/projects-list.tsx @@ -3,9 +3,9 @@ import { observer } from "mobx-react-lite"; // icons import { Contrast, LayoutGrid, Users } from "lucide-react"; // helpers -import { truncateText } from "helpers/string.helper"; -import { useProject } from "hooks/store"; -import { ProjectLogo } from "components/project"; +import { ProjectLogo } from "@/components/project"; +import { truncateText } from "@/helpers/string.helper"; +import { useProject } from "@/hooks/store"; type Props = { projectIds: string[]; diff --git a/web/components/analytics/custom-analytics/sidebar/sidebar-header.tsx b/web/components/analytics/custom-analytics/sidebar/sidebar-header.tsx index 26f97e8f9..0dad084af 100644 --- a/web/components/analytics/custom-analytics/sidebar/sidebar-header.tsx +++ b/web/components/analytics/custom-analytics/sidebar/sidebar-header.tsx @@ -1,11 +1,11 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { NETWORK_CHOICES } from "constants/project"; -import { renderFormattedDate } from "helpers/date-time.helper"; -import { useCycle, useMember, useModule, useProject } from "hooks/store"; +import { ProjectLogo } from "@/components/project"; +import { NETWORK_CHOICES } from "@/constants/project"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { useCycle, useMember, useModule, useProject } from "@/hooks/store"; // components -import { ProjectLogo } from "components/project"; // helpers // constants diff --git a/web/components/analytics/custom-analytics/sidebar/sidebar.tsx b/web/components/analytics/custom-analytics/sidebar/sidebar.tsx index a48ea3c03..26bb039b0 100644 --- a/web/components/analytics/custom-analytics/sidebar/sidebar.tsx +++ b/web/components/analytics/custom-analytics/sidebar/sidebar.tsx @@ -7,18 +7,18 @@ import { mutate } from "swr"; // components // ui import { CalendarDays, Download, RefreshCw } from "lucide-react"; +import { IAnalyticsParams, IAnalyticsResponse, IExportAnalyticsFormData, IWorkspace } from "@plane/types"; import { Button, LayersIcon, TOAST_TYPE, setToast } from "@plane/ui"; // icons -import { CustomAnalyticsSidebarHeader, CustomAnalyticsSidebarProjectsList } from "components/analytics"; +import { CustomAnalyticsSidebarHeader, CustomAnalyticsSidebarProjectsList } from "@/components/analytics"; // helpers // types // fetch-keys -import { ANALYTICS } from "constants/fetch-keys"; -import { cn } from "helpers/common.helper"; -import { renderFormattedDate } from "helpers/date-time.helper"; -import { useCycle, useModule, useProject, useUser, useWorkspace } from "hooks/store"; -import { AnalyticsService } from "services/analytics.service"; -import { IAnalyticsParams, IAnalyticsResponse, IExportAnalyticsFormData, IWorkspace } from "@plane/types"; +import { ANALYTICS } from "@/constants/fetch-keys"; +import { cn } from "@/helpers/common.helper"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { useCycle, useModule, useProject, useUser, useWorkspace } from "@/hooks/store"; +import { AnalyticsService } from "@/services/analytics.service"; type Props = { analytics: IAnalyticsResponse | undefined; diff --git a/web/components/analytics/custom-analytics/table.tsx b/web/components/analytics/custom-analytics/table.tsx index 74b0f2254..efb8293fb 100644 --- a/web/components/analytics/custom-analytics/table.tsx +++ b/web/components/analytics/custom-analytics/table.tsx @@ -1,12 +1,12 @@ import { BarDatum } from "@nivo/bar"; // icons +import { IAnalyticsParams, IAnalyticsResponse, TIssuePriorities } from "@plane/types"; import { PriorityIcon } from "@plane/ui"; // helpers -import { ANALYTICS_X_AXIS_VALUES, ANALYTICS_Y_AXIS_VALUES } from "constants/analytics"; -import { generateBarColor, generateDisplayName } from "helpers/analytics.helper"; +import { ANALYTICS_X_AXIS_VALUES, ANALYTICS_Y_AXIS_VALUES } from "@/constants/analytics"; +import { generateBarColor, generateDisplayName } from "@/helpers/analytics.helper"; // types -import { IAnalyticsParams, IAnalyticsResponse, TIssuePriorities } from "@plane/types"; // constants type Props = { diff --git a/web/components/analytics/project-modal/main-content.tsx b/web/components/analytics/project-modal/main-content.tsx index a02ab9f11..096b90d67 100644 --- a/web/components/analytics/project-modal/main-content.tsx +++ b/web/components/analytics/project-modal/main-content.tsx @@ -1,11 +1,11 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { Tab } from "@headlessui/react"; -// components -import { CustomAnalytics, ScopeAndDemand } from "components/analytics"; -// types -import { ANALYTICS_TABS } from "constants/analytics"; import { ICycle, IModule, IProject } from "@plane/types"; +// components +import { CustomAnalytics, ScopeAndDemand } from "@/components/analytics"; +// types +import { ANALYTICS_TABS } from "@/constants/analytics"; // constants type Props = { diff --git a/web/components/analytics/project-modal/modal.tsx b/web/components/analytics/project-modal/modal.tsx index 197b4d809..a15c17f4a 100644 --- a/web/components/analytics/project-modal/modal.tsx +++ b/web/components/analytics/project-modal/modal.tsx @@ -1,11 +1,11 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { Dialog, Transition } from "@headlessui/react"; +import { ICycle, IModule, IProject } from "@plane/types"; // components -import { ProjectAnalyticsModalHeader, ProjectAnalyticsModalMainContent } from "components/analytics"; +import { ProjectAnalyticsModalHeader, ProjectAnalyticsModalMainContent } from "@/components/analytics"; // types -import { ICycle, IModule, IProject } from "@plane/types"; type Props = { isOpen: boolean; diff --git a/web/components/analytics/scope-and-demand/demand.tsx b/web/components/analytics/scope-and-demand/demand.tsx index 712b17bd3..e1c3dbae7 100644 --- a/web/components/analytics/scope-and-demand/demand.tsx +++ b/web/components/analytics/scope-and-demand/demand.tsx @@ -1,8 +1,8 @@ // icons import { Triangle } from "lucide-react"; -// types -import { STATE_GROUPS } from "constants/state"; import { IDefaultAnalyticsResponse, TStateGroups } from "@plane/types"; +// types +import { STATE_GROUPS } from "@/constants/state"; // constants type Props = { diff --git a/web/components/analytics/scope-and-demand/leaderboard.tsx b/web/components/analytics/scope-and-demand/leaderboard.tsx index ae7447b0f..e6473b874 100644 --- a/web/components/analytics/scope-and-demand/leaderboard.tsx +++ b/web/components/analytics/scope-and-demand/leaderboard.tsx @@ -1,5 +1,5 @@ // ui -import { ProfileEmptyState } from "components/ui"; +import { ProfileEmptyState } from "@/components/ui"; // image import emptyUsers from "public/empty-state/empty_users.svg"; diff --git a/web/components/analytics/scope-and-demand/scope-and-demand.tsx b/web/components/analytics/scope-and-demand/scope-and-demand.tsx index 15ba0c772..3c5e3f48e 100644 --- a/web/components/analytics/scope-and-demand/scope-and-demand.tsx +++ b/web/components/analytics/scope-and-demand/scope-and-demand.tsx @@ -5,11 +5,11 @@ import useSWR from "swr"; // services // components import { Button, Loader } from "@plane/ui"; -import { AnalyticsDemand, AnalyticsLeaderBoard, AnalyticsScope, AnalyticsYearWiseIssues } from "components/analytics"; +import { AnalyticsDemand, AnalyticsLeaderBoard, AnalyticsScope, AnalyticsYearWiseIssues } from "@/components/analytics"; // ui // fetch-keys -import { DEFAULT_ANALYTICS } from "constants/fetch-keys"; -import { AnalyticsService } from "services/analytics.service"; +import { DEFAULT_ANALYTICS } from "@/constants/fetch-keys"; +import { AnalyticsService } from "@/services/analytics.service"; type Props = { fullScreen?: boolean; diff --git a/web/components/analytics/scope-and-demand/scope.tsx b/web/components/analytics/scope-and-demand/scope.tsx index ea1a51937..527761e96 100644 --- a/web/components/analytics/scope-and-demand/scope.tsx +++ b/web/components/analytics/scope-and-demand/scope.tsx @@ -1,9 +1,9 @@ // ui -import { BarGraph, ProfileEmptyState } from "components/ui"; +import { IDefaultAnalyticsResponse } from "@plane/types"; +import { BarGraph, ProfileEmptyState } from "@/components/ui"; // image import emptyBarGraph from "public/empty-state/empty_bar_graph.svg"; // types -import { IDefaultAnalyticsResponse } from "@plane/types"; type Props = { defaultAnalytics: IDefaultAnalyticsResponse; diff --git a/web/components/analytics/scope-and-demand/year-wise-issues.tsx b/web/components/analytics/scope-and-demand/year-wise-issues.tsx index 86fd28490..cbd0e155c 100644 --- a/web/components/analytics/scope-and-demand/year-wise-issues.tsx +++ b/web/components/analytics/scope-and-demand/year-wise-issues.tsx @@ -1,10 +1,10 @@ // ui -import { LineGraph, ProfileEmptyState } from "components/ui"; +import { IDefaultAnalyticsResponse } from "@plane/types"; +import { LineGraph, ProfileEmptyState } from "@/components/ui"; // image -import { MONTHS_LIST } from "constants/calendar"; +import { MONTHS_LIST } from "@/constants/calendar"; import emptyGraph from "public/empty-state/empty_graph.svg"; // types -import { IDefaultAnalyticsResponse } from "@plane/types"; // constants type Props = { diff --git a/web/components/api-token/delete-token-modal.tsx b/web/components/api-token/delete-token-modal.tsx index 941889796..4c511de4a 100644 --- a/web/components/api-token/delete-token-modal.tsx +++ b/web/components/api-token/delete-token-modal.tsx @@ -2,13 +2,13 @@ import { useState, Fragment, FC } from "react"; import { useRouter } from "next/router"; import { mutate } from "swr"; import { Dialog, Transition } from "@headlessui/react"; +import { IApiToken } from "@plane/types"; // services import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { API_TOKENS_LIST } from "constants/fetch-keys"; -import { APITokenService } from "services/api_token.service"; +import { API_TOKENS_LIST } from "@/constants/fetch-keys"; +import { APITokenService } from "@/services/api_token.service"; // ui // types -import { IApiToken } from "@plane/types"; // fetch-keys type Props = { diff --git a/web/components/api-token/modal/create-token-modal.tsx b/web/components/api-token/modal/create-token-modal.tsx index 2e782de0c..32305ba5b 100644 --- a/web/components/api-token/modal/create-token-modal.tsx +++ b/web/components/api-token/modal/create-token-modal.tsx @@ -2,19 +2,19 @@ import React, { useState } from "react"; import { useRouter } from "next/router"; import { mutate } from "swr"; import { Dialog, Transition } from "@headlessui/react"; +import { IApiToken } from "@plane/types"; // services import { TOAST_TYPE, setToast } from "@plane/ui"; -import { CreateApiTokenForm, GeneratedTokenDetails } from "components/api-token"; -import { API_TOKENS_LIST } from "constants/fetch-keys"; -import { renderFormattedDate } from "helpers/date-time.helper"; -import { csvDownload } from "helpers/download.helper"; -import { APITokenService } from "services/api_token.service"; +import { CreateApiTokenForm, GeneratedTokenDetails } from "@/components/api-token"; +import { API_TOKENS_LIST } from "@/constants/fetch-keys"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { csvDownload } from "@/helpers/download.helper"; +import { APITokenService } from "@/services/api_token.service"; // ui // components // helpers // types -import { IApiToken } from "@plane/types"; // fetch-keys type Props = { diff --git a/web/components/api-token/modal/form.tsx b/web/components/api-token/modal/form.tsx index 2bea1da0c..3849fea74 100644 --- a/web/components/api-token/modal/form.tsx +++ b/web/components/api-token/modal/form.tsx @@ -1,14 +1,14 @@ import { useState } from "react"; import { add } from "date-fns"; import { Controller, useForm } from "react-hook-form"; -import { DateDropdown } from "components/dropdowns"; import { Calendar } from "lucide-react"; +import { IApiToken } from "@plane/types"; // ui import { Button, CustomSelect, Input, TextArea, ToggleSwitch, TOAST_TYPE, setToast } from "@plane/ui"; +import { DateDropdown } from "@/components/dropdowns"; // helpers -import { renderFormattedDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; +import { renderFormattedDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; // types -import { IApiToken } from "@plane/types"; type Props = { handleClose: () => void; diff --git a/web/components/api-token/modal/generated-token-details.tsx b/web/components/api-token/modal/generated-token-details.tsx index d21caf36c..d2bbfd7a1 100644 --- a/web/components/api-token/modal/generated-token-details.tsx +++ b/web/components/api-token/modal/generated-token-details.tsx @@ -1,13 +1,13 @@ import { Copy } from "lucide-react"; +import { IApiToken } from "@plane/types"; // ui import { Button, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -import { copyTextToClipboard } from "helpers/string.helper"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { copyTextToClipboard } from "@/helpers/string.helper"; // types -import { IApiToken } from "@plane/types"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; type Props = { handleClose: () => void; diff --git a/web/components/api-token/token-list-item.tsx b/web/components/api-token/token-list-item.tsx index 3dd381d53..5ac7ec681 100644 --- a/web/components/api-token/token-list-item.tsx +++ b/web/components/api-token/token-list-item.tsx @@ -1,14 +1,14 @@ import { useState } from "react"; import { XCircle } from "lucide-react"; +import { IApiToken } from "@plane/types"; // components import { Tooltip } from "@plane/ui"; -import { DeleteApiTokenModal } from "components/api-token"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { DeleteApiTokenModal } from "@/components/api-token"; +import { renderFormattedDate, calculateTimeAgo } from "@/helpers/date-time.helper"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // ui // helpers -import { renderFormattedDate, calculateTimeAgo } from "helpers/date-time.helper"; // types -import { IApiToken } from "@plane/types"; type Props = { token: IApiToken; @@ -36,8 +36,9 @@ export const ApiTokenListItem: React.FC = (props) => {
{token.label}
{token.is_active ? "Active" : "Expired"} diff --git a/web/components/auth-screens/not-authorized-view.tsx b/web/components/auth-screens/not-authorized-view.tsx index 4acec4104..f9dc9e7b1 100644 --- a/web/components/auth-screens/not-authorized-view.tsx +++ b/web/components/auth-screens/not-authorized-view.tsx @@ -4,9 +4,9 @@ import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; // hooks -import { useUser } from "hooks/store"; +import { useUser } from "@/hooks/store"; // layouts -import DefaultLayout from "layouts/default-layout"; +import DefaultLayout from "@/layouts/default-layout"; // images import ProjectNotAuthorizedImg from "public/auth/project-not-authorized.svg"; import WorkspaceNotAuthorizedImg from "public/auth/workspace-not-authorized.svg"; diff --git a/web/components/auth-screens/project/join-project.tsx b/web/components/auth-screens/project/join-project.tsx index d35aad657..0c5d4740a 100644 --- a/web/components/auth-screens/project/join-project.tsx +++ b/web/components/auth-screens/project/join-project.tsx @@ -4,7 +4,7 @@ import { useRouter } from "next/router"; // hooks import { ClipboardList } from "lucide-react"; import { Button } from "@plane/ui"; -import { useProject, useUser } from "hooks/store"; +import { useProject, useUser } from "@/hooks/store"; // ui // icons // images diff --git a/web/components/auth-screens/workspace/not-a-member.tsx b/web/components/auth-screens/workspace/not-a-member.tsx index 5f70e36dd..e55c5b9f9 100644 --- a/web/components/auth-screens/workspace/not-a-member.tsx +++ b/web/components/auth-screens/workspace/not-a-member.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; // layouts import { Button } from "@plane/ui"; -import DefaultLayout from "layouts/default-layout"; +import DefaultLayout from "@/layouts/default-layout"; // ui export const NotAWorkspaceMember = () => ( diff --git a/web/components/automation/auto-archive-automation.tsx b/web/components/automation/auto-archive-automation.tsx index e3ad89e90..fe4b711fd 100644 --- a/web/components/automation/auto-archive-automation.tsx +++ b/web/components/automation/auto-archive-automation.tsx @@ -3,14 +3,14 @@ import { observer } from "mobx-react-lite"; // hooks // component import { ArchiveRestore } from "lucide-react"; +import { IProject } from "@plane/types"; import { CustomSelect, Loader, ToggleSwitch } from "@plane/ui"; -import { SelectMonthModal } from "components/automation"; +import { SelectMonthModal } from "@/components/automation"; // icon // constants -import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "constants/project"; -import { useProject, useUser } from "hooks/store"; +import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "@/constants/project"; +import { useProject, useUser } from "@/hooks/store"; // types -import { IProject } from "@plane/types"; type Props = { handleChange: (formData: Partial) => Promise; diff --git a/web/components/automation/auto-close-automation.tsx b/web/components/automation/auto-close-automation.tsx index 000f0bbf6..d2a01244c 100644 --- a/web/components/automation/auto-close-automation.tsx +++ b/web/components/automation/auto-close-automation.tsx @@ -2,14 +2,14 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // hooks import { ArchiveX } from "lucide-react"; +import { IProject } from "@plane/types"; import { CustomSelect, CustomSearchSelect, ToggleSwitch, StateGroupIcon, DoubleCircleIcon, Loader } from "@plane/ui"; -import { SelectMonthModal } from "components/automation"; -import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "constants/project"; -import { useProject, useProjectState, useUser } from "hooks/store"; +import { SelectMonthModal } from "@/components/automation"; +import { EUserProjectRoles, PROJECT_AUTOMATION_MONTHS } from "@/constants/project"; +import { useProject, useProjectState, useUser } from "@/hooks/store"; // component // icons // types -import { IProject } from "@plane/types"; // constants type Props = { diff --git a/web/components/automation/select-month-modal.tsx b/web/components/automation/select-month-modal.tsx index 01d07f64a..e0768b1df 100644 --- a/web/components/automation/select-month-modal.tsx +++ b/web/components/automation/select-month-modal.tsx @@ -4,10 +4,10 @@ import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; // headless ui import { Dialog, Transition } from "@headlessui/react"; +import type { IProject } from "@plane/types"; // ui import { Button, Input } from "@plane/ui"; // types -import type { IProject } from "@plane/types"; // types type Props = { diff --git a/web/components/command-palette/actions/help-actions.tsx b/web/components/command-palette/actions/help-actions.tsx index 34317846a..10c7675d3 100644 --- a/web/components/command-palette/actions/help-actions.tsx +++ b/web/components/command-palette/actions/help-actions.tsx @@ -2,7 +2,7 @@ import { Command } from "cmdk"; import { FileText, GithubIcon, MessageSquare, Rocket } from "lucide-react"; // hooks import { DiscordIcon } from "@plane/ui"; -import { useApplication } from "hooks/store"; +import { useApplication } from "@/hooks/store"; // ui type Props = { diff --git a/web/components/command-palette/actions/issue-actions/actions-list.tsx b/web/components/command-palette/actions/issue-actions/actions-list.tsx index 98059af39..04bcc9899 100644 --- a/web/components/command-palette/actions/issue-actions/actions-list.tsx +++ b/web/components/command-palette/actions/issue-actions/actions-list.tsx @@ -2,15 +2,15 @@ import { Command } from "cmdk"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { LinkIcon, Signal, Trash2, UserMinus2, UserPlus2 } from "lucide-react"; +import { TIssue } from "@plane/types"; // hooks import { DoubleCircleIcon, UserGroupIcon, TOAST_TYPE, setToast } from "@plane/ui"; -import { EIssuesStoreType } from "constants/issue"; -import { copyTextToClipboard } from "helpers/string.helper"; -import { useApplication, useUser, useIssues } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { copyTextToClipboard } from "@/helpers/string.helper"; +import { useApplication, useUser, useIssues } from "@/hooks/store"; // ui // helpers // types -import { TIssue } from "@plane/types"; type Props = { closePalette: () => void; diff --git a/web/components/command-palette/actions/issue-actions/change-assignee.tsx b/web/components/command-palette/actions/issue-actions/change-assignee.tsx index 18b11e129..4797bb45f 100644 --- a/web/components/command-palette/actions/issue-actions/change-assignee.tsx +++ b/web/components/command-palette/actions/issue-actions/change-assignee.tsx @@ -2,13 +2,13 @@ import { Command } from "cmdk"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Check } from "lucide-react"; +import { TIssue } from "@plane/types"; // mobx store import { Avatar } from "@plane/ui"; -import { EIssuesStoreType } from "constants/issue"; -import { useIssues, useMember } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useMember } from "@/hooks/store"; // ui // types -import { TIssue } from "@plane/types"; type Props = { closePalette: () => void; diff --git a/web/components/command-palette/actions/issue-actions/change-priority.tsx b/web/components/command-palette/actions/issue-actions/change-priority.tsx index d07866833..6d2724859 100644 --- a/web/components/command-palette/actions/issue-actions/change-priority.tsx +++ b/web/components/command-palette/actions/issue-actions/change-priority.tsx @@ -2,13 +2,13 @@ import { Command } from "cmdk"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Check } from "lucide-react"; +import { TIssue, TIssuePriorities } from "@plane/types"; // mobx store import { PriorityIcon } from "@plane/ui"; -import { EIssuesStoreType, ISSUE_PRIORITIES } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { EIssuesStoreType, ISSUE_PRIORITIES } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; // ui // types -import { TIssue, TIssuePriorities } from "@plane/types"; // constants type Props = { diff --git a/web/components/command-palette/actions/issue-actions/change-state.tsx b/web/components/command-palette/actions/issue-actions/change-state.tsx index d208facc9..32c6a0de5 100644 --- a/web/components/command-palette/actions/issue-actions/change-state.tsx +++ b/web/components/command-palette/actions/issue-actions/change-state.tsx @@ -3,13 +3,13 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks import { Check } from "lucide-react"; +import { TIssue } from "@plane/types"; import { Spinner, StateGroupIcon } from "@plane/ui"; -import { EIssuesStoreType } from "constants/issue"; -import { useProjectState, useIssues } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useProjectState, useIssues } from "@/hooks/store"; // ui // icons // types -import { TIssue } from "@plane/types"; type Props = { closePalette: () => void; diff --git a/web/components/command-palette/actions/project-actions.tsx b/web/components/command-palette/actions/project-actions.tsx index d1589cb92..297d1ba36 100644 --- a/web/components/command-palette/actions/project-actions.tsx +++ b/web/components/command-palette/actions/project-actions.tsx @@ -2,7 +2,7 @@ import { Command } from "cmdk"; import { ContrastIcon, FileText } from "lucide-react"; // hooks import { DiceIcon, PhotoFilterIcon } from "@plane/ui"; -import { useApplication, useEventTracker } from "hooks/store"; +import { useApplication, useEventTracker } from "@/hooks/store"; // ui type Props = { diff --git a/web/components/command-palette/actions/search-results.tsx b/web/components/command-palette/actions/search-results.tsx index 5398d889d..489794295 100644 --- a/web/components/command-palette/actions/search-results.tsx +++ b/web/components/command-palette/actions/search-results.tsx @@ -1,9 +1,9 @@ import { Command } from "cmdk"; import { useRouter } from "next/router"; -// helpers -import { commandGroups } from "components/command-palette"; -// types import { IWorkspaceSearchResults } from "@plane/types"; +// helpers +import { commandGroups } from "@/components/command-palette"; +// types type Props = { closePalette: () => void; diff --git a/web/components/command-palette/actions/theme-actions.tsx b/web/components/command-palette/actions/theme-actions.tsx index fe4a9fa20..b635881b5 100644 --- a/web/components/command-palette/actions/theme-actions.tsx +++ b/web/components/command-palette/actions/theme-actions.tsx @@ -5,8 +5,8 @@ import { useTheme } from "next-themes"; import { Settings } from "lucide-react"; // hooks import { TOAST_TYPE, setToast } from "@plane/ui"; -import { THEME_OPTIONS } from "constants/themes"; -import { useUser } from "hooks/store"; +import { THEME_OPTIONS } from "@/constants/themes"; +import { useUser } from "@/hooks/store"; // ui // constants diff --git a/web/components/command-palette/actions/workspace-settings-actions.tsx b/web/components/command-palette/actions/workspace-settings-actions.tsx index 5a2b2cd69..56c118a51 100644 --- a/web/components/command-palette/actions/workspace-settings-actions.tsx +++ b/web/components/command-palette/actions/workspace-settings-actions.tsx @@ -3,8 +3,8 @@ import { Command } from "cmdk"; import Link from "next/link"; import { useRouter } from "next/router"; // constants -import { EUserWorkspaceRoles, WORKSPACE_SETTINGS_LINKS } from "constants/workspace"; -import { useUser } from "hooks/store"; +import { EUserWorkspaceRoles, WORKSPACE_SETTINGS_LINKS } from "@/constants/workspace"; +import { useUser } from "@/hooks/store"; type Props = { closePalette: () => void; diff --git a/web/components/command-palette/command-modal.tsx b/web/components/command-palette/command-modal.tsx index 60c4fcc04..ddbf45dc8 100644 --- a/web/components/command-palette/command-modal.tsx +++ b/web/components/command-palette/command-modal.tsx @@ -3,20 +3,12 @@ import { Command } from "cmdk"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import useSWR from "swr"; +import { FolderPlus, Search, Settings } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // icons -import { FolderPlus, Search, Settings } from "lucide-react"; +import { IWorkspaceSearchResults } from "@plane/types"; // hooks -import { useApplication, useEventTracker, useProject } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; -import useDebounce from "hooks/use-debounce"; -// services -import { IssueService } from "services/issue"; -import { WorkspaceService } from "services/workspace.service"; -// ui import { LayersIcon, Loader, ToggleSwitch, Tooltip } from "@plane/ui"; -// components -import { EmptyState } from "components/empty-state"; import { CommandPaletteThemeActions, ChangeIssueAssignee, @@ -27,13 +19,21 @@ import { CommandPaletteProjectActions, CommandPaletteWorkspaceSettingsActions, CommandPaletteSearchResults, -} from "components/command-palette"; +} from "@/components/command-palette"; +import { EmptyState } from "@/components/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; +import { ISSUE_DETAILS } from "@/constants/fetch-keys"; +import { useApplication, useEventTracker, useProject } from "@/hooks/store"; +import useDebounce from "@/hooks/use-debounce"; +import { usePlatformOS } from "@/hooks/use-platform-os"; +// services +import { IssueService } from "@/services/issue"; +import { WorkspaceService } from "@/services/workspace.service"; +// ui +// components // types -import { IWorkspaceSearchResults } from "@plane/types"; // fetch-keys // constants -import { EmptyStateType } from "constants/empty-state"; -import { ISSUE_DETAILS } from "constants/fetch-keys"; const workspaceService = new WorkspaceService(); const issueService = new IssueService(); diff --git a/web/components/command-palette/command-palette.tsx b/web/components/command-palette/command-palette.tsx index 0d02614ae..8d162f6ab 100644 --- a/web/components/command-palette/command-palette.tsx +++ b/web/components/command-palette/command-palette.tsx @@ -5,26 +5,26 @@ import useSWR from "swr"; // hooks import { TOAST_TYPE, setToast } from "@plane/ui"; -import { CommandModal, ShortcutsModal } from "components/command-palette"; +import { CommandModal, ShortcutsModal } from "@/components/command-palette"; // ui // components -import { BulkDeleteIssuesModal } from "components/core"; -import { CycleCreateUpdateModal } from "components/cycles"; -import { CreateUpdateIssueModal, DeleteIssueModal } from "components/issues"; -import { CreateUpdateModuleModal } from "components/modules"; -import { CreateUpdatePageModal } from "components/pages"; -import { CreateProjectModal } from "components/project"; -import { CreateUpdateProjectViewModal } from "components/views"; +import { BulkDeleteIssuesModal } from "@/components/core"; +import { CycleCreateUpdateModal } from "@/components/cycles"; +import { CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; +import { CreateUpdateModuleModal } from "@/components/modules"; +import { CreateUpdatePageModal } from "@/components/pages"; +import { CreateProjectModal } from "@/components/project"; +import { CreateUpdateProjectViewModal } from "@/components/views"; // helpers // services // fetch keys -import { ISSUE_DETAILS } from "constants/fetch-keys"; -import { EIssuesStoreType } from "constants/issue"; -import { copyTextToClipboard } from "helpers/string.helper"; -import { useApplication, useEventTracker, useIssues, useUser } from "hooks/store"; -import { IssueService } from "services/issue"; -import { EUserProjectRoles } from "constants/project"; -import { EUserWorkspaceRoles } from "constants/workspace"; +import { ISSUE_DETAILS } from "@/constants/fetch-keys"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; +import { copyTextToClipboard } from "@/helpers/string.helper"; +import { useApplication, useEventTracker, useIssues, useUser } from "@/hooks/store"; +import { IssueService } from "@/services/issue"; // services const issueService = new IssueService(); diff --git a/web/components/command-palette/helpers.tsx b/web/components/command-palette/helpers.tsx index 2d6a38c71..653c2eef0 100644 --- a/web/components/command-palette/helpers.tsx +++ b/web/components/command-palette/helpers.tsx @@ -1,12 +1,12 @@ // types import { Briefcase, FileText, LayoutGrid } from "lucide-react"; -import { ContrastIcon, DiceIcon, LayersIcon, PhotoFilterIcon } from "@plane/ui"; import { IWorkspaceDefaultSearchResult, IWorkspaceIssueSearchResult, IWorkspaceProjectSearchResult, IWorkspaceSearchResult, } from "@plane/types"; +import { ContrastIcon, DiceIcon, LayersIcon, PhotoFilterIcon } from "@plane/ui"; export const commandGroups: { [key: string]: { diff --git a/web/components/command-palette/shortcuts-modal/commands-list.tsx b/web/components/command-palette/shortcuts-modal/commands-list.tsx index 2c8b87b05..3c327eb8b 100644 --- a/web/components/command-palette/shortcuts-modal/commands-list.tsx +++ b/web/components/command-palette/shortcuts-modal/commands-list.tsx @@ -1,6 +1,6 @@ import { Command } from "lucide-react"; // helpers -import { substringMatch } from "helpers/string.helper"; +import { substringMatch } from "@/helpers/string.helper"; type Props = { searchQuery: string; diff --git a/web/components/command-palette/shortcuts-modal/modal.tsx b/web/components/command-palette/shortcuts-modal/modal.tsx index 97a9c9891..e1fd67057 100644 --- a/web/components/command-palette/shortcuts-modal/modal.tsx +++ b/web/components/command-palette/shortcuts-modal/modal.tsx @@ -1,9 +1,9 @@ import { FC, useState, Fragment } from "react"; -import { Dialog, Transition } from "@headlessui/react"; import { Search, X } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; // components import { Input } from "@plane/ui"; -import { ShortcutCommandsList } from "components/command-palette"; +import { ShortcutCommandsList } from "@/components/command-palette"; // ui type Props = { diff --git a/web/components/common/breadcrumb-link.tsx b/web/components/common/breadcrumb-link.tsx index 6fdffb790..f982fc508 100644 --- a/web/components/common/breadcrumb-link.tsx +++ b/web/components/common/breadcrumb-link.tsx @@ -1,6 +1,6 @@ import Link from "next/link"; import { Tooltip } from "@plane/ui"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { label?: string; diff --git a/web/components/common/product-updates-modal.tsx b/web/components/common/product-updates-modal.tsx index 20b8b815e..06804ed82 100644 --- a/web/components/common/product-updates-modal.tsx +++ b/web/components/common/product-updates-modal.tsx @@ -1,16 +1,16 @@ import React from "react"; import useSWR from "swr"; // headless ui +import { X } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // services // components -import { X } from "lucide-react"; import { Loader } from "@plane/ui"; -import { MarkdownRenderer } from "components/ui"; +import { MarkdownRenderer } from "@/components/ui"; // icons // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -import { WorkspaceService } from "services/workspace.service"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { WorkspaceService } from "@/services/workspace.service"; type Props = { isOpen: boolean; diff --git a/web/components/core/activity.tsx b/web/components/core/activity.tsx index 7ec59a073..b60152d08 100644 --- a/web/components/core/activity.tsx +++ b/web/components/core/activity.tsx @@ -1,7 +1,6 @@ import { useEffect } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -import { usePlatformOS } from "hooks/use-platform-os"; // store hooks // icons import { @@ -19,13 +18,14 @@ import { MessageSquareIcon, UsersIcon, } from "lucide-react"; +import { IIssueActivity } from "@plane/types"; import { Tooltip, BlockedIcon, BlockerIcon, RelatedIcon, LayersIcon, DiceIcon } from "@plane/ui"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -import { capitalizeFirstLetter } from "helpers/string.helper"; -import { useEstimate, useLabel } from "hooks/store"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { capitalizeFirstLetter } from "@/helpers/string.helper"; +import { useEstimate, useLabel } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // types -import { IIssueActivity } from "@plane/types"; export const IssueLink = ({ activity }: { activity: IIssueActivity }) => { const router = useRouter(); diff --git a/web/components/core/filters/date-filter-modal.tsx b/web/components/core/filters/date-filter-modal.tsx index 1b7b7aaed..35b511464 100644 --- a/web/components/core/filters/date-filter-modal.tsx +++ b/web/components/core/filters/date-filter-modal.tsx @@ -1,14 +1,15 @@ import { Fragment } from "react"; + import { DayPicker } from "react-day-picker"; import { Controller, useForm } from "react-hook-form"; -import { Dialog, Transition } from "@headlessui/react"; + import { X } from "lucide-react"; -// components -// ui +import { Dialog, Transition } from "@headlessui/react"; + import { Button } from "@plane/ui"; -// helpers + +import { renderFormattedPayloadDate, renderFormattedDate, getDate } from "@/helpers/date-time.helper"; import { DateFilterSelect } from "./date-filter-select"; -import { renderFormattedPayloadDate, renderFormattedDate, getDate } from "helpers/date-time.helper"; type Props = { title: string; diff --git a/web/components/core/image-picker-popover.tsx b/web/components/core/image-picker-popover.tsx index 3db409bb0..f8c247ce7 100644 --- a/web/components/core/image-picker-popover.tsx +++ b/web/components/core/image-picker-popover.tsx @@ -8,12 +8,12 @@ import useSWR from "swr"; import { Tab, Popover } from "@headlessui/react"; // hooks import { Button, Input, Loader } from "@plane/ui"; -import { MAX_FILE_SIZE } from "constants/common"; -import { useApplication, useWorkspace } from "hooks/store"; -import { useDropdownKeyDown } from "hooks/use-dropdown-key-down"; +import { MAX_FILE_SIZE } from "@/constants/common"; +import { useApplication, useWorkspace } from "@/hooks/store"; +import { useDropdownKeyDown } from "@/hooks/use-dropdown-key-down"; // services -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { FileService } from "services/file.service"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +import { FileService } from "@/services/file.service"; // hooks // components // constants diff --git a/web/components/core/modals/bulk-delete-issues-modal-item.tsx b/web/components/core/modals/bulk-delete-issues-modal-item.tsx index 8fa8dabda..8b03c311b 100644 --- a/web/components/core/modals/bulk-delete-issues-modal-item.tsx +++ b/web/components/core/modals/bulk-delete-issues-modal-item.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; import { Combobox } from "@headlessui/react"; // hooks -import { useProjectState } from "hooks/store"; +import { useProjectState } from "@/hooks/store"; export const BulkDeleteIssuesModalItem: React.FC = observer((props) => { const { issue, delete_issue_ids, identifier } = props; diff --git a/web/components/core/modals/bulk-delete-issues-modal.tsx b/web/components/core/modals/bulk-delete-issues-modal.tsx index 05b98176c..59dcc574e 100644 --- a/web/components/core/modals/bulk-delete-issues-modal.tsx +++ b/web/components/core/modals/bulk-delete-issues-modal.tsx @@ -3,24 +3,24 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { SubmitHandler, useForm } from "react-hook-form"; import useSWR from "swr"; +import { Search } from "lucide-react"; import { Combobox, Dialog, Transition } from "@headlessui/react"; // services -import { IssueService } from "services/issue"; -// ui -import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -// icons -import { Search } from "lucide-react"; -// types import { IUser, TIssue } from "@plane/types"; +import { Button, TOAST_TYPE, setToast } from "@plane/ui"; +import { EmptyState } from "@/components/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; +import { PROJECT_ISSUES_LIST } from "@/constants/fetch-keys"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useProject } from "@/hooks/store"; +import { IssueService } from "@/services/issue"; +// ui +// icons +// types // store hooks -import { useIssues, useProject } from "hooks/store"; // components import { BulkDeleteIssuesModalItem } from "./bulk-delete-issues-modal-item"; -import { EmptyState } from "components/empty-state"; // constants -import { PROJECT_ISSUES_LIST } from "constants/fetch-keys"; -import { EIssuesStoreType } from "constants/issue"; -import { EmptyStateType } from "constants/empty-state"; type FormInput = { delete_issue_ids: string[]; diff --git a/web/components/core/modals/existing-issues-list-modal.tsx b/web/components/core/modals/existing-issues-list-modal.tsx index b3f81b6ee..ec7dbcb07 100644 --- a/web/components/core/modals/existing-issues-list-modal.tsx +++ b/web/components/core/modals/existing-issues-list-modal.tsx @@ -1,17 +1,17 @@ import React, { useEffect, useState } from "react"; -import { Combobox, Dialog, Transition } from "@headlessui/react"; import { Rocket, Search, X } from "lucide-react"; +import { Combobox, Dialog, Transition } from "@headlessui/react"; +import { ISearchIssueResponse, TProjectIssuesSearchParams } from "@plane/types"; // services -import { ProjectService } from "services/project"; +import { Button, Loader, ToggleSwitch, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; +import useDebounce from "@/hooks/use-debounce"; +import { usePlatformOS } from "@/hooks/use-platform-os"; +import { ProjectService } from "@/services/project"; // hooks -import useDebounce from "hooks/use-debounce"; -import { usePlatformOS } from "hooks/use-platform-os"; // components import { IssueSearchModalEmptyState } from "./issue-search-modal-empty-state"; // ui -import { Button, Loader, ToggleSwitch, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { ISearchIssueResponse, TProjectIssuesSearchParams } from "@plane/types"; type Props = { workspaceSlug: string | undefined; diff --git a/web/components/core/modals/gpt-assistant-popover.tsx b/web/components/core/modals/gpt-assistant-popover.tsx index c1183c9c4..3348272d6 100644 --- a/web/components/core/modals/gpt-assistant-popover.tsx +++ b/web/components/core/modals/gpt-assistant-popover.tsx @@ -4,14 +4,14 @@ import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; // services import { usePopper } from "react-popper"; // ui +import { AlertCircle } from "lucide-react"; +import { Popover, Transition } from "@headlessui/react"; +import { RichReadOnlyEditorWithRef } from "@plane/rich-text-editor"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // icons -import { AlertCircle } from "lucide-react"; // components -import { RichReadOnlyEditorWithRef } from "@plane/rich-text-editor"; -import { Popover, Transition } from "@headlessui/react"; // hooks -import { AIService } from "services/ai.service"; +import { AIService } from "@/services/ai.service"; type Props = { isOpen: boolean; @@ -173,8 +173,8 @@ export const GptAssistantPopover: React.FC = (props) => { const generateResponseButtonText = isSubmitting ? "Generating response..." : response === "" - ? "Generate response" - : "Generate again"; + ? "Generate response" + : "Generate again"; return ( diff --git a/web/components/core/modals/issue-search-modal-empty-state.tsx b/web/components/core/modals/issue-search-modal-empty-state.tsx index 00dcc03bb..578d39a60 100644 --- a/web/components/core/modals/issue-search-modal-empty-state.tsx +++ b/web/components/core/modals/issue-search-modal-empty-state.tsx @@ -1,10 +1,10 @@ import React from "react"; // components -import { EmptyState } from "components/empty-state"; -// types import { ISearchIssueResponse } from "@plane/types"; +import { EmptyState } from "@/components/empty-state"; +// types +import { EmptyStateType } from "@/constants/empty-state"; // constants -import { EmptyStateType } from "constants/empty-state"; interface EmptyStateProps { issues: ISearchIssueResponse[]; @@ -29,8 +29,8 @@ export const IssueSearchModalEmptyState: React.FC = ({ issues.length === 0 && searchTerm !== "" && debouncedSearchTerm !== "" && !isSearching ? renderEmptyState(EmptyStateType.ISSUE_RELATION_SEARCH_EMPTY_STATE) : issues.length === 0 - ? renderEmptyState(EmptyStateType.ISSUE_RELATION_EMPTY_STATE) - : null; + ? renderEmptyState(EmptyStateType.ISSUE_RELATION_EMPTY_STATE) + : null; return emptyState; }; diff --git a/web/components/core/modals/link-modal.tsx b/web/components/core/modals/link-modal.tsx index 70324b4b7..7b0040477 100644 --- a/web/components/core/modals/link-modal.tsx +++ b/web/components/core/modals/link-modal.tsx @@ -4,10 +4,10 @@ import { FC, useEffect, Fragment } from "react"; import { Controller, useForm } from "react-hook-form"; // headless ui import { Dialog, Transition } from "@headlessui/react"; +import type { IIssueLink, ILinkDetails, ModuleLink } from "@plane/types"; // ui import { Button, Input } from "@plane/ui"; // types -import type { IIssueLink, ILinkDetails, ModuleLink } from "@plane/types"; type Props = { isOpen: boolean; diff --git a/web/components/core/modals/user-image-upload-modal.tsx b/web/components/core/modals/user-image-upload-modal.tsx index 7f41b8225..cf43595a0 100644 --- a/web/components/core/modals/user-image-upload-modal.tsx +++ b/web/components/core/modals/user-image-upload-modal.tsx @@ -1,15 +1,15 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useDropzone } from "react-dropzone"; +import { UserCircle2 } from "lucide-react"; import { Transition, Dialog } from "@headlessui/react"; // hooks -import { UserCircle2 } from "lucide-react"; import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { MAX_FILE_SIZE } from "constants/common"; -import { useApplication } from "hooks/store"; +import { MAX_FILE_SIZE } from "@/constants/common"; +import { useApplication } from "@/hooks/store"; // services -import { FileService } from "services/file.service"; +import { FileService } from "@/services/file.service"; // ui // icons // constants diff --git a/web/components/core/modals/workspace-image-upload-modal.tsx b/web/components/core/modals/workspace-image-upload-modal.tsx index 9c1a8363b..8fbadf371 100644 --- a/web/components/core/modals/workspace-image-upload-modal.tsx +++ b/web/components/core/modals/workspace-image-upload-modal.tsx @@ -2,14 +2,14 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { useDropzone } from "react-dropzone"; +import { UserCircle2 } from "lucide-react"; import { Transition, Dialog } from "@headlessui/react"; // hooks -import { UserCircle2 } from "lucide-react"; import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { MAX_FILE_SIZE } from "constants/common"; -import { useApplication, useWorkspace } from "hooks/store"; +import { MAX_FILE_SIZE } from "@/constants/common"; +import { useApplication, useWorkspace } from "@/hooks/store"; // services -import { FileService } from "services/file.service"; +import { FileService } from "@/services/file.service"; // ui // icons // constants diff --git a/web/components/core/render-if-visible-HOC.tsx b/web/components/core/render-if-visible-HOC.tsx index f0e9f59b4..585ba7769 100644 --- a/web/components/core/render-if-visible-HOC.tsx +++ b/web/components/core/render-if-visible-HOC.tsx @@ -1,5 +1,5 @@ import React, { useState, useRef, useEffect, ReactNode, MutableRefObject } from "react"; -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; type Props = { defaultHeight?: string; diff --git a/web/components/core/sidebar/links-list.tsx b/web/components/core/sidebar/links-list.tsx index 7b33f6f12..9556eb1aa 100644 --- a/web/components/core/sidebar/links-list.tsx +++ b/web/components/core/sidebar/links-list.tsx @@ -1,15 +1,15 @@ import { observer } from "mobx-react"; // icons import { Pencil, Trash2, LinkIcon } from "lucide-react"; +import { ILinkDetails, UserAuth } from "@plane/types"; // ui import { ExternalLinkIcon, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // helpers -import { calculateTimeAgo } from "helpers/date-time.helper"; +import { calculateTimeAgo } from "@/helpers/date-time.helper"; // hooks -import { useMember } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useMember } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // types -import { ILinkDetails, UserAuth } from "@plane/types"; type Props = { links: ILinkDetails[]; diff --git a/web/components/core/sidebar/progress-chart.tsx b/web/components/core/sidebar/progress-chart.tsx index b0ff4ba73..a1c5f3a13 100644 --- a/web/components/core/sidebar/progress-chart.tsx +++ b/web/components/core/sidebar/progress-chart.tsx @@ -1,11 +1,11 @@ import React from "react"; import { eachDayOfInterval, isValid } from "date-fns"; -// ui -import { LineGraph } from "components/ui"; -// helpers -import { getDate, renderFormattedDateWithoutYear } from "helpers/date-time.helper"; -//types import { TCompletionChartDistribution } from "@plane/types"; +// ui +import { LineGraph } from "@/components/ui"; +// helpers +import { getDate, renderFormattedDateWithoutYear } from "@/helpers/date-time.helper"; +//types type Props = { distribution: TCompletionChartDistribution; diff --git a/web/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx b/web/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx index 880cf8146..dcc963946 100644 --- a/web/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx +++ b/web/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Menu } from "lucide-react"; -import { useApplication } from "hooks/store"; +import { useApplication } from "@/hooks/store"; type Props = { onClick?: () => void; diff --git a/web/components/core/sidebar/sidebar-progress-stats.tsx b/web/components/core/sidebar/sidebar-progress-stats.tsx index 5fd576081..21b508e28 100644 --- a/web/components/core/sidebar/sidebar-progress-stats.tsx +++ b/web/components/core/sidebar/sidebar-progress-stats.tsx @@ -3,16 +3,6 @@ import React from "react"; import Image from "next/image"; // headless ui import { Tab } from "@headlessui/react"; -// hooks -import { Avatar, StateGroupIcon } from "@plane/ui"; -import { SingleProgressStats } from "components/core"; -import useLocalStorage from "hooks/use-local-storage"; -// images -import emptyLabel from "public/empty-state/empty_label.svg"; -import emptyMembers from "public/empty-state/empty_members.svg"; -// components -// ui -// types import { IModule, TAssigneesDistribution, @@ -20,6 +10,16 @@ import { TLabelsDistribution, TStateGroups, } from "@plane/types"; +// hooks +import { Avatar, StateGroupIcon } from "@plane/ui"; +import { SingleProgressStats } from "@/components/core"; +import useLocalStorage from "@/hooks/use-local-storage"; +// images +import emptyLabel from "public/empty-state/empty_label.svg"; +import emptyMembers from "public/empty-state/empty_members.svg"; +// components +// ui +// types type Props = { distribution: { diff --git a/web/components/core/theme/color-picker-input.tsx b/web/components/core/theme/color-picker-input.tsx index 03ac06eae..4f933a462 100644 --- a/web/components/core/theme/color-picker-input.tsx +++ b/web/components/core/theme/color-picker-input.tsx @@ -13,12 +13,12 @@ import { } from "react-hook-form"; // react-color // component -import { Popover, Transition } from "@headlessui/react"; import { Palette } from "lucide-react"; +import { Popover, Transition } from "@headlessui/react"; +import { IUserTheme } from "@plane/types"; import { Input } from "@plane/ui"; // icons // types -import { IUserTheme } from "@plane/types"; type Props = { name: keyof IUserTheme; diff --git a/web/components/core/theme/custom-theme-selector.tsx b/web/components/core/theme/custom-theme-selector.tsx index b9e94a2d2..cd3fa874c 100644 --- a/web/components/core/theme/custom-theme-selector.tsx +++ b/web/components/core/theme/custom-theme-selector.tsx @@ -1,12 +1,12 @@ import { observer } from "mobx-react-lite"; import { useTheme } from "next-themes"; import { Controller, useForm } from "react-hook-form"; +import { IUserTheme } from "@plane/types"; // hooks import { Button, InputColorPicker } from "@plane/ui"; -import { useUser } from "hooks/store"; +import { useUser } from "@/hooks/store"; // ui // types -import { IUserTheme } from "@plane/types"; const inputRules = { required: "Background color is required", diff --git a/web/components/core/theme/theme-switch.tsx b/web/components/core/theme/theme-switch.tsx index 428e6930b..6eb1c7b7d 100644 --- a/web/components/core/theme/theme-switch.tsx +++ b/web/components/core/theme/theme-switch.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; // constants import { CustomSelect } from "@plane/ui"; -import { THEME_OPTIONS, I_THEME_OPTION } from "constants/themes"; +import { THEME_OPTIONS, I_THEME_OPTION } from "@/constants/themes"; // ui type Props = { diff --git a/web/components/cycles/active-cycle/root.tsx b/web/components/cycles/active-cycle/root.tsx index d11c694d5..83acd1521 100644 --- a/web/components/cycles/active-cycle/root.tsx +++ b/web/components/cycles/active-cycle/root.tsx @@ -3,10 +3,8 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import useSWR from "swr"; // hooks -import { useCycle, useCycleFilter, useIssues, useMember, useProject } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; -// ui -import { SingleProgressStats } from "components/core"; +import { ArrowRight, CalendarCheck, CalendarDays, Star, Target } from "lucide-react"; +import { ICycle, TCycleGroups } from "@plane/types"; import { AvatarGroup, Loader, @@ -20,29 +18,31 @@ import { setPromiseToast, getButtonStyling, } from "@plane/ui"; +import { SingleProgressStats } from "@/components/core"; +// ui // components -import ProgressChart from "components/core/sidebar/progress-chart"; -import { ActiveCycleProgressStats, UpcomingCyclesList } from "components/cycles"; -import { StateDropdown } from "components/dropdowns"; -import { EmptyState } from "components/empty-state"; +import ProgressChart from "@/components/core/sidebar/progress-chart"; +import { ActiveCycleProgressStats, UpcomingCyclesList } from "@/components/cycles"; +import { StateDropdown } from "@/components/dropdowns"; +import { EmptyState } from "@/components/empty-state"; // icons -import { ArrowRight, CalendarCheck, CalendarDays, Star, Target } from "lucide-react"; // helpers +// types +// constants +import { CYCLE_STATE_GROUPS_DETAILS } from "@/constants/cycle"; +import { EmptyStateType } from "@/constants/empty-state"; +import { CYCLE_ISSUES_WITH_PARAMS } from "@/constants/fetch-keys"; +import { EIssuesStoreType } from "@/constants/issue"; +import { cn } from "@/helpers/common.helper"; import { renderFormattedDate, findHowManyDaysLeft, renderFormattedDateWithoutYear, getDate, -} from "helpers/date-time.helper"; -import { truncateText } from "helpers/string.helper"; -import { cn } from "helpers/common.helper"; -// types -import { ICycle, TCycleGroups } from "@plane/types"; -// constants -import { EIssuesStoreType } from "constants/issue"; -import { CYCLE_ISSUES_WITH_PARAMS } from "constants/fetch-keys"; -import { CYCLE_STATE_GROUPS_DETAILS } from "constants/cycle"; -import { EmptyStateType } from "constants/empty-state"; +} from "@/helpers/date-time.helper"; +import { truncateText } from "@/helpers/string.helper"; +import { useCycle, useCycleFilter, useIssues, useMember, useProject } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; interface IActiveCycleDetails { workspaceSlug: string; diff --git a/web/components/cycles/active-cycle/stats.tsx b/web/components/cycles/active-cycle/stats.tsx index 9ccd11077..7e7a97e7d 100644 --- a/web/components/cycles/active-cycle/stats.tsx +++ b/web/components/cycles/active-cycle/stats.tsx @@ -1,13 +1,13 @@ import React, { Fragment } from "react"; import { Tab } from "@headlessui/react"; +import { ICycle } from "@plane/types"; // hooks import { Avatar } from "@plane/ui"; -import { SingleProgressStats } from "components/core"; -import useLocalStorage from "hooks/use-local-storage"; +import { SingleProgressStats } from "@/components/core"; +import useLocalStorage from "@/hooks/use-local-storage"; // components // ui // types -import { ICycle } from "@plane/types"; type Props = { cycle: ICycle; diff --git a/web/components/cycles/active-cycle/upcoming-cycles-list-item.tsx b/web/components/cycles/active-cycle/upcoming-cycles-list-item.tsx index af2b02726..2e48a95b4 100644 --- a/web/components/cycles/active-cycle/upcoming-cycles-list-item.tsx +++ b/web/components/cycles/active-cycle/upcoming-cycles-list-item.tsx @@ -1,17 +1,17 @@ +import { observer } from "mobx-react"; import Link from "next/link"; import { useRouter } from "next/router"; -import { observer } from "mobx-react"; import { Star, User2 } from "lucide-react"; // hooks -import { useCycle, useEventTracker, useMember } from "hooks/store"; -// components -import { CycleQuickActions } from "components/cycles"; -// ui import { Avatar, AvatarGroup, setPromiseToast } from "@plane/ui"; +import { CycleQuickActions } from "@/components/cycles"; +import { CYCLE_FAVORITED, CYCLE_UNFAVORITED } from "@/constants/event-tracker"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { useCycle, useEventTracker, useMember } from "@/hooks/store"; +// components +// ui // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; // constants -import { CYCLE_FAVORITED, CYCLE_UNFAVORITED } from "constants/event-tracker"; type Props = { cycleId: string; diff --git a/web/components/cycles/active-cycle/upcoming-cycles-list.tsx b/web/components/cycles/active-cycle/upcoming-cycles-list.tsx index 60fa9bb30..c2d8b2388 100644 --- a/web/components/cycles/active-cycle/upcoming-cycles-list.tsx +++ b/web/components/cycles/active-cycle/upcoming-cycles-list.tsx @@ -1,8 +1,8 @@ import { observer } from "mobx-react"; // hooks -import { useCycle } from "hooks/store"; +import { UpcomingCycleListItem } from "@/components/cycles"; +import { useCycle } from "@/hooks/store"; // components -import { UpcomingCycleListItem } from "components/cycles"; export const UpcomingCyclesList = observer(() => { // store hooks diff --git a/web/components/cycles/applied-filters/date.tsx b/web/components/cycles/applied-filters/date.tsx index 84ca45692..fa6f94c50 100644 --- a/web/components/cycles/applied-filters/date.tsx +++ b/web/components/cycles/applied-filters/date.tsx @@ -1,10 +1,10 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -import { capitalizeFirstLetter } from "helpers/string.helper"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { capitalizeFirstLetter } from "@/helpers/string.helper"; // constants -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; type Props = { editable: boolean | undefined; diff --git a/web/components/cycles/applied-filters/root.tsx b/web/components/cycles/applied-filters/root.tsx index 39d2ae827..270beadfd 100644 --- a/web/components/cycles/applied-filters/root.tsx +++ b/web/components/cycles/applied-filters/root.tsx @@ -1,15 +1,15 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; -// hooks -import { useUser } from "hooks/store"; -// components -import { AppliedDateFilters, AppliedStatusFilters } from "components/cycles"; -// helpers -import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper"; -// types import { TCycleFilters } from "@plane/types"; +// hooks +import { AppliedDateFilters, AppliedStatusFilters } from "@/components/cycles"; +import { EUserProjectRoles } from "@/constants/project"; +import { replaceUnderscoreIfSnakeCase } from "@/helpers/string.helper"; +import { useUser } from "@/hooks/store"; +// components +// helpers +// types // constants -import { EUserProjectRoles } from "constants/project"; type Props = { appliedFilters: TCycleFilters; diff --git a/web/components/cycles/applied-filters/status.tsx b/web/components/cycles/applied-filters/status.tsx index 1eb28db74..83349948c 100644 --- a/web/components/cycles/applied-filters/status.tsx +++ b/web/components/cycles/applied-filters/status.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; -import { CYCLE_STATUS } from "constants/cycle"; -import { cn } from "helpers/common.helper"; +import { CYCLE_STATUS } from "@/constants/cycle"; +import { cn } from "@/helpers/common.helper"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/cycles/board/cycles-board-card.tsx b/web/components/cycles/board/cycles-board-card.tsx index c1558c5b3..8426fe313 100644 --- a/web/components/cycles/board/cycles-board-card.tsx +++ b/web/components/cycles/board/cycles-board-card.tsx @@ -2,25 +2,25 @@ import { FC, MouseEvent } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { useRouter } from "next/router"; -// hooks -import { usePlatformOS } from "hooks/use-platform-os"; // components import { Info, Star } from "lucide-react"; +import type { TCycleGroups } from "@plane/types"; import { Avatar, AvatarGroup, Tooltip, LayersIcon, CycleGroupIcon, setPromiseToast } from "@plane/ui"; -import { CycleQuickActions } from "components/cycles"; +import { CycleQuickActions } from "@/components/cycles"; +// hooks // ui // icons // helpers -import { findHowManyDaysLeft, getDate, renderFormattedDate } from "helpers/date-time.helper"; -// import { copyTextToClipboard } from "helpers/string.helper"; +// import { copyTextToClipboard } from "@/helpers/string.helper"; // constants -import { CYCLE_STATUS } from "constants/cycle"; -import { CYCLE_FAVORITED, CYCLE_UNFAVORITED } from "constants/event-tracker"; -import { EUserWorkspaceRoles } from "constants/workspace"; +import { CYCLE_STATUS } from "@/constants/cycle"; +import { CYCLE_FAVORITED, CYCLE_UNFAVORITED } from "@/constants/event-tracker"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; +import { findHowManyDaysLeft, getDate, renderFormattedDate } from "@/helpers/date-time.helper"; // constants -import { useEventTracker, useCycle, useUser, useMember } from "hooks/store"; +import { useEventTracker, useCycle, useUser, useMember } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; //.types -import { TCycleGroups } from "@plane/types"; export interface ICyclesBoardCard { workspaceSlug: string; @@ -69,8 +69,8 @@ export const CyclesBoardCard: FC = observer((props) => { ? cycleTotalIssues === 0 ? "0 Issue" : cycleTotalIssues === cycleDetails.completed_issues - ? `${cycleTotalIssues} Issue${cycleTotalIssues > 1 ? "s" : ""}` - : `${cycleDetails.completed_issues}/${cycleTotalIssues} Issues` + ? `${cycleTotalIssues} Issue${cycleTotalIssues > 1 ? "s" : ""}` + : `${cycleDetails.completed_issues}/${cycleTotalIssues} Issues` : "0 Issue"; const handleAddToFavorites = (e: MouseEvent) => { diff --git a/web/components/cycles/board/cycles-board-map.tsx b/web/components/cycles/board/cycles-board-map.tsx index 4218c0d1c..3e83ca755 100644 --- a/web/components/cycles/board/cycles-board-map.tsx +++ b/web/components/cycles/board/cycles-board-map.tsx @@ -1,5 +1,5 @@ // components -import { CyclesBoardCard } from "components/cycles"; +import { CyclesBoardCard } from "@/components/cycles"; type Props = { cycleIds: string[]; diff --git a/web/components/cycles/board/root.tsx b/web/components/cycles/board/root.tsx index e9fde3428..7796f3efd 100644 --- a/web/components/cycles/board/root.tsx +++ b/web/components/cycles/board/root.tsx @@ -1,11 +1,11 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; -import { Disclosure } from "@headlessui/react"; import { ChevronRight } from "lucide-react"; +import { Disclosure } from "@headlessui/react"; // components -import { CyclePeekOverview, CyclesBoardMap } from "components/cycles"; +import { CyclePeekOverview, CyclesBoardMap } from "@/components/cycles"; // helpers -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; export interface ICyclesBoard { completedCycleIds: string[]; diff --git a/web/components/cycles/cycle-mobile-header.tsx b/web/components/cycles/cycle-mobile-header.tsx index 9fbc96df3..8c168cbaa 100644 --- a/web/components/cycles/cycle-mobile-header.tsx +++ b/web/components/cycles/cycle-mobile-header.tsx @@ -3,14 +3,14 @@ import router from "next/router"; //components // icons import { Calendar, ChevronDown, Kanban, List } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; import { CustomMenu } from "@plane/ui"; // hooks // constants -import { ProjectAnalyticsModal } from "components/analytics"; -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT, ISSUE_LAYOUTS } from "constants/issue"; -import { useIssues, useCycle, useProjectState, useLabel, useMember } from "hooks/store"; -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; +import { ProjectAnalyticsModal } from "@/components/analytics"; +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT, ISSUE_LAYOUTS } from "@/constants/issue"; +import { useIssues, useCycle, useProjectState, useLabel, useMember } from "@/hooks/store"; export const CycleMobileHeader = () => { const [analyticsModal, setAnalyticsModal] = useState(false); diff --git a/web/components/cycles/cycle-peek-overview.tsx b/web/components/cycles/cycle-peek-overview.tsx index b15e89ab2..4b88d8d7b 100644 --- a/web/components/cycles/cycle-peek-overview.tsx +++ b/web/components/cycles/cycle-peek-overview.tsx @@ -2,7 +2,7 @@ import React, { useEffect } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { useCycle } from "hooks/store"; +import { useCycle } from "@/hooks/store"; // components import { CycleDetailsSidebar } from "./sidebar"; diff --git a/web/components/cycles/cycles-list-mobile-header.tsx b/web/components/cycles/cycles-list-mobile-header.tsx index 48fb359bc..590cb794f 100644 --- a/web/components/cycles/cycles-list-mobile-header.tsx +++ b/web/components/cycles/cycles-list-mobile-header.tsx @@ -1,12 +1,12 @@ import { observer } from "mobx-react"; // ui +import { List } from "lucide-react"; import { CustomMenu } from "@plane/ui"; // icon -import { List } from "lucide-react"; // constants -import { CYCLE_VIEW_LAYOUTS } from "constants/cycle"; +import { CYCLE_VIEW_LAYOUTS } from "@/constants/cycle"; // hooks -import { useCycleFilter, useProject } from "hooks/store"; +import { useCycleFilter, useProject } from "@/hooks/store"; const CyclesListMobileHeader = observer(() => { const { currentProjectDetails } = useProject(); diff --git a/web/components/cycles/cycles-view-header.tsx b/web/components/cycles/cycles-view-header.tsx index 737d36f3f..c687c965e 100644 --- a/web/components/cycles/cycles-view-header.tsx +++ b/web/components/cycles/cycles-view-header.tsx @@ -1,22 +1,22 @@ import { useCallback, useRef, useState } from "react"; import { observer } from "mobx-react"; -import { Tab } from "@headlessui/react"; import { ListFilter, Search, X } from "lucide-react"; -// hooks -import { useCycleFilter } from "hooks/store"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { usePlatformOS } from "hooks/use-platform-os"; -// components -import { CycleFiltersSelection } from "components/cycles"; -import { FiltersDropdown } from "components/issues"; -// ui -import { Tooltip } from "@plane/ui"; -// helpers -import { cn } from "helpers/common.helper"; -// types +import { Tab } from "@headlessui/react"; import { TCycleFilters } from "@plane/types"; +// hooks +import { Tooltip } from "@plane/ui"; +import { CycleFiltersSelection } from "@/components/cycles"; +import { FiltersDropdown } from "@/components/issues"; +import { CYCLE_TABS_LIST, CYCLE_VIEW_LAYOUTS } from "@/constants/cycle"; +import { cn } from "@/helpers/common.helper"; +import { useCycleFilter } from "@/hooks/store"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +import { usePlatformOS } from "@/hooks/use-platform-os"; +// components +// ui +// helpers +// types // constants -import { CYCLE_TABS_LIST, CYCLE_VIEW_LAYOUTS } from "constants/cycle"; type Props = { projectId: string; diff --git a/web/components/cycles/cycles-view.tsx b/web/components/cycles/cycles-view.tsx index 447bd048c..ddb45b5e5 100644 --- a/web/components/cycles/cycles-view.tsx +++ b/web/components/cycles/cycles-view.tsx @@ -1,17 +1,17 @@ import { FC } from "react"; -import Image from "next/image"; import { observer } from "mobx-react-lite"; -// hooks -import { useCycle, useCycleFilter } from "hooks/store"; -// components -import { CyclesBoard, CyclesList, CyclesListGanttChartView } from "components/cycles"; -// ui -import { CycleModuleBoardLayout, CycleModuleListLayout, GanttLayoutLoader } from "components/ui"; -// assets -import NameFilterImage from "public/empty-state/cycle/name-filter.svg"; -import AllFiltersImage from "public/empty-state/cycle/all-filters.svg"; -// types +import Image from "next/image"; import { TCycleLayoutOptions } from "@plane/types"; +// hooks +// components +import { CyclesBoard, CyclesList, CyclesListGanttChartView } from "@/components/cycles"; +// ui +import { CycleModuleBoardLayout, CycleModuleListLayout, GanttLayoutLoader } from "@/components/ui"; +import { useCycle, useCycleFilter } from "@/hooks/store"; +// assets +import AllFiltersImage from "public/empty-state/cycle/all-filters.svg"; +import NameFilterImage from "public/empty-state/cycle/name-filter.svg"; +// types export interface ICyclesView { layout: TCycleLayoutOptions; diff --git a/web/components/cycles/delete-modal.tsx b/web/components/cycles/delete-modal.tsx index 0d1cc5921..5b9eb53cd 100644 --- a/web/components/cycles/delete-modal.tsx +++ b/web/components/cycles/delete-modal.tsx @@ -1,15 +1,15 @@ import { Fragment, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -import { Dialog, Transition } from "@headlessui/react"; import { AlertTriangle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import { ICycle } from "@plane/types"; // hooks import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { CYCLE_DELETED } from "constants/event-tracker"; -import { useEventTracker, useCycle } from "hooks/store"; +import { CYCLE_DELETED } from "@/constants/event-tracker"; +import { useEventTracker, useCycle } from "@/hooks/store"; // components // types -import { ICycle } from "@plane/types"; // constants interface ICycleDelete { diff --git a/web/components/cycles/dropdowns/filters/end-date.tsx b/web/components/cycles/dropdowns/filters/end-date.tsx index 0af92da41..699071187 100644 --- a/web/components/cycles/dropdowns/filters/end-date.tsx +++ b/web/components/cycles/dropdowns/filters/end-date.tsx @@ -2,10 +2,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { DateFilterModal } from "components/core"; -import { FilterHeader, FilterOption } from "components/issues"; +import { DateFilterModal } from "@/components/core"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/cycles/dropdowns/filters/root.tsx b/web/components/cycles/dropdowns/filters/root.tsx index d97fcad03..768b8a5dc 100644 --- a/web/components/cycles/dropdowns/filters/root.tsx +++ b/web/components/cycles/dropdowns/filters/root.tsx @@ -1,10 +1,10 @@ import { useState } from "react"; import { observer } from "mobx-react-lite"; import { Search, X } from "lucide-react"; -// components -import { FilterEndDate, FilterStartDate, FilterStatus } from "components/cycles"; -// types import { TCycleFilters, TCycleGroups } from "@plane/types"; +// components +import { FilterEndDate, FilterStartDate, FilterStatus } from "@/components/cycles"; +// types type Props = { filters: TCycleFilters; diff --git a/web/components/cycles/dropdowns/filters/start-date.tsx b/web/components/cycles/dropdowns/filters/start-date.tsx index 3c47eb286..2b55ada35 100644 --- a/web/components/cycles/dropdowns/filters/start-date.tsx +++ b/web/components/cycles/dropdowns/filters/start-date.tsx @@ -2,10 +2,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { DateFilterModal } from "components/core"; -import { FilterHeader, FilterOption } from "components/issues"; +import { DateFilterModal } from "@/components/core"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/cycles/dropdowns/filters/status.tsx b/web/components/cycles/dropdowns/filters/status.tsx index 79e53a5c8..b1f07c0b1 100644 --- a/web/components/cycles/dropdowns/filters/status.tsx +++ b/web/components/cycles/dropdowns/filters/status.tsx @@ -1,11 +1,11 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// types import { TCycleGroups } from "@plane/types"; +// components +import { FilterHeader, FilterOption } from "@/components/issues"; +// types +import { CYCLE_STATUS } from "@/constants/cycle"; // constants -import { CYCLE_STATUS } from "constants/cycle"; type Props = { appliedFilters: TCycleGroups[] | null; diff --git a/web/components/cycles/form.tsx b/web/components/cycles/form.tsx index 17953248a..27b972044 100644 --- a/web/components/cycles/form.tsx +++ b/web/components/cycles/form.tsx @@ -1,15 +1,15 @@ import { useEffect } from "react"; + import { Controller, useForm } from "react-hook-form"; -// components -import { Button, Input, TextArea } from "@plane/ui"; -import { DateRangeDropdown, ProjectDropdown } from "components/dropdowns"; -// ui -// helpers -import { shouldRenderProject } from "helpers/project.helper"; -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -// types import { ICycle } from "@plane/types"; +import { Button, Input, TextArea } from "@plane/ui"; + +import { DateRangeDropdown, ProjectDropdown } from "@/components/dropdowns"; + +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { shouldRenderProject } from "@/helpers/project.helper"; + type Props = { handleFormSubmit: (values: Partial, dirtyFields: any) => Promise; handleClose: () => void; diff --git a/web/components/cycles/gantt-chart/blocks.tsx b/web/components/cycles/gantt-chart/blocks.tsx index e8b09d2f5..acc081b4d 100644 --- a/web/components/cycles/gantt-chart/blocks.tsx +++ b/web/components/cycles/gantt-chart/blocks.tsx @@ -1,13 +1,13 @@ -import Link from "next/link"; import { observer } from "mobx-react"; +import Link from "next/link"; import { useRouter } from "next/router"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // ui import { Tooltip, ContrastIcon } from "@plane/ui"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -import { useApplication, useCycle } from "hooks/store"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { useApplication, useCycle } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { cycleId: string; @@ -35,12 +35,12 @@ export const CycleGanttBlock: React.FC = observer((props) => { cycleStatus === "current" ? "#09a953" : cycleStatus === "upcoming" - ? "#f7ae59" - : cycleStatus === "completed" - ? "#3f76ff" - : cycleStatus === "draft" - ? "rgb(var(--color-text-200))" - : "", + ? "#f7ae59" + : cycleStatus === "completed" + ? "#3f76ff" + : cycleStatus === "draft" + ? "rgb(var(--color-text-200))" + : "", }} onClick={() => router.push(`/${workspaceSlug}/projects/${cycleDetails?.project_id}/cycles/${cycleDetails?.id}`)} > @@ -87,12 +87,12 @@ export const CycleGanttSidebarBlock: React.FC = observer((props) => { cycleStatus === "current" ? "#09a953" : cycleStatus === "upcoming" - ? "#f7ae59" - : cycleStatus === "completed" - ? "#3f76ff" - : cycleStatus === "draft" - ? "rgb(var(--color-text-200))" - : "" + ? "#f7ae59" + : cycleStatus === "completed" + ? "#3f76ff" + : cycleStatus === "draft" + ? "rgb(var(--color-text-200))" + : "" }`} />
{cycleDetails?.name}
diff --git a/web/components/cycles/gantt-chart/cycles-list-layout.tsx b/web/components/cycles/gantt-chart/cycles-list-layout.tsx index 6c439331d..6d84f73f0 100644 --- a/web/components/cycles/gantt-chart/cycles-list-layout.tsx +++ b/web/components/cycles/gantt-chart/cycles-list-layout.tsx @@ -1,14 +1,14 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { ICycle } from "@plane/types"; // hooks -import { CycleGanttBlock } from "components/cycles"; -import { GanttChartRoot, IBlockUpdateData, CycleGanttSidebar } from "components/gantt-chart"; -import { useCycle } from "hooks/store"; +import { CycleGanttBlock } from "@/components/cycles"; +import { GanttChartRoot, IBlockUpdateData, CycleGanttSidebar } from "@/components/gantt-chart"; +import { getDate } from "@/helpers/date-time.helper"; +import { useCycle } from "@/hooks/store"; // components // types -import { ICycle } from "@plane/types"; -import { getDate } from "helpers/date-time.helper"; // constants type Props = { diff --git a/web/components/cycles/list/cycles-list-item.tsx b/web/components/cycles/list/cycles-list-item.tsx index cb1373a37..6e81da3c7 100644 --- a/web/components/cycles/list/cycles-list-item.tsx +++ b/web/components/cycles/list/cycles-list-item.tsx @@ -3,28 +3,28 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { useRouter } from "next/router"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; import { Check, Info, Star, User2 } from "lucide-react"; +import type { TCycleGroups } from "@plane/types"; import { Tooltip, CircularProgressIndicator, CycleGroupIcon, AvatarGroup, Avatar, setPromiseToast } from "@plane/ui"; -import { CycleQuickActions } from "components/cycles"; +import { CycleQuickActions } from "@/components/cycles"; // components -// import { CycleCreateUpdateModal, CycleDeleteModal } from "components/cycles"; +// import { CycleCreateUpdateModal, CycleDeleteModal } from "@/components/cycles"; // ui // icons // helpers -import { findHowManyDaysLeft, getDate, renderFormattedDate } from "helpers/date-time.helper"; // constants -import { CYCLE_STATUS } from "constants/cycle"; -import { CYCLE_FAVORITED, CYCLE_UNFAVORITED } from "constants/event-tracker"; -import { useEventTracker, useCycle, useUser, useMember } from "hooks/store"; +import { CYCLE_STATUS } from "@/constants/cycle"; +import { CYCLE_FAVORITED, CYCLE_UNFAVORITED } from "@/constants/event-tracker"; // components // ui // icons // helpers // constants // types -import { TCycleGroups } from "@plane/types"; -import { EUserProjectRoles } from "constants/project"; +import { EUserProjectRoles } from "@/constants/project"; +import { findHowManyDaysLeft, getDate, renderFormattedDate } from "@/helpers/date-time.helper"; +import { useEventTracker, useCycle, useUser, useMember } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type TCyclesListItem = { cycleId: string; diff --git a/web/components/cycles/list/cycles-list-map.tsx b/web/components/cycles/list/cycles-list-map.tsx index c07b204b1..004c66fca 100644 --- a/web/components/cycles/list/cycles-list-map.tsx +++ b/web/components/cycles/list/cycles-list-map.tsx @@ -1,5 +1,5 @@ // components -import { CyclesListItem } from "components/cycles"; +import { CyclesListItem } from "@/components/cycles"; type Props = { cycleIds: string[]; diff --git a/web/components/cycles/list/root.tsx b/web/components/cycles/list/root.tsx index 27488d238..904daa1d9 100644 --- a/web/components/cycles/list/root.tsx +++ b/web/components/cycles/list/root.tsx @@ -1,11 +1,11 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; -import { Disclosure } from "@headlessui/react"; import { ChevronRight } from "lucide-react"; +import { Disclosure } from "@headlessui/react"; // components -import { CyclePeekOverview, CyclesListMap } from "components/cycles"; +import { CyclePeekOverview, CyclesListMap } from "@/components/cycles"; // helpers -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; export interface ICyclesList { completedCycleIds: string[]; diff --git a/web/components/cycles/modal.tsx b/web/components/cycles/modal.tsx index 1741521ae..008cdcbde 100644 --- a/web/components/cycles/modal.tsx +++ b/web/components/cycles/modal.tsx @@ -1,17 +1,17 @@ import React, { useEffect, useState } from "react"; import { Dialog, Transition } from "@headlessui/react"; +import type { CycleDateCheckData, ICycle, TCycleTabOptions } from "@plane/types"; // services import { TOAST_TYPE, setToast } from "@plane/ui"; -import { CycleForm } from "components/cycles"; -import { CYCLE_CREATED, CYCLE_UPDATED } from "constants/event-tracker"; -import { useEventTracker, useCycle, useProject } from "hooks/store"; -import useLocalStorage from "hooks/use-local-storage"; -import { CycleService } from "services/cycle.service"; +import { CycleForm } from "@/components/cycles"; +import { CYCLE_CREATED, CYCLE_UPDATED } from "@/constants/event-tracker"; +import { useEventTracker, useCycle, useProject } from "@/hooks/store"; +import useLocalStorage from "@/hooks/use-local-storage"; +import { CycleService } from "@/services/cycle.service"; // hooks // components // ui // types -import type { CycleDateCheckData, ICycle, TCycleTabOptions } from "@plane/types"; // constants type CycleModalProps = { diff --git a/web/components/cycles/quick-actions.tsx b/web/components/cycles/quick-actions.tsx index f1c930ccb..eebd28a9f 100644 --- a/web/components/cycles/quick-actions.tsx +++ b/web/components/cycles/quick-actions.tsx @@ -2,15 +2,15 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { LinkIcon, Pencil, Trash2 } from "lucide-react"; // hooks -import { useCycle, useEventTracker, useUser } from "hooks/store"; // components -import { CycleCreateUpdateModal, CycleDeleteModal } from "components/cycles"; -// ui import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; +import { CycleCreateUpdateModal, CycleDeleteModal } from "@/components/cycles"; +// ui // helpers -import { copyUrlToClipboard } from "helpers/string.helper"; +import { EUserProjectRoles } from "@/constants/project"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; // constants -import { EUserProjectRoles } from "constants/project"; +import { useCycle, useEventTracker, useUser } from "@/hooks/store"; type Props = { cycleId: string; diff --git a/web/components/cycles/sidebar.tsx b/web/components/cycles/sidebar.tsx index f13427012..e142b95ec 100644 --- a/web/components/cycles/sidebar.tsx +++ b/web/components/cycles/sidebar.tsx @@ -3,29 +3,29 @@ import isEmpty from "lodash/isEmpty"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; +import { ChevronDown, LinkIcon, Trash2, UserCircle2, AlertCircle, ChevronRight, CalendarClock } from "lucide-react"; import { Disclosure, Transition } from "@headlessui/react"; // icons -import { ChevronDown, LinkIcon, Trash2, UserCircle2, AlertCircle, ChevronRight, CalendarClock } from "lucide-react"; +import { ICycle } from "@plane/types"; // ui import { Avatar, CustomMenu, Loader, LayersIcon, TOAST_TYPE, setToast } from "@plane/ui"; // components -import { SidebarProgressStats } from "components/core"; -import ProgressChart from "components/core/sidebar/progress-chart"; -import { CycleDeleteModal } from "components/cycles/delete-modal"; -import { DateRangeDropdown } from "components/dropdowns"; +import { SidebarProgressStats } from "@/components/core"; +import ProgressChart from "@/components/core/sidebar/progress-chart"; +import { CycleDeleteModal } from "@/components/cycles/delete-modal"; +import { DateRangeDropdown } from "@/components/dropdowns"; // constants -import { CYCLE_STATUS } from "constants/cycle"; -import { CYCLE_UPDATED } from "constants/event-tracker"; -import { EUserWorkspaceRoles } from "constants/workspace"; +import { CYCLE_STATUS } from "@/constants/cycle"; +import { CYCLE_UPDATED } from "@/constants/event-tracker"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; // helpers // hooks -import { useEventTracker, useCycle, useUser, useMember } from "hooks/store"; +import { findHowManyDaysLeft, getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; +import { useEventTracker, useCycle, useUser, useMember } from "@/hooks/store"; // services -import { CycleService } from "services/cycle.service"; -import { findHowManyDaysLeft, getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { copyUrlToClipboard } from "helpers/string.helper"; +import { CycleService } from "@/services/cycle.service"; // types -import { ICycle } from "@plane/types"; type Props = { cycleId: string; @@ -219,8 +219,8 @@ export const CycleDetailsSidebar: React.FC = observer((props) => { ? "0 Issue" : `${cycleDetails.progress_snapshot.completed_issues}/${cycleDetails.progress_snapshot.total_issues}` : cycleDetails.total_issues === 0 - ? "0 Issue" - : `${cycleDetails.completed_issues}/${cycleDetails.total_issues}`; + ? "0 Issue" + : `${cycleDetails.completed_issues}/${cycleDetails.total_issues}`; const daysLeft = findHowManyDaysLeft(cycleDetails.end_date); diff --git a/web/components/cycles/transfer-issues-modal.tsx b/web/components/cycles/transfer-issues-modal.tsx index fbf20925b..b5e1aa253 100644 --- a/web/components/cycles/transfer-issues-modal.tsx +++ b/web/components/cycles/transfer-issues-modal.tsx @@ -1,14 +1,14 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { AlertCircle, Search, X } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // hooks // ui -import { AlertCircle, Search, X } from "lucide-react"; //icons import { ContrastIcon, TransferIcon, TOAST_TYPE, setToast } from "@plane/ui"; -import { EIssuesStoreType } from "constants/issue"; -import { useCycle, useIssues } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useCycle, useIssues } from "@/hooks/store"; //icons // constants diff --git a/web/components/cycles/transfer-issues.tsx b/web/components/cycles/transfer-issues.tsx index 921e67e4e..d7a5a2178 100644 --- a/web/components/cycles/transfer-issues.tsx +++ b/web/components/cycles/transfer-issues.tsx @@ -10,8 +10,8 @@ import { AlertCircle } from "lucide-react"; import { Button, TransferIcon } from "@plane/ui"; // icon // services -import { CYCLE_DETAILS } from "constants/fetch-keys"; -import { CycleService } from "services/cycle.service"; +import { CYCLE_DETAILS } from "@/constants/fetch-keys"; +import { CycleService } from "@/services/cycle.service"; // fetch-key type Props = { diff --git a/web/components/dashboard/home-dashboard-widgets.tsx b/web/components/dashboard/home-dashboard-widgets.tsx index ab96ef90f..0b13f8f11 100644 --- a/web/components/dashboard/home-dashboard-widgets.tsx +++ b/web/components/dashboard/home-dashboard-widgets.tsx @@ -1,4 +1,5 @@ import { observer } from "mobx-react-lite"; +import { TWidgetKeys } from "@plane/types"; // hooks import { AssignedIssuesWidget, @@ -10,11 +11,10 @@ import { RecentCollaboratorsWidget, RecentProjectsWidget, WidgetProps, -} from "components/dashboard"; -import { useApplication, useDashboard } from "hooks/store"; +} from "@/components/dashboard"; +import { useApplication, useDashboard } from "@/hooks/store"; // components // types -import { TWidgetKeys } from "@plane/types"; const WIDGETS_LIST: { [key in TWidgetKeys]: { component: React.FC; fullWidth: boolean }; diff --git a/web/components/dashboard/project-empty-state.tsx b/web/components/dashboard/project-empty-state.tsx index 32236e233..839730256 100644 --- a/web/components/dashboard/project-empty-state.tsx +++ b/web/components/dashboard/project-empty-state.tsx @@ -2,8 +2,8 @@ import { observer } from "mobx-react-lite"; import Image from "next/image"; // hooks import { Button } from "@plane/ui"; -import { EUserWorkspaceRoles } from "constants/workspace"; -import { useApplication, useEventTracker, useUser } from "hooks/store"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; +import { useApplication, useEventTracker, useUser } from "@/hooks/store"; // ui // assets import ProjectEmptyStateImage from "public/empty-state/dashboard/project.svg"; diff --git a/web/components/dashboard/widgets/assigned-issues.tsx b/web/components/dashboard/widgets/assigned-issues.tsx index cd4115ac7..2d4128dfd 100644 --- a/web/components/dashboard/widgets/assigned-issues.tsx +++ b/web/components/dashboard/widgets/assigned-issues.tsx @@ -2,9 +2,8 @@ import { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; import { Tab } from "@headlessui/react"; +import { TAssignedIssuesWidgetFilters, TAssignedIssuesWidgetResponse } from "@plane/types"; // hooks -import { useDashboard } from "hooks/store"; -// components import { DurationFilterDropdown, IssuesErrorState, @@ -12,13 +11,14 @@ import { WidgetIssuesList, WidgetLoader, WidgetProps, -} from "components/dashboard/widgets"; +} from "@/components/dashboard/widgets"; +import { EDurationFilters, FILTERED_ISSUES_TABS_LIST, UNFILTERED_ISSUES_TABS_LIST } from "@/constants/dashboard"; +import { getCustomDates, getRedirectionFilters, getTabKey } from "@/helpers/dashboard.helper"; +import { useDashboard } from "@/hooks/store"; +// components // helpers -import { getCustomDates, getRedirectionFilters, getTabKey } from "helpers/dashboard.helper"; // types -import { TAssignedIssuesWidgetFilters, TAssignedIssuesWidgetResponse } from "@plane/types"; // constants -import { EDurationFilters, FILTERED_ISSUES_TABS_LIST, UNFILTERED_ISSUES_TABS_LIST } from "constants/dashboard"; const WIDGET_KEY = "assigned_issues"; diff --git a/web/components/dashboard/widgets/created-issues.tsx b/web/components/dashboard/widgets/created-issues.tsx index 2b2954018..e7ab1be8e 100644 --- a/web/components/dashboard/widgets/created-issues.tsx +++ b/web/components/dashboard/widgets/created-issues.tsx @@ -2,9 +2,8 @@ import { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; import { Tab } from "@headlessui/react"; +import { TCreatedIssuesWidgetFilters, TCreatedIssuesWidgetResponse } from "@plane/types"; // hooks -import { useDashboard } from "hooks/store"; -// components import { DurationFilterDropdown, IssuesErrorState, @@ -12,13 +11,14 @@ import { WidgetIssuesList, WidgetLoader, WidgetProps, -} from "components/dashboard/widgets"; +} from "@/components/dashboard/widgets"; +import { EDurationFilters, FILTERED_ISSUES_TABS_LIST, UNFILTERED_ISSUES_TABS_LIST } from "@/constants/dashboard"; +import { getCustomDates, getRedirectionFilters, getTabKey } from "@/helpers/dashboard.helper"; +import { useDashboard } from "@/hooks/store"; +// components // helpers -import { getCustomDates, getRedirectionFilters, getTabKey } from "helpers/dashboard.helper"; // types -import { TCreatedIssuesWidgetFilters, TCreatedIssuesWidgetResponse } from "@plane/types"; // constants -import { EDurationFilters, FILTERED_ISSUES_TABS_LIST, UNFILTERED_ISSUES_TABS_LIST } from "constants/dashboard"; const WIDGET_KEY = "created_issues"; diff --git a/web/components/dashboard/widgets/dropdowns/duration-filter.tsx b/web/components/dashboard/widgets/dropdowns/duration-filter.tsx index feef7ceca..a9cd5862d 100644 --- a/web/components/dashboard/widgets/dropdowns/duration-filter.tsx +++ b/web/components/dashboard/widgets/dropdowns/duration-filter.tsx @@ -2,12 +2,12 @@ import { useState } from "react"; import { ChevronDown } from "lucide-react"; // components import { CustomMenu } from "@plane/ui"; -import { DateFilterModal } from "components/core"; +import { DateFilterModal } from "@/components/core"; // ui // helpers -import { getDurationFilterDropdownLabel } from "helpers/dashboard.helper"; +import { DURATION_FILTER_OPTIONS, EDurationFilters } from "@/constants/dashboard"; +import { getDurationFilterDropdownLabel } from "@/helpers/dashboard.helper"; // constants -import { DURATION_FILTER_OPTIONS, EDurationFilters } from "constants/dashboard"; type Props = { customDates?: string[]; diff --git a/web/components/dashboard/widgets/empty-states/assigned-issues.tsx b/web/components/dashboard/widgets/empty-states/assigned-issues.tsx index 0cfad7dc9..c9a25cfd3 100644 --- a/web/components/dashboard/widgets/empty-states/assigned-issues.tsx +++ b/web/components/dashboard/widgets/empty-states/assigned-issues.tsx @@ -1,8 +1,8 @@ import Image from "next/image"; import { useTheme } from "next-themes"; -// types -import { ASSIGNED_ISSUES_EMPTY_STATES } from "constants/dashboard"; import { TIssuesListTypes } from "@plane/types"; +// types +import { ASSIGNED_ISSUES_EMPTY_STATES } from "@/constants/dashboard"; // constants type Props = { diff --git a/web/components/dashboard/widgets/empty-states/created-issues.tsx b/web/components/dashboard/widgets/empty-states/created-issues.tsx index 2c59342fc..bc812de35 100644 --- a/web/components/dashboard/widgets/empty-states/created-issues.tsx +++ b/web/components/dashboard/widgets/empty-states/created-issues.tsx @@ -1,8 +1,8 @@ import Image from "next/image"; import { useTheme } from "next-themes"; -// types -import { CREATED_ISSUES_EMPTY_STATES } from "constants/dashboard"; import { TIssuesListTypes } from "@plane/types"; +// types +import { CREATED_ISSUES_EMPTY_STATES } from "@/constants/dashboard"; // constants type Props = { diff --git a/web/components/dashboard/widgets/issue-panels/issue-list-item.tsx b/web/components/dashboard/widgets/issue-panels/issue-list-item.tsx index 47efb4d21..72181c9b7 100644 --- a/web/components/dashboard/widgets/issue-panels/issue-list-item.tsx +++ b/web/components/dashboard/widgets/issue-panels/issue-list-item.tsx @@ -1,13 +1,13 @@ import isToday from "date-fns/isToday"; import { observer } from "mobx-react-lite"; +import { TIssue, TWidgetIssue } from "@plane/types"; // hooks // ui import { Avatar, AvatarGroup, ControlLink, PriorityIcon } from "@plane/ui"; // helpers -import { useIssueDetail, useMember, useProject } from "hooks/store"; -import { findTotalDaysInRange, getDate, renderFormattedDate } from "helpers/date-time.helper"; +import { findTotalDaysInRange, getDate, renderFormattedDate } from "@/helpers/date-time.helper"; +import { useIssueDetail, useMember, useProject } from "@/hooks/store"; // types -import { TIssue, TWidgetIssue } from "@plane/types"; export type IssueListItemProps = { issueId: string; diff --git a/web/components/dashboard/widgets/issue-panels/issues-list.tsx b/web/components/dashboard/widgets/issue-panels/issues-list.tsx index c429f3599..c38229267 100644 --- a/web/components/dashboard/widgets/issue-panels/issues-list.tsx +++ b/web/components/dashboard/widgets/issue-panels/issues-list.tsx @@ -1,4 +1,5 @@ import Link from "next/link"; +import { TAssignedIssuesWidgetResponse, TCreatedIssuesWidgetResponse, TIssue, TIssuesListTypes } from "@plane/types"; // hooks // components import { Loader, getButtonStyling } from "@plane/ui"; @@ -12,14 +13,13 @@ import { CreatedOverdueIssueListItem, CreatedUpcomingIssueListItem, IssueListItemProps, -} from "components/dashboard/widgets"; +} from "@/components/dashboard/widgets"; // ui // helpers -import { cn } from "helpers/common.helper"; -import { getRedirectionFilters } from "helpers/dashboard.helper"; -import { useIssueDetail } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { getRedirectionFilters } from "@/helpers/dashboard.helper"; +import { useIssueDetail } from "@/hooks/store"; // types -import { TAssignedIssuesWidgetResponse, TCreatedIssuesWidgetResponse, TIssue, TIssuesListTypes } from "@plane/types"; export type WidgetIssuesListProps = { isLoading: boolean; diff --git a/web/components/dashboard/widgets/issue-panels/tabs-list.tsx b/web/components/dashboard/widgets/issue-panels/tabs-list.tsx index 257f73851..d2b7df8ed 100644 --- a/web/components/dashboard/widgets/issue-panels/tabs-list.tsx +++ b/web/components/dashboard/widgets/issue-panels/tabs-list.tsx @@ -1,11 +1,11 @@ import { observer } from "mobx-react"; import { Tab } from "@headlessui/react"; -// helpers -import { cn } from "helpers/common.helper"; -// types import { TIssuesListTypes } from "@plane/types"; +// helpers +import { EDurationFilters, FILTERED_ISSUES_TABS_LIST, UNFILTERED_ISSUES_TABS_LIST } from "@/constants/dashboard"; +import { cn } from "@/helpers/common.helper"; +// types // constants -import { EDurationFilters, FILTERED_ISSUES_TABS_LIST, UNFILTERED_ISSUES_TABS_LIST } from "constants/dashboard"; type Props = { durationFilter: EDurationFilters; diff --git a/web/components/dashboard/widgets/issues-by-priority.tsx b/web/components/dashboard/widgets/issues-by-priority.tsx index becf32285..dcdeb3738 100644 --- a/web/components/dashboard/widgets/issues-by-priority.tsx +++ b/web/components/dashboard/widgets/issues-by-priority.tsx @@ -2,22 +2,22 @@ import { useEffect } from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; +import { TIssuesByPriorityWidgetFilters, TIssuesByPriorityWidgetResponse } from "@plane/types"; // hooks -import { useDashboard } from "hooks/store"; // components import { DurationFilterDropdown, IssuesByPriorityEmptyState, WidgetLoader, WidgetProps, -} from "components/dashboard/widgets"; +} from "@/components/dashboard/widgets"; // helpers -import { getCustomDates } from "helpers/dashboard.helper"; // types -import { TIssuesByPriorityWidgetFilters, TIssuesByPriorityWidgetResponse } from "@plane/types"; // constants -import { IssuesByPriorityGraph } from "components/graphs"; -import { EDurationFilters } from "constants/dashboard"; +import { IssuesByPriorityGraph } from "@/components/graphs"; +import { EDurationFilters } from "@/constants/dashboard"; +import { getCustomDates } from "@/helpers/dashboard.helper"; +import { useDashboard } from "@/hooks/store"; const WIDGET_KEY = "issues_by_priority"; diff --git a/web/components/dashboard/widgets/issues-by-state-group.tsx b/web/components/dashboard/widgets/issues-by-state-group.tsx index 1f093986c..dc3afe20f 100644 --- a/web/components/dashboard/widgets/issues-by-state-group.tsx +++ b/web/components/dashboard/widgets/issues-by-state-group.tsx @@ -2,23 +2,23 @@ import { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; +import { TIssuesByStateGroupsWidgetFilters, TIssuesByStateGroupsWidgetResponse, TStateGroups } from "@plane/types"; // hooks import { DurationFilterDropdown, IssuesByStateGroupEmptyState, WidgetLoader, WidgetProps, -} from "components/dashboard/widgets"; -import { PieGraph } from "components/ui"; -import { STATE_GROUPS } from "constants/state"; -import { getCustomDates } from "helpers/dashboard.helper"; -import { useDashboard } from "hooks/store"; +} from "@/components/dashboard/widgets"; +import { PieGraph } from "@/components/ui"; +import { EDurationFilters, STATE_GROUP_GRAPH_COLORS, STATE_GROUP_GRAPH_GRADIENTS } from "@/constants/dashboard"; +import { STATE_GROUPS } from "@/constants/state"; +import { getCustomDates } from "@/helpers/dashboard.helper"; +import { useDashboard } from "@/hooks/store"; // components // helpers // types -import { TIssuesByStateGroupsWidgetFilters, TIssuesByStateGroupsWidgetResponse, TStateGroups } from "@plane/types"; // constants -import { EDurationFilters, STATE_GROUP_GRAPH_COLORS, STATE_GROUP_GRAPH_GRADIENTS } from "constants/dashboard"; const WIDGET_KEY = "issues_by_state_groups"; diff --git a/web/components/dashboard/widgets/overview-stats.tsx b/web/components/dashboard/widgets/overview-stats.tsx index bfea5bf40..f8b4035cd 100644 --- a/web/components/dashboard/widgets/overview-stats.tsx +++ b/web/components/dashboard/widgets/overview-stats.tsx @@ -1,15 +1,15 @@ import { useEffect } from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; +import { TOverviewStatsWidgetResponse } from "@plane/types"; // hooks -import { WidgetLoader } from "components/dashboard/widgets"; -import { cn } from "helpers/common.helper"; -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { useDashboard } from "hooks/store"; +import { WidgetLoader } from "@/components/dashboard/widgets"; +import { cn } from "@/helpers/common.helper"; +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { useDashboard } from "@/hooks/store"; // components // helpers // types -import { TOverviewStatsWidgetResponse } from "@plane/types"; export type WidgetProps = { dashboardId: string; diff --git a/web/components/dashboard/widgets/recent-activity.tsx b/web/components/dashboard/widgets/recent-activity.tsx index 6e5c61355..bd69d1f6e 100644 --- a/web/components/dashboard/widgets/recent-activity.tsx +++ b/web/components/dashboard/widgets/recent-activity.tsx @@ -2,18 +2,18 @@ import { useEffect } from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; import { History } from "lucide-react"; +import { TRecentActivityWidgetResponse } from "@plane/types"; // hooks // components import { Avatar, getButtonStyling } from "@plane/ui"; -import { ActivityIcon, ActivityMessage, IssueLink } from "components/core"; -import { RecentActivityEmptyState, WidgetLoader, WidgetProps } from "components/dashboard/widgets"; +import { ActivityIcon, ActivityMessage, IssueLink } from "@/components/core"; +import { RecentActivityEmptyState, WidgetLoader, WidgetProps } from "@/components/dashboard/widgets"; // ui // helpers -import { cn } from "helpers/common.helper"; -import { calculateTimeAgo } from "helpers/date-time.helper"; -import { useDashboard, useUser } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { calculateTimeAgo } from "@/helpers/date-time.helper"; +import { useDashboard, useUser } from "@/hooks/store"; // types -import { TRecentActivityWidgetResponse } from "@plane/types"; const WIDGET_KEY = "recent_activity"; diff --git a/web/components/dashboard/widgets/recent-collaborators/collaborators-list.tsx b/web/components/dashboard/widgets/recent-collaborators/collaborators-list.tsx index 1e796eea2..3367f8b8c 100644 --- a/web/components/dashboard/widgets/recent-collaborators/collaborators-list.tsx +++ b/web/components/dashboard/widgets/recent-collaborators/collaborators-list.tsx @@ -2,11 +2,11 @@ import { useEffect } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import useSWR from "swr"; +import { TRecentCollaboratorsWidgetResponse } from "@plane/types"; // store hooks import { Avatar } from "@plane/ui"; -import { useDashboard, useMember, useUser } from "hooks/store"; +import { useDashboard, useMember, useUser } from "@/hooks/store"; // components -import { TRecentCollaboratorsWidgetResponse } from "@plane/types"; import { WidgetLoader } from "../loaders"; // ui // types diff --git a/web/components/dashboard/widgets/recent-collaborators/root.tsx b/web/components/dashboard/widgets/recent-collaborators/root.tsx index f544e0da6..7f17e0f2c 100644 --- a/web/components/dashboard/widgets/recent-collaborators/root.tsx +++ b/web/components/dashboard/widgets/recent-collaborators/root.tsx @@ -1,7 +1,7 @@ import { useState } from "react"; import { Search } from "lucide-react"; // types -import { WidgetProps } from "components/dashboard/widgets"; +import { WidgetProps } from "@/components/dashboard/widgets"; // components import { DefaultCollaboratorsList } from "./default-list"; import { SearchedCollaboratorsList } from "./search-list"; diff --git a/web/components/dashboard/widgets/recent-projects.tsx b/web/components/dashboard/widgets/recent-projects.tsx index 22e561ac8..d52af922c 100644 --- a/web/components/dashboard/widgets/recent-projects.tsx +++ b/web/components/dashboard/widgets/recent-projects.tsx @@ -2,18 +2,18 @@ import { useEffect } from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; import { Plus } from "lucide-react"; +import { TRecentProjectsWidgetResponse } from "@plane/types"; // hooks import { Avatar, AvatarGroup } from "@plane/ui"; -import { WidgetLoader, WidgetProps } from "components/dashboard/widgets"; -import { PROJECT_BACKGROUND_COLORS } from "constants/dashboard"; -import { EUserWorkspaceRoles } from "constants/workspace"; -import { useApplication, useEventTracker, useDashboard, useProject, useUser } from "hooks/store"; +import { WidgetLoader, WidgetProps } from "@/components/dashboard/widgets"; +import { ProjectLogo } from "@/components/project"; +import { PROJECT_BACKGROUND_COLORS } from "@/constants/dashboard"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; +import { useApplication, useEventTracker, useDashboard, useProject, useUser } from "@/hooks/store"; // components // ui // helpers // types -import { TRecentProjectsWidgetResponse } from "@plane/types"; -import { ProjectLogo } from "components/project"; // constants const WIDGET_KEY = "recent_projects"; diff --git a/web/components/dropdowns/buttons.tsx b/web/components/dropdowns/buttons.tsx index 27be7dd9a..6195bcdad 100644 --- a/web/components/dropdowns/buttons.tsx +++ b/web/components/dropdowns/buttons.tsx @@ -1,10 +1,10 @@ // helpers import { Tooltip } from "@plane/ui"; -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; // types +import { usePlatformOS } from "@/hooks/use-platform-os"; import { BACKGROUND_BUTTON_VARIANTS, BORDER_BUTTON_VARIANTS } from "./constants"; import { TButtonVariants } from "./types"; -import { usePlatformOS } from "hooks/use-platform-os"; export type DropdownButtonProps = { children: React.ReactNode; @@ -51,7 +51,12 @@ const BorderButton: React.FC = (props) => { const { isMobile } = usePlatformOS(); return ( - +
= (props) => { const { children, className, tooltipContent, tooltipHeading, showTooltip } = props; const { isMobile } = usePlatformOS(); return ( - +
= (props) => { const { children, className, isActive, tooltipContent, tooltipHeading, showTooltip } = props; const { isMobile } = usePlatformOS(); return ( - +
= (props) => { > {!hideIcon && } {!hideText && ( - + {moduleDetails?.name} )} diff --git a/web/components/dropdowns/module/module-options.tsx b/web/components/dropdowns/module/module-options.tsx index 8f6a66468..0650978be 100644 --- a/web/components/dropdowns/module/module-options.tsx +++ b/web/components/dropdowns/module/module-options.tsx @@ -2,13 +2,13 @@ import { useEffect, useRef, useState } from "react"; import { Placement } from "@popperjs/core"; import { observer } from "mobx-react"; import { usePopper } from "react-popper"; +import { Check, Search } from "lucide-react"; import { Combobox } from "@headlessui/react"; //components -import { Check, Search } from "lucide-react"; import { DiceIcon } from "@plane/ui"; //store -import { cn } from "helpers/common.helper"; -import { useApplication, useModule } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useModule } from "@/hooks/store"; //hooks //icon //types diff --git a/web/components/dropdowns/priority.tsx b/web/components/dropdowns/priority.tsx index b753c2ae1..49dd5b2c5 100644 --- a/web/components/dropdowns/priority.tsx +++ b/web/components/dropdowns/priority.tsx @@ -1,19 +1,19 @@ import { Fragment, ReactNode, useEffect, useRef, useState } from "react"; import { useTheme } from "next-themes"; import { usePopper } from "react-popper"; -import { Combobox } from "@headlessui/react"; import { Check, ChevronDown, Search } from "lucide-react"; +import { Combobox } from "@headlessui/react"; +import { TIssuePriorities } from "@plane/types"; // hooks import { PriorityIcon, Tooltip } from "@plane/ui"; -import { ISSUE_PRIORITIES } from "constants/issue"; -import { cn } from "helpers/common.helper"; -import { useDropdownKeyDown } from "hooks/use-dropdown-key-down"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { ISSUE_PRIORITIES } from "@/constants/issue"; +import { cn } from "@/helpers/common.helper"; +import { useDropdownKeyDown } from "@/hooks/use-dropdown-key-down"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // icons // helpers // types -import { TIssuePriorities } from "@plane/types"; import { BACKGROUND_BUTTON_VARIANTS, BORDER_BUTTON_VARIANTS, BUTTON_VARIANTS_WITHOUT_TEXT } from "./constants"; import { TDropdownProps } from "./types"; // constants @@ -65,7 +65,12 @@ const BorderButton = (props: ButtonProps) => { const { isMobile } = usePlatformOS(); return ( - +
{ const { isMobile } = usePlatformOS(); return ( - +
{ const { isMobile } = usePlatformOS(); return ( - +
{ // states diff --git a/web/components/exporter/export-modal.tsx b/web/components/exporter/export-modal.tsx index 16f8d4640..ea712d634 100644 --- a/web/components/exporter/export-modal.tsx +++ b/web/components/exporter/export-modal.tsx @@ -2,15 +2,15 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Dialog, Transition } from "@headlessui/react"; +import { IUser, IImporterService } from "@plane/types"; // hooks import { Button, CustomSearchSelect, TOAST_TYPE, setToast } from "@plane/ui"; -import { useProject } from "hooks/store"; +import { useProject } from "@/hooks/store"; // services -import { ProjectExportService } from "services/project"; +import { ProjectExportService } from "@/services/project"; // ui // types -import { IUser, IImporterService } from "@plane/types"; type Props = { isOpen: boolean; diff --git a/web/components/exporter/guide.tsx b/web/components/exporter/guide.tsx index 03d925b62..41ecf77f4 100644 --- a/web/components/exporter/guide.tsx +++ b/web/components/exporter/guide.tsx @@ -6,22 +6,22 @@ import Link from "next/link"; import { useRouter } from "next/router"; import useSWR, { mutate } from "swr"; // hooks -import { useUser } from "hooks/store"; -import useUserAuth from "hooks/use-user-auth"; -// services -import { IntegrationService } from "services/integrations"; -// components -import { Exporter, SingleExport } from "components/exporter"; -import { ImportExportSettingsLoader } from "components/ui"; -import { EmptyState } from "components/empty-state"; -// ui -import { Button } from "@plane/ui"; -// icons import { MoveLeft, MoveRight, RefreshCw } from "lucide-react"; +import { Button } from "@plane/ui"; +import { EmptyState } from "@/components/empty-state"; +import { Exporter, SingleExport } from "@/components/exporter"; +import { ImportExportSettingsLoader } from "@/components/ui"; +import { EmptyStateType } from "@/constants/empty-state"; +import { EXPORT_SERVICES_LIST } from "@/constants/fetch-keys"; +import { EXPORTERS_LIST } from "@/constants/workspace"; +import { useUser } from "@/hooks/store"; +import useUserAuth from "@/hooks/use-user-auth"; +// services +import { IntegrationService } from "@/services/integrations"; +// components +// ui +// icons // constants -import { EXPORT_SERVICES_LIST } from "constants/fetch-keys"; -import { EXPORTERS_LIST } from "constants/workspace"; -import { EmptyStateType } from "constants/empty-state"; // services const integrationService = new IntegrationService(); diff --git a/web/components/exporter/single-export.tsx b/web/components/exporter/single-export.tsx index 6e28d0466..336e17f23 100644 --- a/web/components/exporter/single-export.tsx +++ b/web/components/exporter/single-export.tsx @@ -1,10 +1,10 @@ import { useState, FC } from "react"; // ui +import { IExportData } from "@plane/types"; import { Button } from "@plane/ui"; // helpers -import { getDate, renderFormattedDate } from "helpers/date-time.helper"; +import { getDate, renderFormattedDate } from "@/helpers/date-time.helper"; // types -import { IExportData } from "@plane/types"; type Props = { service: IExportData; diff --git a/web/components/gantt-chart/blocks/block.tsx b/web/components/gantt-chart/blocks/block.tsx index 3305c9846..4f38c3c44 100644 --- a/web/components/gantt-chart/blocks/block.tsx +++ b/web/components/gantt-chart/blocks/block.tsx @@ -2,9 +2,9 @@ import { observer } from "mobx-react"; // hooks // components // helpers -import { cn } from "helpers/common.helper"; -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { useIssueDetail } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { useIssueDetail } from "@/hooks/store"; // types // constants import { BLOCK_HEIGHT } from "../constants"; diff --git a/web/components/gantt-chart/chart/header.tsx b/web/components/gantt-chart/chart/header.tsx index b4dcd6a62..e2722b22a 100644 --- a/web/components/gantt-chart/chart/header.tsx +++ b/web/components/gantt-chart/chart/header.tsx @@ -2,8 +2,8 @@ import { observer } from "mobx-react"; import { Expand, Shrink } from "lucide-react"; // hooks // helpers -import { VIEWS_LIST } from "components/gantt-chart/data"; -import { cn } from "helpers/common.helper"; +import { VIEWS_LIST } from "@/components/gantt-chart/data"; +import { cn } from "@/helpers/common.helper"; // types import { useGanttChart } from "../hooks/use-gantt-chart"; import { IGanttBlock, TGanttViews } from "../types"; diff --git a/web/components/gantt-chart/chart/main-content.tsx b/web/components/gantt-chart/chart/main-content.tsx index 8c00fde1b..99ea6c94e 100644 --- a/web/components/gantt-chart/chart/main-content.tsx +++ b/web/components/gantt-chart/chart/main-content.tsx @@ -15,9 +15,9 @@ import { TGanttViews, WeekChartView, YearChartView, -} from "components/gantt-chart"; +} from "@/components/gantt-chart"; // helpers -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; import { useGanttChart } from "../hooks/use-gantt-chart"; type Props = { diff --git a/web/components/gantt-chart/chart/root.tsx b/web/components/gantt-chart/chart/root.tsx index 5c9872cf4..098ee76ed 100644 --- a/web/components/gantt-chart/chart/root.tsx +++ b/web/components/gantt-chart/chart/root.tsx @@ -2,10 +2,10 @@ import { FC, useEffect, useState } from "react"; import { observer } from "mobx-react"; // hooks // components -import { GanttChartHeader, GanttChartMainContent } from "components/gantt-chart"; +import { GanttChartHeader, GanttChartMainContent } from "@/components/gantt-chart"; // views // helpers -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; // types // data import { SIDEBAR_WIDTH } from "../constants"; diff --git a/web/components/gantt-chart/chart/views/bi-week.tsx b/web/components/gantt-chart/chart/views/bi-week.tsx index f0ad084e9..e8188f4d7 100644 --- a/web/components/gantt-chart/chart/views/bi-week.tsx +++ b/web/components/gantt-chart/chart/views/bi-week.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useGanttChart } from "components/gantt-chart/hooks/use-gantt-chart"; +import { useGanttChart } from "@/components/gantt-chart/hooks/use-gantt-chart"; export const BiWeekChartView: FC = observer(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/web/components/gantt-chart/chart/views/day.tsx b/web/components/gantt-chart/chart/views/day.tsx index 84b2edac4..1f4e73811 100644 --- a/web/components/gantt-chart/chart/views/day.tsx +++ b/web/components/gantt-chart/chart/views/day.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useGanttChart } from "components/gantt-chart/hooks/use-gantt-chart"; +import { useGanttChart } from "@/components/gantt-chart/hooks/use-gantt-chart"; export const DayChartView: FC = observer(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/web/components/gantt-chart/chart/views/hours.tsx b/web/components/gantt-chart/chart/views/hours.tsx index bd1a7b6dd..f1eec7ca8 100644 --- a/web/components/gantt-chart/chart/views/hours.tsx +++ b/web/components/gantt-chart/chart/views/hours.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useGanttChart } from "components/gantt-chart/hooks/use-gantt-chart"; +import { useGanttChart } from "@/components/gantt-chart/hooks/use-gantt-chart"; export const HourChartView: FC = observer(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/web/components/gantt-chart/chart/views/month.tsx b/web/components/gantt-chart/chart/views/month.tsx index b5787eb61..b3a095778 100644 --- a/web/components/gantt-chart/chart/views/month.tsx +++ b/web/components/gantt-chart/chart/views/month.tsx @@ -1,10 +1,10 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { HEADER_HEIGHT, SIDEBAR_WIDTH } from "components/gantt-chart/constants"; -import { useGanttChart } from "components/gantt-chart/hooks/use-gantt-chart"; +import { HEADER_HEIGHT, SIDEBAR_WIDTH } from "@/components/gantt-chart/constants"; +import { useGanttChart } from "@/components/gantt-chart/hooks/use-gantt-chart"; // helpers -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; // types import { IMonthBlock } from "../../views"; // constants diff --git a/web/components/gantt-chart/chart/views/quarter.tsx b/web/components/gantt-chart/chart/views/quarter.tsx index b8adc4b3a..fea43e152 100644 --- a/web/components/gantt-chart/chart/views/quarter.tsx +++ b/web/components/gantt-chart/chart/views/quarter.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useGanttChart } from "components/gantt-chart/hooks/use-gantt-chart"; +import { useGanttChart } from "@/components/gantt-chart/hooks/use-gantt-chart"; export const QuarterChartView: FC = observer(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/web/components/gantt-chart/chart/views/week.tsx b/web/components/gantt-chart/chart/views/week.tsx index 981fc9236..51f789882 100644 --- a/web/components/gantt-chart/chart/views/week.tsx +++ b/web/components/gantt-chart/chart/views/week.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useGanttChart } from "components/gantt-chart/hooks/use-gantt-chart"; +import { useGanttChart } from "@/components/gantt-chart/hooks/use-gantt-chart"; export const WeekChartView: FC = observer(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/web/components/gantt-chart/chart/views/year.tsx b/web/components/gantt-chart/chart/views/year.tsx index 659126ac3..68b5d5c05 100644 --- a/web/components/gantt-chart/chart/views/year.tsx +++ b/web/components/gantt-chart/chart/views/year.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useGanttChart } from "components/gantt-chart/hooks/use-gantt-chart"; +import { useGanttChart } from "@/components/gantt-chart/hooks/use-gantt-chart"; export const YearChartView: FC = observer(() => { // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/web/components/gantt-chart/contexts/index.tsx b/web/components/gantt-chart/contexts/index.tsx index 752645f66..1b3f035ed 100644 --- a/web/components/gantt-chart/contexts/index.tsx +++ b/web/components/gantt-chart/contexts/index.tsx @@ -1,6 +1,6 @@ import React, { FC, createContext } from "react"; // mobx store -import { GanttStore } from "store/issue/issue_gantt_view.store"; +import { GanttStore } from "@/store/issue/issue_gantt_view.store"; let ganttViewStore = new GanttStore(); diff --git a/web/components/gantt-chart/helpers/add-block.tsx b/web/components/gantt-chart/helpers/add-block.tsx index 334ab7fcf..552575453 100644 --- a/web/components/gantt-chart/helpers/add-block.tsx +++ b/web/components/gantt-chart/helpers/add-block.tsx @@ -5,12 +5,12 @@ import { Plus } from "lucide-react"; // ui import { Tooltip } from "@plane/ui"; // helpers -import { renderFormattedDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; +import { renderFormattedDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; // types +import { usePlatformOS } from "@/hooks/use-platform-os"; import { useGanttChart } from "../hooks/use-gantt-chart"; import { IBlockUpdateData, IGanttBlock } from "../types"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; type Props = { block: IGanttBlock; diff --git a/web/components/gantt-chart/helpers/draggable.tsx b/web/components/gantt-chart/helpers/draggable.tsx index 54590c372..7e3390ba8 100644 --- a/web/components/gantt-chart/helpers/draggable.tsx +++ b/web/components/gantt-chart/helpers/draggable.tsx @@ -2,9 +2,9 @@ import React, { useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; import { ArrowRight } from "lucide-react"; // hooks -import { IGanttBlock } from "components/gantt-chart"; +import { IGanttBlock } from "@/components/gantt-chart"; // helpers -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; // constants import { SIDEBAR_WIDTH } from "../constants"; import { useGanttChart } from "../hooks/use-gantt-chart"; diff --git a/web/components/gantt-chart/hooks/use-gantt-chart.ts b/web/components/gantt-chart/hooks/use-gantt-chart.ts index 23e025e90..916b38adc 100644 --- a/web/components/gantt-chart/hooks/use-gantt-chart.ts +++ b/web/components/gantt-chart/hooks/use-gantt-chart.ts @@ -1,8 +1,8 @@ import { useContext } from "react"; // mobx store -import { GanttStoreContext } from "components/gantt-chart/contexts"; +import { GanttStoreContext } from "@/components/gantt-chart/contexts"; // types -import { IGanttStore } from "store/issue/issue_gantt_view.store"; +import { IGanttStore } from "@/store/issue/issue_gantt_view.store"; export const useGanttChart = (): IGanttStore => { const context = useContext(GanttStoreContext); diff --git a/web/components/gantt-chart/root.tsx b/web/components/gantt-chart/root.tsx index 4df5d9931..10c1c0d98 100644 --- a/web/components/gantt-chart/root.tsx +++ b/web/components/gantt-chart/root.tsx @@ -1,8 +1,8 @@ import { FC } from "react"; // components -import { ChartViewRoot, IBlockUpdateData, IGanttBlock } from "components/gantt-chart"; +import { ChartViewRoot, IBlockUpdateData, IGanttBlock } from "@/components/gantt-chart"; // context -import { GanttStoreProvider } from "components/gantt-chart/contexts"; +import { GanttStoreProvider } from "@/components/gantt-chart/contexts"; type GanttChartRootProps = { border?: boolean; diff --git a/web/components/gantt-chart/sidebar/cycles/block.tsx b/web/components/gantt-chart/sidebar/cycles/block.tsx index 6e780c479..e9543e367 100644 --- a/web/components/gantt-chart/sidebar/cycles/block.tsx +++ b/web/components/gantt-chart/sidebar/cycles/block.tsx @@ -2,14 +2,14 @@ import { DraggableProvided, DraggableStateSnapshot } from "@hello-pangea/dnd"; import { observer } from "mobx-react"; import { MoreVertical } from "lucide-react"; // hooks -import { CycleGanttSidebarBlock } from "components/cycles"; -import { BLOCK_HEIGHT } from "components/gantt-chart/constants"; -import { useGanttChart } from "components/gantt-chart/hooks"; +import { CycleGanttSidebarBlock } from "@/components/cycles"; +import { BLOCK_HEIGHT } from "@/components/gantt-chart/constants"; +import { useGanttChart } from "@/components/gantt-chart/hooks"; // components // helpers -import { IGanttBlock } from "components/gantt-chart/types"; -import { cn } from "helpers/common.helper"; -import { findTotalDaysInRange } from "helpers/date-time.helper"; +import { IGanttBlock } from "@/components/gantt-chart/types"; +import { cn } from "@/helpers/common.helper"; +import { findTotalDaysInRange } from "@/helpers/date-time.helper"; // types // constants diff --git a/web/components/gantt-chart/sidebar/cycles/sidebar.tsx b/web/components/gantt-chart/sidebar/cycles/sidebar.tsx index e47b2304e..dd33419d7 100644 --- a/web/components/gantt-chart/sidebar/cycles/sidebar.tsx +++ b/web/components/gantt-chart/sidebar/cycles/sidebar.tsx @@ -2,7 +2,7 @@ import { DragDropContext, Draggable, DropResult, Droppable } from "@hello-pangea // ui import { Loader } from "@plane/ui"; // components -import { IBlockUpdateData, IGanttBlock } from "components/gantt-chart/types"; +import { IBlockUpdateData, IGanttBlock } from "@/components/gantt-chart/types"; import { CyclesSidebarBlock } from "./block"; // types diff --git a/web/components/gantt-chart/sidebar/issues/block.tsx b/web/components/gantt-chart/sidebar/issues/block.tsx index 92fc32664..ae670941d 100644 --- a/web/components/gantt-chart/sidebar/issues/block.tsx +++ b/web/components/gantt-chart/sidebar/issues/block.tsx @@ -2,13 +2,13 @@ import { DraggableProvided, DraggableStateSnapshot } from "@hello-pangea/dnd"; import { observer } from "mobx-react"; import { MoreVertical } from "lucide-react"; // hooks -import { useGanttChart } from "components/gantt-chart/hooks"; +import { useGanttChart } from "@/components/gantt-chart/hooks"; // components -import { IssueGanttSidebarBlock } from "components/issues"; +import { IssueGanttSidebarBlock } from "@/components/issues"; // helpers -import { cn } from "helpers/common.helper"; -import { findTotalDaysInRange } from "helpers/date-time.helper"; -import { useIssueDetail } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { findTotalDaysInRange } from "@/helpers/date-time.helper"; +import { useIssueDetail } from "@/hooks/store"; // types // constants import { BLOCK_HEIGHT } from "../../constants"; diff --git a/web/components/gantt-chart/sidebar/issues/sidebar.tsx b/web/components/gantt-chart/sidebar/issues/sidebar.tsx index e82e40f5d..7528333f0 100644 --- a/web/components/gantt-chart/sidebar/issues/sidebar.tsx +++ b/web/components/gantt-chart/sidebar/issues/sidebar.tsx @@ -3,7 +3,7 @@ import { DragDropContext, Draggable, Droppable, DropResult } from "@hello-pangea // ui import { Loader } from "@plane/ui"; // types -import { IGanttBlock, IBlockUpdateData } from "components/gantt-chart/types"; +import { IGanttBlock, IBlockUpdateData } from "@/components/gantt-chart/types"; import { IssuesSidebarBlock } from "./block"; type Props = { diff --git a/web/components/gantt-chart/sidebar/modules/block.tsx b/web/components/gantt-chart/sidebar/modules/block.tsx index 41647644f..525d21716 100644 --- a/web/components/gantt-chart/sidebar/modules/block.tsx +++ b/web/components/gantt-chart/sidebar/modules/block.tsx @@ -2,14 +2,14 @@ import { DraggableProvided, DraggableStateSnapshot } from "@hello-pangea/dnd"; import { observer } from "mobx-react"; import { MoreVertical } from "lucide-react"; // hooks -import { BLOCK_HEIGHT } from "components/gantt-chart/constants"; -import { useGanttChart } from "components/gantt-chart/hooks"; +import { BLOCK_HEIGHT } from "@/components/gantt-chart/constants"; +import { useGanttChart } from "@/components/gantt-chart/hooks"; // components -import { IGanttBlock } from "components/gantt-chart/types"; -import { ModuleGanttSidebarBlock } from "components/modules"; +import { IGanttBlock } from "@/components/gantt-chart/types"; +import { ModuleGanttSidebarBlock } from "@/components/modules"; // helpers -import { cn } from "helpers/common.helper"; -import { findTotalDaysInRange } from "helpers/date-time.helper"; +import { cn } from "@/helpers/common.helper"; +import { findTotalDaysInRange } from "@/helpers/date-time.helper"; // types // constants diff --git a/web/components/gantt-chart/sidebar/modules/sidebar.tsx b/web/components/gantt-chart/sidebar/modules/sidebar.tsx index a4bcbd5ec..fd9478ffe 100644 --- a/web/components/gantt-chart/sidebar/modules/sidebar.tsx +++ b/web/components/gantt-chart/sidebar/modules/sidebar.tsx @@ -2,7 +2,7 @@ import { DragDropContext, Draggable, Droppable, DropResult } from "@hello-pangea // ui import { Loader } from "@plane/ui"; // components -import { IBlockUpdateData, IGanttBlock } from "components/gantt-chart"; +import { IBlockUpdateData, IGanttBlock } from "@/components/gantt-chart"; import { ModulesSidebarBlock } from "./block"; // types diff --git a/web/components/gantt-chart/sidebar/project-views.tsx b/web/components/gantt-chart/sidebar/project-views.tsx index 92a677b19..d46acfe29 100644 --- a/web/components/gantt-chart/sidebar/project-views.tsx +++ b/web/components/gantt-chart/sidebar/project-views.tsx @@ -2,7 +2,7 @@ import { DragDropContext, Draggable, Droppable, DropResult } from "@hello-pangea // ui import { Loader } from "@plane/ui"; // components -import { IBlockUpdateData, IGanttBlock } from "components/gantt-chart/types"; +import { IBlockUpdateData, IGanttBlock } from "@/components/gantt-chart/types"; import { IssuesSidebarBlock } from "./issues/block"; // types diff --git a/web/components/gantt-chart/sidebar/root.tsx b/web/components/gantt-chart/sidebar/root.tsx index 0b877ba33..287a66806 100644 --- a/web/components/gantt-chart/sidebar/root.tsx +++ b/web/components/gantt-chart/sidebar/root.tsx @@ -1,5 +1,5 @@ // components -import { IBlockUpdateData, IGanttBlock } from "components/gantt-chart"; +import { IBlockUpdateData, IGanttBlock } from "@/components/gantt-chart"; // constants import { HEADER_HEIGHT, SIDEBAR_WIDTH } from "../constants"; diff --git a/web/components/gantt-chart/views/month-view.ts b/web/components/gantt-chart/views/month-view.ts index f2d54a9f8..8bb635324 100644 --- a/web/components/gantt-chart/views/month-view.ts +++ b/web/components/gantt-chart/views/month-view.ts @@ -1,6 +1,6 @@ // types +import { findTotalDaysInRange } from "@/helpers/date-time.helper"; import { weeks, months } from "../data"; -import { findTotalDaysInRange } from "helpers/date-time.helper"; import { ChartDataType, IGanttBlock } from "../types"; // data // helpers diff --git a/web/components/graphs/issues-by-priority.tsx b/web/components/graphs/issues-by-priority.tsx index 9dfe56891..d0f63f604 100644 --- a/web/components/graphs/issues-by-priority.tsx +++ b/web/components/graphs/issues-by-priority.tsx @@ -1,13 +1,13 @@ import { ComputedDatum } from "@nivo/bar"; import { Theme } from "@nivo/core"; // components -import { BarGraph } from "components/ui"; -// helpers -import { PRIORITY_GRAPH_GRADIENTS } from "constants/dashboard"; -import { ISSUE_PRIORITIES } from "constants/issue"; -import { capitalizeFirstLetter } from "helpers/string.helper"; -// types import { TIssuePriorities } from "@plane/types"; +import { BarGraph } from "@/components/ui"; +// helpers +import { PRIORITY_GRAPH_GRADIENTS } from "@/constants/dashboard"; +import { ISSUE_PRIORITIES } from "@/constants/issue"; +import { capitalizeFirstLetter } from "@/helpers/string.helper"; +// types // constants type Props = { diff --git a/web/components/headers/cycle-issues.tsx b/web/components/headers/cycle-issues.tsx index a9dc3a8f4..4c66aabc7 100644 --- a/web/components/headers/cycle-issues.tsx +++ b/web/components/headers/cycle-issues.tsx @@ -3,17 +3,18 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // components import { ArrowRight, Plus, PanelRight } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; import { Breadcrumbs, Button, ContrastIcon, CustomMenu, Tooltip } from "@plane/ui"; -import { ProjectAnalyticsModal } from "components/analytics"; -import { BreadcrumbLink } from "components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { cn } from "helpers/common.helper"; -import { truncateText } from "helpers/string.helper"; +import { ProjectAnalyticsModal } from "@/components/analytics"; +import { BreadcrumbLink } from "@/components/common"; +import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; +import { ProjectLogo } from "@/components/project"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { cn } from "@/helpers/common.helper"; +import { truncateText } from "@/helpers/string.helper"; import { useApplication, useEventTracker, @@ -24,14 +25,13 @@ import { useProjectState, useUser, useIssues, -} from "hooks/store"; -import useLocalStorage from "hooks/use-local-storage"; +} from "@/hooks/store"; +import useLocalStorage from "@/hooks/use-local-storage"; // ui // icons // helpers // types -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; -import { ProjectLogo } from "components/project"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // constants const CycleDropdownOption: React.FC<{ cycleId: string }> = ({ cycleId }) => { @@ -84,7 +84,7 @@ export const CycleIssuesHeader: React.FC = observer(() => { const { project: { projectMemberIds }, } = useMember(); - const { isMobile } = usePlatformOS() + const { isMobile } = usePlatformOS(); const activeLayout = issueFilters?.displayFilters?.layout; @@ -208,8 +208,9 @@ export const CycleIssuesHeader: React.FC = observer(() => { {issueCount && issueCount > 0 ? ( 1 ? "issues" : "issue" - } in this cycle`} + tooltipContent={`There are ${issueCount} ${ + issueCount > 1 ? "issues" : "issue" + } in this cycle`} position="bottom" > @@ -223,9 +224,7 @@ export const CycleIssuesHeader: React.FC = observer(() => { className="ml-1.5 flex-shrink-0 truncate" placement="bottom-start" > - {currentProjectCycleIds?.map((cycleId) => ( - - ))} + {currentProjectCycleIds?.map((cycleId) => )} } /> diff --git a/web/components/headers/cycles.tsx b/web/components/headers/cycles.tsx index 375a04a13..22cd9adec 100644 --- a/web/components/headers/cycles.tsx +++ b/web/components/headers/cycles.tsx @@ -7,10 +7,10 @@ import { Plus } from "lucide-react"; import { Breadcrumbs, Button, ContrastIcon } from "@plane/ui"; // helpers // components -import { BreadcrumbLink } from "components/common"; -import { EUserProjectRoles } from "constants/project"; -import { useApplication, useEventTracker, useProject, useUser } from "hooks/store"; -import { ProjectLogo } from "components/project"; +import { BreadcrumbLink } from "@/components/common"; +import { ProjectLogo } from "@/components/project"; +import { EUserProjectRoles } from "@/constants/project"; +import { useApplication, useEventTracker, useProject, useUser } from "@/hooks/store"; export const CyclesHeader: FC = observer(() => { // router @@ -29,7 +29,6 @@ export const CyclesHeader: FC = observer(() => { const canUserCreateCycle = currentProjectRole && [EUserProjectRoles.ADMIN, EUserProjectRoles.MEMBER].includes(currentProjectRole); - return (
diff --git a/web/components/headers/global-issues.tsx b/web/components/headers/global-issues.tsx index cf44e389e..3fe24804b 100644 --- a/web/components/headers/global-issues.tsx +++ b/web/components/headers/global-issues.tsx @@ -3,21 +3,21 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; import { List, PlusIcon, Sheet } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types"; import { Breadcrumbs, Button, LayersIcon, PhotoFilterIcon, Tooltip } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection } from "components/issues"; +import { BreadcrumbLink } from "@/components/common"; +import { DisplayFiltersSelection, FiltersDropdown, FilterSelection } from "@/components/issues"; // components -import { CreateUpdateWorkspaceViewModal } from "components/workspace"; +import { CreateUpdateWorkspaceViewModal } from "@/components/workspace"; // ui // icons // types // constants -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; -import { EUserWorkspaceRoles } from "constants/workspace"; -import { useLabel, useMember, useUser, useIssues } from "hooks/store"; -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; +import { useLabel, useMember, useUser, useIssues } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; const GLOBAL_VIEW_LAYOUTS = [ { key: "list", title: "List", link: "/workspace-views", icon: List }, @@ -135,8 +135,9 @@ export const GlobalIssuesHeader: React.FC = observer((props) => {
= ({ moduleId }) => { @@ -209,8 +209,9 @@ export const ModuleIssuesHeader: React.FC = observer(() => { {issueCount && issueCount > 0 ? ( 1 ? "issues" : "issue" - } in this module`} + tooltipContent={`There are ${issueCount} ${ + issueCount > 1 ? "issues" : "issue" + } in this module`} position="bottom" > @@ -224,9 +225,7 @@ export const ModuleIssuesHeader: React.FC = observer(() => { className="ml-1.5 flex-shrink-0" placement="bottom-start" > - {projectModuleIds?.map((moduleId) => ( - - ))} + {projectModuleIds?.map((moduleId) => )} } /> diff --git a/web/components/headers/modules-list.tsx b/web/components/headers/modules-list.tsx index a6147cad3..80ca69187 100644 --- a/web/components/headers/modules-list.tsx +++ b/web/components/headers/modules-list.tsx @@ -2,25 +2,25 @@ import { useCallback, useRef, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { ListFilter, Plus, Search, X } from "lucide-react"; -// hooks -import { useApplication, useEventTracker, useMember, useModuleFilter, useProject, useUser } from "hooks/store"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -// components -import { BreadcrumbLink } from "components/common"; -import { ProjectLogo } from "components/project"; -// constants -import { MODULE_VIEW_LAYOUTS } from "constants/module"; -import { EUserProjectRoles } from "constants/project"; -// hooks -import { usePlatformOS } from "hooks/use-platform-os"; -import { ModuleFiltersSelection, ModuleOrderByDropdown } from "components/modules"; -import { FiltersDropdown } from "components/issues"; -// ui -import { Breadcrumbs, Button, Tooltip, DiceIcon } from "@plane/ui"; -// helpers -import { cn } from "helpers/common.helper"; -// types import { TModuleFilters } from "@plane/types"; +// hooks +import { Breadcrumbs, Button, Tooltip, DiceIcon } from "@plane/ui"; +import { BreadcrumbLink } from "@/components/common"; +import { FiltersDropdown } from "@/components/issues"; +import { ModuleFiltersSelection, ModuleOrderByDropdown } from "@/components/modules"; +import { ProjectLogo } from "@/components/project"; +import { MODULE_VIEW_LAYOUTS } from "@/constants/module"; +import { EUserProjectRoles } from "@/constants/project"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useEventTracker, useMember, useModuleFilter, useProject, useUser } from "@/hooks/store"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +// components +// constants +// hooks +import { usePlatformOS } from "@/hooks/use-platform-os"; +// ui +// helpers +// types export const ModulesListHeader: React.FC = observer(() => { // states diff --git a/web/components/headers/page-details.tsx b/web/components/headers/page-details.tsx index 4404fc0f3..4130dffce 100644 --- a/web/components/headers/page-details.tsx +++ b/web/components/headers/page-details.tsx @@ -6,10 +6,10 @@ import { FileText, Plus } from "lucide-react"; // ui import { Breadcrumbs, Button } from "@plane/ui"; // helpers -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; // components -import { useApplication, usePage, useProject } from "hooks/store"; -import { ProjectLogo } from "components/project"; +import { ProjectLogo } from "@/components/project"; +import { useApplication, usePage, useProject } from "@/hooks/store"; export interface IPagesHeaderProps { showButton?: boolean; diff --git a/web/components/headers/pages.tsx b/web/components/headers/pages.tsx index 94fee7eb2..30b626773 100644 --- a/web/components/headers/pages.tsx +++ b/web/components/headers/pages.tsx @@ -5,12 +5,12 @@ import { FileText, Plus } from "lucide-react"; // ui import { Breadcrumbs, Button } from "@plane/ui"; // helpers -import { BreadcrumbLink } from "components/common"; -import { EUserProjectRoles } from "constants/project"; +import { BreadcrumbLink } from "@/components/common"; +import { ProjectLogo } from "@/components/project"; +import { EUserProjectRoles } from "@/constants/project"; // constants // components -import { useApplication, useEventTracker, useProject, useUser } from "hooks/store"; -import { ProjectLogo } from "components/project"; +import { useApplication, useEventTracker, useProject, useUser } from "@/hooks/store"; export const PagesHeader = observer(() => { // router diff --git a/web/components/headers/profile-preferences.tsx b/web/components/headers/profile-preferences.tsx index e9f37bf6e..792842fe2 100644 --- a/web/components/headers/profile-preferences.tsx +++ b/web/components/headers/profile-preferences.tsx @@ -1,6 +1,6 @@ // components import { Breadcrumbs } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; export const ProfilePreferencesHeader = () => (
diff --git a/web/components/headers/profile-settings.tsx b/web/components/headers/profile-settings.tsx index 5c419f05b..e0402cda4 100644 --- a/web/components/headers/profile-settings.tsx +++ b/web/components/headers/profile-settings.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; // ui import { Settings } from "lucide-react"; import { Breadcrumbs } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; interface IProfileSettingHeader { title: string; diff --git a/web/components/headers/project-archived-issue-details.tsx b/web/components/headers/project-archived-issue-details.tsx index 1b0f8d9da..20258cd26 100644 --- a/web/components/headers/project-archived-issue-details.tsx +++ b/web/components/headers/project-archived-issue-details.tsx @@ -4,14 +4,14 @@ import { useRouter } from "next/router"; import useSWR from "swr"; // hooks import { Breadcrumbs, LayersIcon } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; -import { ISSUE_DETAILS } from "constants/fetch-keys"; -import { useProject } from "hooks/store"; +import { BreadcrumbLink } from "@/components/common"; +import { ProjectLogo } from "@/components/project"; +import { ISSUE_DETAILS } from "@/constants/fetch-keys"; +import { useProject } from "@/hooks/store"; // components -import { ProjectLogo } from "components/project"; // ui // types -import { IssueArchiveService } from "services/issue"; +import { IssueArchiveService } from "@/services/issue"; // constants // services // helpers diff --git a/web/components/headers/project-archived-issues.tsx b/web/components/headers/project-archived-issues.tsx index b3dd82002..621f23eb2 100644 --- a/web/components/headers/project-archived-issues.tsx +++ b/web/components/headers/project-archived-issues.tsx @@ -1,20 +1,20 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // constants // ui import { Breadcrumbs, LayersIcon, Tooltip } from "@plane/ui"; // components -import { BreadcrumbLink } from "components/common"; -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; +import { BreadcrumbLink } from "@/components/common"; +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues"; +import { ProjectLogo } from "@/components/project"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; // helpers -import { useIssues, useLabel, useMember, useProject, useProjectState } from "hooks/store"; +import { useIssues, useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; // types -import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types"; -import { ProjectLogo } from "components/project"; +import { usePlatformOS } from "@/hooks/use-platform-os"; export const ProjectArchivedIssuesHeader: FC = observer(() => { // router diff --git a/web/components/headers/project-draft-issues.tsx b/web/components/headers/project-draft-issues.tsx index 0b89cb57d..ab79b3b1f 100644 --- a/web/components/headers/project-draft-issues.tsx +++ b/web/components/headers/project-draft-issues.tsx @@ -1,19 +1,19 @@ import { FC, useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // components import { Breadcrumbs, LayersIcon, Tooltip } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "components/issues"; +import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; // ui // helper -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; -import { useIssues, useLabel, useMember, useProject, useProjectState } from "hooks/store"; -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; -import { ProjectLogo } from "components/project"; +import { ProjectLogo } from "@/components/project"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; +import { useIssues, useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; export const ProjectDraftIssueHeader: FC = observer(() => { // router diff --git a/web/components/headers/project-inbox.tsx b/web/components/headers/project-inbox.tsx index 8f5e64070..7ddf92380 100644 --- a/web/components/headers/project-inbox.tsx +++ b/web/components/headers/project-inbox.tsx @@ -6,11 +6,11 @@ import { Plus } from "lucide-react"; // ui import { Breadcrumbs, Button, LayersIcon } from "@plane/ui"; // components -import { BreadcrumbLink } from "components/common"; -import { CreateInboxIssueModal } from "components/inbox"; +import { BreadcrumbLink } from "@/components/common"; +import { CreateInboxIssueModal } from "@/components/inbox"; // helper -import { useProject } from "hooks/store"; -import { ProjectLogo } from "components/project"; +import { ProjectLogo } from "@/components/project"; +import { useProject } from "@/hooks/store"; export const ProjectInboxHeader: FC = observer(() => { // states diff --git a/web/components/headers/project-issue-details.tsx b/web/components/headers/project-issue-details.tsx index 6c24b0841..a7952ad16 100644 --- a/web/components/headers/project-issue-details.tsx +++ b/web/components/headers/project-issue-details.tsx @@ -4,13 +4,13 @@ import { useRouter } from "next/router"; // hooks import { PanelRight } from "lucide-react"; import { Breadcrumbs, LayersIcon } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; -import { cn } from "helpers/common.helper"; -import { useApplication, useIssueDetail, useProject } from "hooks/store"; +import { BreadcrumbLink } from "@/components/common"; +import { ProjectLogo } from "@/components/project"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useIssueDetail, useProject } from "@/hooks/store"; // ui // helpers // services -import { ProjectLogo } from "components/project"; // constants // components diff --git a/web/components/headers/project-issues.tsx b/web/components/headers/project-issues.tsx index 23f3f2ae1..b3dd77826 100644 --- a/web/components/headers/project-issues.tsx +++ b/web/components/headers/project-issues.tsx @@ -2,14 +2,15 @@ import { useCallback, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Briefcase, Circle, ExternalLink, Plus } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; import { Breadcrumbs, Button, LayersIcon, Tooltip } from "@plane/ui"; -import { ProjectAnalyticsModal } from "components/analytics"; -import { BreadcrumbLink } from "components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; +import { ProjectAnalyticsModal } from "@/components/analytics"; +import { BreadcrumbLink } from "@/components/common"; +import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; +import { ProjectLogo } from "@/components/project"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; import { useApplication, useEventTracker, @@ -18,13 +19,12 @@ import { useProjectState, useUser, useMember, -} from "hooks/store"; -import { useIssues } from "hooks/store/use-issues"; +} from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; // components // ui // types -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; -import { ProjectLogo } from "components/project"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // constants // helper diff --git a/web/components/headers/project-settings.tsx b/web/components/headers/project-settings.tsx index 831965fad..a212220ec 100644 --- a/web/components/headers/project-settings.tsx +++ b/web/components/headers/project-settings.tsx @@ -4,11 +4,11 @@ import { useRouter } from "next/router"; // ui import { Breadcrumbs, CustomMenu } from "@plane/ui"; // helper -import { BreadcrumbLink } from "components/common"; -import { EUserProjectRoles, PROJECT_SETTINGS_LINKS } from "constants/project"; +import { BreadcrumbLink } from "@/components/common"; +import { ProjectLogo } from "@/components/project"; +import { EUserProjectRoles, PROJECT_SETTINGS_LINKS } from "@/constants/project"; // hooks -import { useProject, useUser } from "hooks/store"; -import { ProjectLogo } from "components/project"; +import { useProject, useUser } from "@/hooks/store"; // constants // components diff --git a/web/components/headers/project-view-issues.tsx b/web/components/headers/project-view-issues.tsx index c59258463..deab59796 100644 --- a/web/components/headers/project-view-issues.tsx +++ b/web/components/headers/project-view-issues.tsx @@ -3,18 +3,20 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; import { Plus } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; // hooks // components // ui import { Breadcrumbs, Button, CustomMenu, PhotoFilterIcon } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "components/issues"; +import { BreadcrumbLink } from "@/components/common"; +import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; // helpers // types // constants -import { EIssuesStoreType, EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { truncateText } from "helpers/string.helper"; +import { ProjectLogo } from "@/components/project"; +import { EIssuesStoreType, EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { truncateText } from "@/helpers/string.helper"; import { useApplication, useEventTracker, @@ -25,9 +27,7 @@ import { useProjectState, useProjectView, useUser, -} from "hooks/store"; -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; -import { ProjectLogo } from "components/project"; +} from "@/hooks/store"; export const ProjectViewIssuesHeader: React.FC = observer(() => { // router diff --git a/web/components/headers/project-views.tsx b/web/components/headers/project-views.tsx index abc4dff9f..971a9e26a 100644 --- a/web/components/headers/project-views.tsx +++ b/web/components/headers/project-views.tsx @@ -4,12 +4,12 @@ import { Plus } from "lucide-react"; // hooks // components import { Breadcrumbs, PhotoFilterIcon, Button } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; // helpers -import { EUserProjectRoles } from "constants/project"; +import { ProjectLogo } from "@/components/project"; +import { EUserProjectRoles } from "@/constants/project"; // constants -import { useApplication, useProject, useUser } from "hooks/store"; -import { ProjectLogo } from "components/project"; +import { useApplication, useProject, useUser } from "@/hooks/store"; export const ProjectViewsHeader: React.FC = observer(() => { // router diff --git a/web/components/headers/projects.tsx b/web/components/headers/projects.tsx index 77c6f8dd0..2f502bce5 100644 --- a/web/components/headers/projects.tsx +++ b/web/components/headers/projects.tsx @@ -1,20 +1,20 @@ import { useCallback, useRef, useState } from "react"; import { observer } from "mobx-react-lite"; import { Search, Plus, Briefcase, X, ListFilter } from "lucide-react"; +import { TProjectFilters } from "@plane/types"; // hooks -import { useApplication, useEventTracker, useMember, useProject, useProjectFilter, useUser } from "hooks/store"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; // components -import { BreadcrumbLink } from "components/common"; // ui import { Breadcrumbs, Button } from "@plane/ui"; +import { BreadcrumbLink } from "@/components/common"; // helpers -import { cn } from "helpers/common.helper"; // constants -import { EUserWorkspaceRoles } from "constants/workspace"; -import { FiltersDropdown } from "components/issues"; -import { ProjectFiltersSelection, ProjectOrderByDropdown } from "components/project"; -import { TProjectFilters } from "@plane/types"; +import { FiltersDropdown } from "@/components/issues"; +import { ProjectFiltersSelection, ProjectOrderByDropdown } from "@/components/project"; +import { EUserWorkspaceRoles } from "@/constants/workspace"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useEventTracker, useMember, useProject, useProjectFilter, useUser } from "@/hooks/store"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; export const ProjectsHeader = observer(() => { // states diff --git a/web/components/headers/user-profile.tsx b/web/components/headers/user-profile.tsx index 8e1c94e6a..a1e49c7c6 100644 --- a/web/components/headers/user-profile.tsx +++ b/web/components/headers/user-profile.tsx @@ -5,11 +5,11 @@ import Link from "next/link"; import { useRouter } from "next/router"; import { ChevronDown, PanelRight } from "lucide-react"; import { Breadcrumbs, CustomMenu } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; // components -import { PROFILE_ADMINS_TAB, PROFILE_VIEWER_TAB } from "constants/profile"; -import { cn } from "helpers/common.helper"; -import { useApplication, useUser } from "hooks/store"; +import { PROFILE_ADMINS_TAB, PROFILE_VIEWER_TAB } from "@/constants/profile"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useUser } from "@/hooks/store"; type TUserProfileHeader = { type?: string | undefined; diff --git a/web/components/headers/workspace-active-cycles.tsx b/web/components/headers/workspace-active-cycles.tsx index d17723bf3..9afa6ce66 100644 --- a/web/components/headers/workspace-active-cycles.tsx +++ b/web/components/headers/workspace-active-cycles.tsx @@ -2,7 +2,7 @@ import { observer } from "mobx-react-lite"; // ui import { Crown } from "lucide-react"; import { Breadcrumbs, ContrastIcon } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; // icons export const WorkspaceActiveCycleHeader = observer(() => ( diff --git a/web/components/headers/workspace-analytics.tsx b/web/components/headers/workspace-analytics.tsx index 3dc0d9805..f01420b24 100644 --- a/web/components/headers/workspace-analytics.tsx +++ b/web/components/headers/workspace-analytics.tsx @@ -5,9 +5,9 @@ import { BarChart2, PanelRight } from "lucide-react"; // ui import { Breadcrumbs } from "@plane/ui"; // components -import { BreadcrumbLink } from "components/common"; -import { cn } from "helpers/common.helper"; -import { useApplication } from "hooks/store"; +import { BreadcrumbLink } from "@/components/common"; +import { cn } from "@/helpers/common.helper"; +import { useApplication } from "@/hooks/store"; export const WorkspaceAnalyticsHeader = observer(() => { const router = useRouter(); diff --git a/web/components/headers/workspace-dashboard.tsx b/web/components/headers/workspace-dashboard.tsx index e02d6af59..99e605ee6 100644 --- a/web/components/headers/workspace-dashboard.tsx +++ b/web/components/headers/workspace-dashboard.tsx @@ -7,10 +7,10 @@ import githubWhiteImage from "/public/logos/github-white.png"; // hooks // components import { Breadcrumbs } from "@plane/ui"; -import { BreadcrumbLink } from "components/common"; +import { BreadcrumbLink } from "@/components/common"; // constants -import { CHANGELOG_REDIRECTED, GITHUB_REDIRECTED } from "constants/event-tracker"; -import { useEventTracker } from "hooks/store"; +import { CHANGELOG_REDIRECTED, GITHUB_REDIRECTED } from "@/constants/event-tracker"; +import { useEventTracker } from "@/hooks/store"; export const WorkspaceDashboardHeader = () => { // hooks diff --git a/web/components/headers/workspace-settings.tsx b/web/components/headers/workspace-settings.tsx index 0a012b3ca..673d65ba4 100644 --- a/web/components/headers/workspace-settings.tsx +++ b/web/components/headers/workspace-settings.tsx @@ -6,8 +6,8 @@ import { Settings } from "lucide-react"; import { Breadcrumbs, CustomMenu } from "@plane/ui"; // hooks // components -import { BreadcrumbLink } from "components/common"; -import { WORKSPACE_SETTINGS_LINKS } from "constants/workspace"; +import { BreadcrumbLink } from "@/components/common"; +import { WORKSPACE_SETTINGS_LINKS } from "@/constants/workspace"; export interface IWorkspaceSettingHeader { title: string; diff --git a/web/components/icons/attachment-icon.tsx b/web/components/icons/attachment-icon.tsx index 88fbd781e..617a73dbf 100644 --- a/web/components/icons/attachment-icon.tsx +++ b/web/components/icons/attachment-icon.tsx @@ -14,7 +14,7 @@ import { SvgIcon, TxtIcon, VideoIcon, -} from "components/icons"; +} from "@/components/icons"; export const getFileIcon = (fileType: string) => { switch (fileType) { diff --git a/web/components/icons/module/module-status-icon.tsx b/web/components/icons/module/module-status-icon.tsx index a8e87e55c..a31e218e1 100644 --- a/web/components/icons/module/module-status-icon.tsx +++ b/web/components/icons/module/module-status-icon.tsx @@ -1,4 +1,5 @@ // icons +import { TModuleStatus } from "@plane/types"; import { ModuleBacklogIcon, ModuleCancelledIcon, @@ -6,9 +7,8 @@ import { ModuleInProgressIcon, ModulePausedIcon, ModulePlannedIcon, -} from "components/icons"; +} from "@/components/icons"; // types -import { TModuleStatus } from "@plane/types"; type Props = { status: TModuleStatus; diff --git a/web/components/icons/state/state-group-icon.tsx b/web/components/icons/state/state-group-icon.tsx index ae9e5f1a9..2e788de0f 100644 --- a/web/components/icons/state/state-group-icon.tsx +++ b/web/components/icons/state/state-group-icon.tsx @@ -1,14 +1,14 @@ // icons +import { TStateGroups } from "@plane/types"; import { StateGroupBacklogIcon, StateGroupCancelledIcon, StateGroupCompletedIcon, StateGroupStartedIcon, StateGroupUnstartedIcon, -} from "components/icons"; +} from "@/components/icons"; // types -import { STATE_GROUPS } from "constants/state"; -import { TStateGroups } from "@plane/types"; +import { STATE_GROUPS } from "@/constants/state"; // constants type Props = { diff --git a/web/components/inbox/content/root.tsx b/web/components/inbox/content/root.tsx index 7cc19bec3..389876812 100644 --- a/web/components/inbox/content/root.tsx +++ b/web/components/inbox/content/root.tsx @@ -3,9 +3,9 @@ import { observer } from "mobx-react"; import { Inbox } from "lucide-react"; // hooks import { Loader } from "@plane/ui"; -import { InboxIssueActionsHeader } from "components/inbox"; -import { InboxIssueDetailRoot } from "components/issues/issue-detail/inbox"; -import { useInboxIssues } from "hooks/store"; +import { InboxIssueActionsHeader } from "@/components/inbox"; +import { InboxIssueDetailRoot } from "@/components/issues/issue-detail/inbox"; +import { useInboxIssues } from "@/hooks/store"; // components // ui diff --git a/web/components/inbox/inbox-issue-actions.tsx b/web/components/inbox/inbox-issue-actions.tsx index 5d921dcd1..4c8a21592 100644 --- a/web/components/inbox/inbox-issue-actions.tsx +++ b/web/components/inbox/inbox-issue-actions.tsx @@ -2,9 +2,10 @@ import { FC, useCallback, useEffect, useMemo, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { DayPicker } from "react-day-picker"; +import { CheckCircle2, ChevronDown, ChevronUp, Clock, FileStack, Trash2, XCircle } from "lucide-react"; import { Popover } from "@headlessui/react"; // icons -import { CheckCircle2, ChevronDown, ChevronUp, Clock, FileStack, Trash2, XCircle } from "lucide-react"; +import type { TInboxDetailedStatus } from "@plane/types"; // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; // components @@ -13,15 +14,14 @@ import { DeclineIssueModal, DeleteInboxIssueModal, SelectDuplicateInboxIssueModal, -} from "components/inbox"; -import { ISSUE_DELETED } from "constants/event-tracker"; -import { EUserProjectRoles } from "constants/project"; +} from "@/components/inbox"; +import { ISSUE_DELETED } from "@/constants/event-tracker"; +import { EUserProjectRoles } from "@/constants/project"; // hooks -import { useUser, useInboxIssues, useIssueDetail, useWorkspace, useEventTracker } from "hooks/store"; +import { getDate } from "@/helpers/date-time.helper"; +import { useUser, useInboxIssues, useIssueDetail, useWorkspace, useEventTracker } from "@/hooks/store"; // types -import type { TInboxDetailedStatus } from "@plane/types"; //helpers -import { getDate } from "helpers/date-time.helper"; type TInboxIssueActionsHeader = { workspaceSlug: string; diff --git a/web/components/inbox/inbox-issue-status.tsx b/web/components/inbox/inbox-issue-status.tsx index 291b05449..701feff6b 100644 --- a/web/components/inbox/inbox-issue-status.tsx +++ b/web/components/inbox/inbox-issue-status.tsx @@ -1,8 +1,8 @@ import React from "react"; import { observer } from "mobx-react"; // hooks -import { INBOX_STATUS } from "constants/inbox"; -import { useInboxIssues } from "hooks/store"; +import { INBOX_STATUS } from "@/constants/inbox"; +import { useInboxIssues } from "@/hooks/store"; // constants type Props = { diff --git a/web/components/inbox/modals/accept-issue-modal.tsx b/web/components/inbox/modals/accept-issue-modal.tsx index 35edd838b..d8ccb68b6 100644 --- a/web/components/inbox/modals/accept-issue-modal.tsx +++ b/web/components/inbox/modals/accept-issue-modal.tsx @@ -1,12 +1,12 @@ import React, { useState } from "react"; -import { Dialog, Transition } from "@headlessui/react"; -// icons import { CheckCircle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import type { TIssue } from "@plane/types"; +// icons // ui import { Button } from "@plane/ui"; // types -import { useProject } from "hooks/store"; -import type { TIssue } from "@plane/types"; +import { useProject } from "@/hooks/store"; type Props = { data: TIssue; diff --git a/web/components/inbox/modals/create-issue-modal.tsx b/web/components/inbox/modals/create-issue-modal.tsx index 549af7229..c32bcf8f4 100644 --- a/web/components/inbox/modals/create-issue-modal.tsx +++ b/web/components/inbox/modals/create-issue-modal.tsx @@ -1,23 +1,23 @@ import { Fragment, useRef, useState } from "react"; -import { RichTextEditorWithRef } from "@plane/rich-text-editor"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; -import { Dialog, Transition } from "@headlessui/react"; import { Sparkle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import { RichTextEditorWithRef } from "@plane/rich-text-editor"; +import { TIssue } from "@plane/types"; // hooks import { Button, Input, ToggleSwitch, TOAST_TYPE, setToast } from "@plane/ui"; -import { GptAssistantPopover } from "components/core"; -import { PriorityDropdown } from "components/dropdowns"; -import { ISSUE_CREATED } from "constants/event-tracker"; -import { useApplication, useEventTracker, useWorkspace, useInboxIssues, useMention } from "hooks/store"; +import { GptAssistantPopover } from "@/components/core"; +import { PriorityDropdown } from "@/components/dropdowns"; +import { ISSUE_CREATED } from "@/constants/event-tracker"; +import { useApplication, useEventTracker, useWorkspace, useInboxIssues, useMention } from "@/hooks/store"; // services -import { AIService } from "services/ai.service"; -import { FileService } from "services/file.service"; +import { AIService } from "@/services/ai.service"; +import { FileService } from "@/services/file.service"; // components // ui // types -import { TIssue } from "@plane/types"; // constants type Props = { diff --git a/web/components/inbox/modals/decline-issue-modal.tsx b/web/components/inbox/modals/decline-issue-modal.tsx index 03ae3729e..3fff8e205 100644 --- a/web/components/inbox/modals/decline-issue-modal.tsx +++ b/web/components/inbox/modals/decline-issue-modal.tsx @@ -1,12 +1,12 @@ import React, { useState } from "react"; -import { Dialog, Transition } from "@headlessui/react"; -// icons import { AlertTriangle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import type { TIssue } from "@plane/types"; +// icons // ui import { Button } from "@plane/ui"; // types -import { useProject } from "hooks/store"; -import type { TIssue } from "@plane/types"; +import { useProject } from "@/hooks/store"; type Props = { data: TIssue; diff --git a/web/components/inbox/modals/delete-issue-modal.tsx b/web/components/inbox/modals/delete-issue-modal.tsx index d926e7b37..84a0a728a 100644 --- a/web/components/inbox/modals/delete-issue-modal.tsx +++ b/web/components/inbox/modals/delete-issue-modal.tsx @@ -1,14 +1,14 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; +import { AlertTriangle } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // hooks // icons -import { AlertTriangle } from "lucide-react"; +import type { TIssue } from "@plane/types"; // ui import { Button } from "@plane/ui"; -import { useProject } from "hooks/store"; +import { useProject } from "@/hooks/store"; // types -import type { TIssue } from "@plane/types"; type Props = { data: TIssue; diff --git a/web/components/inbox/modals/select-duplicate.tsx b/web/components/inbox/modals/select-duplicate.tsx index b34dd4ee7..2df720dd8 100644 --- a/web/components/inbox/modals/select-duplicate.tsx +++ b/web/components/inbox/modals/select-duplicate.tsx @@ -1,20 +1,20 @@ import React, { useEffect, useState } from "react"; import { useRouter } from "next/router"; import useSWR from "swr"; +import { Search } from "lucide-react"; import { Combobox, Dialog, Transition } from "@headlessui/react"; // hooks -import { useProject, useProjectState } from "hooks/store"; // icons -import { Search } from "lucide-react"; // components -import { EmptyState } from "components/empty-state"; // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; +import { EmptyState } from "@/components/empty-state"; // services -import { IssueService } from "services/issue"; // constants -import { PROJECT_ISSUES_LIST } from "constants/fetch-keys"; -import { EmptyStateType } from "constants/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; +import { PROJECT_ISSUES_LIST } from "@/constants/fetch-keys"; +import { useProject, useProjectState } from "@/hooks/store"; +import { IssueService } from "@/services/issue"; type Props = { isOpen: boolean; diff --git a/web/components/inbox/sidebar/filter/applied-filters.tsx b/web/components/inbox/sidebar/filter/applied-filters.tsx index 418637731..4569cf577 100644 --- a/web/components/inbox/sidebar/filter/applied-filters.tsx +++ b/web/components/inbox/sidebar/filter/applied-filters.tsx @@ -3,13 +3,13 @@ import { observer } from "mobx-react-lite"; // mobx store // icons import { X } from "lucide-react"; +import { TInboxIssueFilterOptions, TIssuePriorities } from "@plane/types"; import { PriorityIcon } from "@plane/ui"; // helpers -import { INBOX_STATUS } from "constants/inbox"; -import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper"; +import { INBOX_STATUS } from "@/constants/inbox"; +import { replaceUnderscoreIfSnakeCase } from "@/helpers/string.helper"; // types -import { useInboxIssues } from "hooks/store"; -import { TInboxIssueFilterOptions, TIssuePriorities } from "@plane/types"; +import { useInboxIssues } from "@/hooks/store"; // constants type TInboxIssueAppliedFilter = { workspaceSlug: string; projectId: string; inboxId: string }; diff --git a/web/components/inbox/sidebar/filter/filter-selection.tsx b/web/components/inbox/sidebar/filter/filter-selection.tsx index f408df28a..fc9dc20eb 100644 --- a/web/components/inbox/sidebar/filter/filter-selection.tsx +++ b/web/components/inbox/sidebar/filter/filter-selection.tsx @@ -1,17 +1,17 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TInboxIssueFilterOptions } from "@plane/types"; // mobx store // ui // icons import { PriorityIcon } from "@plane/ui"; -import { MultiLevelDropdown } from "components/ui"; +import { MultiLevelDropdown } from "@/components/ui"; // types // constants -import { INBOX_STATUS } from "constants/inbox"; -import { ISSUE_PRIORITIES } from "constants/issue"; -import { useInboxIssues } from "hooks/store"; -import { TInboxIssueFilterOptions } from "@plane/types"; +import { INBOX_STATUS } from "@/constants/inbox"; +import { ISSUE_PRIORITIES } from "@/constants/issue"; +import { useInboxIssues } from "@/hooks/store"; type TInboxIssueFilterSelection = { workspaceSlug: string; projectId: string; inboxId: string }; diff --git a/web/components/inbox/sidebar/inbox-list-item.tsx b/web/components/inbox/sidebar/inbox-list-item.tsx index faaaa662a..792ade860 100644 --- a/web/components/inbox/sidebar/inbox-list-item.tsx +++ b/web/components/inbox/sidebar/inbox-list-item.tsx @@ -5,14 +5,14 @@ import { useRouter } from "next/router"; // icons import { CalendarDays } from "lucide-react"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // ui import { Tooltip, PriorityIcon } from "@plane/ui"; // helpers -import { InboxIssueStatus } from "components/inbox/inbox-issue-status"; -import { renderFormattedDate } from "helpers/date-time.helper"; +import { InboxIssueStatus } from "@/components/inbox/inbox-issue-status"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; // components -import { useInboxIssues, useIssueDetail, useProject } from "hooks/store"; +import { useInboxIssues, useIssueDetail, useProject } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type TInboxIssueListItem = { workspaceSlug: string; @@ -87,7 +87,11 @@ export const InboxIssueListItem: FC = observer((props) => { - +
{renderFormattedDate(issue.created_at ?? "")} diff --git a/web/components/inbox/sidebar/inbox-list.tsx b/web/components/inbox/sidebar/inbox-list.tsx index f438db82e..9d77f6baf 100644 --- a/web/components/inbox/sidebar/inbox-list.tsx +++ b/web/components/inbox/sidebar/inbox-list.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useInboxIssues } from "hooks/store"; +import { useInboxIssues } from "@/hooks/store"; // components import { InboxIssueListItem } from "../"; diff --git a/web/components/inbox/sidebar/root.tsx b/web/components/inbox/sidebar/root.tsx index 97a777a48..cedddba25 100644 --- a/web/components/inbox/sidebar/root.tsx +++ b/web/components/inbox/sidebar/root.tsx @@ -2,8 +2,8 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Inbox } from "lucide-react"; // hooks -import { InboxSidebarLoader } from "components/ui"; -import { useInboxIssues } from "hooks/store"; +import { InboxSidebarLoader } from "@/components/ui"; +import { useInboxIssues } from "@/hooks/store"; // ui // components import { InboxIssueList, InboxIssueFilterSelection, InboxIssueAppliedFilter } from "../"; diff --git a/web/components/instance/ai-form.tsx b/web/components/instance/ai-form.tsx index 250feb511..680cb41ca 100644 --- a/web/components/instance/ai-form.tsx +++ b/web/components/instance/ai-form.tsx @@ -1,12 +1,12 @@ import { FC, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { Eye, EyeOff } from "lucide-react"; +import { IFormattedInstanceConfiguration } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { IFormattedInstanceConfiguration } from "@plane/types"; +import { useApplication } from "@/hooks/store"; // hooks -import { useApplication } from "hooks/store"; export interface IInstanceAIForm { config: IFormattedInstanceConfiguration; diff --git a/web/components/instance/email-form.tsx b/web/components/instance/email-form.tsx index c00a85a03..83056f769 100644 --- a/web/components/instance/email-form.tsx +++ b/web/components/instance/email-form.tsx @@ -2,11 +2,11 @@ import { FC, useState } from "react"; import { Controller, useForm } from "react-hook-form"; // ui import { Eye, EyeOff } from "lucide-react"; +import { IFormattedInstanceConfiguration } from "@plane/types"; import { Button, Input, ToggleSwitch, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { IFormattedInstanceConfiguration } from "@plane/types"; +import { useApplication } from "@/hooks/store"; // hooks -import { useApplication } from "hooks/store"; export interface IInstanceEmailForm { config: IFormattedInstanceConfiguration; diff --git a/web/components/instance/general-form.tsx b/web/components/instance/general-form.tsx index 6fedc8831..b3c5471b7 100644 --- a/web/components/instance/general-form.tsx +++ b/web/components/instance/general-form.tsx @@ -1,11 +1,11 @@ import { FC } from "react"; import { Controller, useForm } from "react-hook-form"; +import { IInstance, IInstanceAdmin } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { IInstance, IInstanceAdmin } from "@plane/types"; +import { useApplication } from "@/hooks/store"; // hooks -import { useApplication } from "hooks/store"; export interface IInstanceGeneralForm { instance: IInstance; diff --git a/web/components/instance/github-config-form.tsx b/web/components/instance/github-config-form.tsx index 20fb08aff..694eecb92 100644 --- a/web/components/instance/github-config-form.tsx +++ b/web/components/instance/github-config-form.tsx @@ -1,12 +1,12 @@ import { FC, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { Copy, Eye, EyeOff } from "lucide-react"; +import { IFormattedInstanceConfiguration } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { IFormattedInstanceConfiguration } from "@plane/types"; +import { useApplication } from "@/hooks/store"; // hooks -import { useApplication } from "hooks/store"; export interface IInstanceGithubConfigForm { config: IFormattedInstanceConfiguration; diff --git a/web/components/instance/google-config-form.tsx b/web/components/instance/google-config-form.tsx index 27d4f4300..b25b240aa 100644 --- a/web/components/instance/google-config-form.tsx +++ b/web/components/instance/google-config-form.tsx @@ -1,12 +1,12 @@ import { FC } from "react"; import { Controller, useForm } from "react-hook-form"; import { Copy } from "lucide-react"; +import { IFormattedInstanceConfiguration } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { IFormattedInstanceConfiguration } from "@plane/types"; +import { useApplication } from "@/hooks/store"; // hooks -import { useApplication } from "hooks/store"; export interface IInstanceGoogleConfigForm { config: IFormattedInstanceConfiguration; diff --git a/web/components/instance/help-section.tsx b/web/components/instance/help-section.tsx index 2365e47a0..5f6603fe7 100644 --- a/web/components/instance/help-section.tsx +++ b/web/components/instance/help-section.tsx @@ -1,10 +1,10 @@ import { FC, useState, useRef } from "react"; import Link from "next/link"; -import { Transition } from "@headlessui/react"; import { FileText, HelpCircle, MessagesSquare, MoveLeft } from "lucide-react"; +import { Transition } from "@headlessui/react"; // hooks import { DiscordIcon, GithubIcon } from "@plane/ui"; -import { useApplication } from "hooks/store"; +import { useApplication } from "@/hooks/store"; // icons // assets import packageJson from "package.json"; diff --git a/web/components/instance/image-config-form.tsx b/web/components/instance/image-config-form.tsx index 7be2089f1..af8185b0e 100644 --- a/web/components/instance/image-config-form.tsx +++ b/web/components/instance/image-config-form.tsx @@ -1,12 +1,12 @@ import { FC, useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { Eye, EyeOff } from "lucide-react"; +import { IFormattedInstanceConfiguration } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { IFormattedInstanceConfiguration } from "@plane/types"; +import { useApplication } from "@/hooks/store"; // hooks -import { useApplication } from "hooks/store"; export interface IInstanceImageConfigForm { config: IFormattedInstanceConfiguration; diff --git a/web/components/instance/setup-done-view.tsx b/web/components/instance/setup-done-view.tsx index 956fca041..6c15ac5a6 100644 --- a/web/components/instance/setup-done-view.tsx +++ b/web/components/instance/setup-done-view.tsx @@ -4,7 +4,7 @@ import { useTheme } from "next-themes"; // hooks import { UserCog2 } from "lucide-react"; import { Button } from "@plane/ui"; -import { useApplication } from "hooks/store"; +import { useApplication } from "@/hooks/store"; // ui // images import instanceSetupDone from "public/instance-setup-done.webp"; diff --git a/web/components/instance/setup-form/root.tsx b/web/components/instance/setup-form/root.tsx index 2d98b45d6..5659d0129 100644 --- a/web/components/instance/setup-form/root.tsx +++ b/web/components/instance/setup-form/root.tsx @@ -1,7 +1,7 @@ import { useState } from "react"; // components -import { LatestFeatureBlock } from "components/common"; -import { InstanceSetupDone, InstanceSetupSignInForm } from "components/instance"; +import { LatestFeatureBlock } from "@/components/common"; +import { InstanceSetupDone, InstanceSetupSignInForm } from "@/components/instance"; export enum EInstanceSetupSteps { SIGN_IN = "SIGN_IN", diff --git a/web/components/instance/setup-form/sign-in-form.tsx b/web/components/instance/setup-form/sign-in-form.tsx index a2e71faf2..476b9b189 100644 --- a/web/components/instance/setup-form/sign-in-form.tsx +++ b/web/components/instance/setup-form/sign-in-form.tsx @@ -4,11 +4,11 @@ import { Eye, EyeOff, XCircle } from "lucide-react"; // ui import { Input, Button, TOAST_TYPE, setToast } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; +import { checkEmailValidity } from "@/helpers/string.helper"; // hooks -import { useUser } from "hooks/store"; +import { useUser } from "@/hooks/store"; // services -import { AuthService } from "services/auth.service"; +import { AuthService } from "@/services/auth.service"; const authService = new AuthService(); interface InstanceSetupEmailFormValues { diff --git a/web/components/instance/setup-view.tsx b/web/components/instance/setup-view.tsx index e71f61cbc..6f4693e37 100644 --- a/web/components/instance/setup-view.tsx +++ b/web/components/instance/setup-view.tsx @@ -2,9 +2,9 @@ import { useEffect, useCallback } from "react"; import { observer } from "mobx-react-lite"; import Image from "next/image"; // components -import { InstanceSetupFormRoot } from "components/instance"; +import { InstanceSetupFormRoot } from "@/components/instance"; // hooks -import { useUser } from "hooks/store"; +import { useUser } from "@/hooks/store"; // images import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text.png"; diff --git a/web/components/instance/sidebar-dropdown.tsx b/web/components/instance/sidebar-dropdown.tsx index a5a268af4..484ebe2c9 100644 --- a/web/components/instance/sidebar-dropdown.tsx +++ b/web/components/instance/sidebar-dropdown.tsx @@ -5,13 +5,13 @@ import { useRouter } from "next/router"; import { useTheme } from "next-themes"; import { mutate } from "swr"; // components +import { LogIn, LogOut, Settings, UserCog2 } from "lucide-react"; import { Menu, Transition } from "@headlessui/react"; // icons -import { LogIn, LogOut, Settings, UserCog2 } from "lucide-react"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; import { Avatar, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; -import { useApplication, useUser } from "hooks/store"; +import { useApplication, useUser } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // ui // Static Data diff --git a/web/components/instance/sidebar-menu.tsx b/web/components/instance/sidebar-menu.tsx index e6719895f..53d6dc8f5 100644 --- a/web/components/instance/sidebar-menu.tsx +++ b/web/components/instance/sidebar-menu.tsx @@ -2,9 +2,9 @@ import Link from "next/link"; import { useRouter } from "next/router"; import { Image, BrainCog, Cog, Lock, Mail } from "lucide-react"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; import { Tooltip } from "@plane/ui"; -import { useApplication } from "hooks/store"; +import { useApplication } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // ui const INSTANCE_ADMIN_LINKS = [ @@ -57,7 +57,13 @@ export const InstanceAdminSidebarMenu = () => { return (
- +
void; diff --git a/web/components/integration/github/import-data.tsx b/web/components/integration/github/import-data.tsx index 24e19abb1..1a4afbb0c 100644 --- a/web/components/integration/github/import-data.tsx +++ b/web/components/integration/github/import-data.tsx @@ -1,16 +1,16 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; import { Control, Controller, UseFormWatch } from "react-hook-form"; +import { IWorkspaceIntegration } from "@plane/types"; // hooks // components import { Button, CustomSearchSelect, ToggleSwitch } from "@plane/ui"; -import { SelectRepository, TFormValues, TIntegrationSteps } from "components/integration"; +import { SelectRepository, TFormValues, TIntegrationSteps } from "@/components/integration"; // ui // helpers -import { truncateText } from "helpers/string.helper"; -import { useProject } from "hooks/store"; +import { truncateText } from "@/helpers/string.helper"; +import { useProject } from "@/hooks/store"; // types -import { IWorkspaceIntegration } from "@plane/types"; type Props = { handleStepChange: (value: TIntegrationSteps) => void; diff --git a/web/components/integration/github/import-users.tsx b/web/components/integration/github/import-users.tsx index ad0654438..ba4efb5f9 100644 --- a/web/components/integration/github/import-users.tsx +++ b/web/components/integration/github/import-users.tsx @@ -5,7 +5,7 @@ import { UseFormWatch } from "react-hook-form"; // ui import { Button } from "@plane/ui"; // types -import { IUserDetails, SingleUserSelect, TFormValues, TIntegrationSteps } from "components/integration"; +import { IUserDetails, SingleUserSelect, TFormValues, TIntegrationSteps } from "@/components/integration"; type Props = { handleStepChange: (value: TIntegrationSteps) => void; diff --git a/web/components/integration/github/repo-details.tsx b/web/components/integration/github/repo-details.tsx index 76c46b690..1ab75c64e 100644 --- a/web/components/integration/github/repo-details.tsx +++ b/web/components/integration/github/repo-details.tsx @@ -9,10 +9,10 @@ import useSWR from "swr"; // ui import { Button, Loader } from "@plane/ui"; // types -import { IUserDetails, TFormValues, TIntegrationSteps } from "components/integration"; +import { IUserDetails, TFormValues, TIntegrationSteps } from "@/components/integration"; // fetch-keys -import { GITHUB_REPOSITORY_INFO } from "constants/fetch-keys"; -import { GithubIntegrationService } from "services/integrations"; +import { GITHUB_REPOSITORY_INFO } from "@/constants/fetch-keys"; +import { GithubIntegrationService } from "@/services/integrations"; type Props = { selectedRepo: any; diff --git a/web/components/integration/github/root.tsx b/web/components/integration/github/root.tsx index 74f2f9c66..d5866e95a 100644 --- a/web/components/integration/github/root.tsx +++ b/web/components/integration/github/root.tsx @@ -11,6 +11,7 @@ import useSWR, { mutate } from "swr"; // services // components import { ArrowLeft, Check, List, Settings, UploadCloud } from "lucide-react"; +import { IGithubRepoCollaborator, IGithubServiceImportFormData } from "@plane/types"; import { UserGroupIcon, TOAST_TYPE, setToast } from "@plane/ui"; import { GithubImportConfigure, @@ -18,19 +19,18 @@ import { GithubRepoDetails, GithubImportUsers, GithubImportConfirm, -} from "components/integration"; +} from "@/components/integration"; // icons // images +import { APP_INTEGRATIONS, IMPORTER_SERVICES_LIST, WORKSPACE_INTEGRATIONS } from "@/constants/fetch-keys"; +import { IntegrationService, GithubIntegrationService } from "@/services/integrations"; import GithubLogo from "public/services/github.png"; -import { IntegrationService, GithubIntegrationService } from "services/integrations"; // hooks // components // icons // images // types -import { IGithubRepoCollaborator, IGithubServiceImportFormData } from "@plane/types"; // fetch-keys -import { APP_INTEGRATIONS, IMPORTER_SERVICES_LIST, WORKSPACE_INTEGRATIONS } from "constants/fetch-keys"; export type TIntegrationSteps = "import-configure" | "import-data" | "repo-details" | "import-users" | "import-confirm"; export interface IIntegrationData { diff --git a/web/components/integration/github/select-repository.tsx b/web/components/integration/github/select-repository.tsx index 0ff0654b8..f4ec4bb2f 100644 --- a/web/components/integration/github/select-repository.tsx +++ b/web/components/integration/github/select-repository.tsx @@ -1,14 +1,14 @@ import React from "react"; import { useRouter } from "next/router"; import useSWRInfinite from "swr/infinite"; +import { IWorkspaceIntegration } from "@plane/types"; // services // ui import { CustomSearchSelect } from "@plane/ui"; // helpers -import { truncateText } from "helpers/string.helper"; -import { ProjectService } from "services/project"; +import { truncateText } from "@/helpers/string.helper"; +import { ProjectService } from "@/services/project"; // types -import { IWorkspaceIntegration } from "@plane/types"; type Props = { integration: IWorkspaceIntegration; diff --git a/web/components/integration/github/single-user-select.tsx b/web/components/integration/github/single-user-select.tsx index 2a323e72e..9a13b27b5 100644 --- a/web/components/integration/github/single-user-select.tsx +++ b/web/components/integration/github/single-user-select.tsx @@ -1,12 +1,12 @@ import { useRouter } from "next/router"; import useSWR from "swr"; +import { IGithubRepoCollaborator } from "@plane/types"; // services import { Avatar, CustomSelect, CustomSearchSelect, Input } from "@plane/ui"; -import { WORKSPACE_MEMBERS } from "constants/fetch-keys"; -import { WorkspaceService } from "services/workspace.service"; +import { WORKSPACE_MEMBERS } from "@/constants/fetch-keys"; +import { WorkspaceService } from "@/services/workspace.service"; // ui // types -import { IGithubRepoCollaborator } from "@plane/types"; import { IUserDetails } from "./root"; // fetch-keys diff --git a/web/components/integration/guide.tsx b/web/components/integration/guide.tsx index 84d422d12..4d11966ee 100644 --- a/web/components/integration/guide.tsx +++ b/web/components/integration/guide.tsx @@ -5,24 +5,24 @@ import Link from "next/link"; import { useRouter } from "next/router"; import useSWR, { mutate } from "swr"; // hooks -import { useUser } from "hooks/store"; -import useUserAuth from "hooks/use-user-auth"; -// services -import { IntegrationService } from "services/integrations"; -// components -import { ImportExportSettingsLoader } from "components/ui"; -import { DeleteImportModal, GithubImporterRoot, JiraImporterRoot, SingleImport } from "components/integration"; -import { EmptyState } from "components/empty-state"; -// ui -import { Button } from "@plane/ui"; -// icons import { RefreshCw } from "lucide-react"; -// types import { IImporterService } from "@plane/types"; +import { Button } from "@plane/ui"; +import { EmptyState } from "@/components/empty-state"; +import { DeleteImportModal, GithubImporterRoot, JiraImporterRoot, SingleImport } from "@/components/integration"; +import { ImportExportSettingsLoader } from "@/components/ui"; +import { EmptyStateType } from "@/constants/empty-state"; +import { IMPORTER_SERVICES_LIST } from "@/constants/fetch-keys"; +import { IMPORTERS_LIST } from "@/constants/workspace"; +import { useUser } from "@/hooks/store"; +import useUserAuth from "@/hooks/use-user-auth"; +// services +import { IntegrationService } from "@/services/integrations"; +// components +// ui +// icons +// types // constants -import { IMPORTER_SERVICES_LIST } from "constants/fetch-keys"; -import { IMPORTERS_LIST } from "constants/workspace"; -import { EmptyStateType } from "constants/empty-state"; // services const integrationService = new IntegrationService(); diff --git a/web/components/integration/jira/confirm-import.tsx b/web/components/integration/jira/confirm-import.tsx index 09588396d..85d595181 100644 --- a/web/components/integration/jira/confirm-import.tsx +++ b/web/components/integration/jira/confirm-import.tsx @@ -2,9 +2,9 @@ import React from "react"; // react hook form import { useFormContext } from "react-hook-form"; +import { IJiraImporterForm } from "@plane/types"; // types -import { IJiraImporterForm } from "@plane/types"; export const JiraConfirmImport: React.FC = () => { const { watch } = useFormContext(); diff --git a/web/components/integration/jira/give-details.tsx b/web/components/integration/jira/give-details.tsx index c1ac0f3f8..ec4b2de21 100644 --- a/web/components/integration/jira/give-details.tsx +++ b/web/components/integration/jira/give-details.tsx @@ -3,14 +3,14 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useFormContext, Controller } from "react-hook-form"; import { Plus } from "lucide-react"; +import { IJiraImporterForm } from "@plane/types"; // hooks // components import { CustomSelect, Input } from "@plane/ui"; // helpers -import { checkEmailValidity } from "helpers/string.helper"; -import { useApplication, useEventTracker, useProject } from "hooks/store"; +import { checkEmailValidity } from "@/helpers/string.helper"; +import { useApplication, useEventTracker, useProject } from "@/hooks/store"; // types -import { IJiraImporterForm } from "@plane/types"; export const JiraGetImportDetail: React.FC = observer(() => { // store hooks diff --git a/web/components/integration/jira/import-users.tsx b/web/components/integration/jira/import-users.tsx index f5d1221ae..703c4b250 100644 --- a/web/components/integration/jira/import-users.tsx +++ b/web/components/integration/jira/import-users.tsx @@ -2,13 +2,13 @@ import { FC } from "react"; import { useRouter } from "next/router"; import { useFormContext, useFieldArray, Controller } from "react-hook-form"; import useSWR from "swr"; +import { IJiraImporterForm } from "@plane/types"; // services import { Avatar, CustomSelect, CustomSearchSelect, Input, ToggleSwitch } from "@plane/ui"; -import { WORKSPACE_MEMBERS } from "constants/fetch-keys"; -import { WorkspaceService } from "services/workspace.service"; +import { WORKSPACE_MEMBERS } from "@/constants/fetch-keys"; +import { WorkspaceService } from "@/services/workspace.service"; // ui // types -import { IJiraImporterForm } from "@plane/types"; // fetch keys const workspaceService = new WorkspaceService(); diff --git a/web/components/integration/jira/jira-project-detail.tsx b/web/components/integration/jira/jira-project-detail.tsx index a8decd0c7..b69b6093b 100644 --- a/web/components/integration/jira/jira-project-detail.tsx +++ b/web/components/integration/jira/jira-project-detail.tsx @@ -6,18 +6,17 @@ import { useRouter } from "next/router"; // swr import { useFormContext, Controller } from "react-hook-form"; import useSWR from "swr"; +import { IJiraImporterForm, IJiraMetadata } from "@plane/types"; // react hook form // services import { ToggleSwitch, Spinner } from "@plane/ui"; -import { JIRA_IMPORTER_DETAIL } from "constants/fetch-keys"; -import { JiraImporterService } from "services/integrations"; +import { JIRA_IMPORTER_DETAIL } from "@/constants/fetch-keys"; +import { JiraImporterService } from "@/services/integrations"; // fetch keys -import { IJiraImporterForm, IJiraMetadata } from "@plane/types"; - // components import type { IJiraIntegrationData, TJiraIntegrationSteps } from "."; diff --git a/web/components/integration/jira/root.tsx b/web/components/integration/jira/root.tsx index db01e4c72..b95ec1986 100644 --- a/web/components/integration/jira/root.tsx +++ b/web/components/integration/jira/root.tsx @@ -6,16 +6,16 @@ import { FormProvider, useForm } from "react-hook-form"; import { mutate } from "swr"; // icons import { ArrowLeft, Check, List, Settings } from "lucide-react"; +import { IJiraImporterForm } from "@plane/types"; // services // fetch keys // components import { Button, UserGroupIcon } from "@plane/ui"; -import { IMPORTER_SERVICES_LIST } from "constants/fetch-keys"; +import { IMPORTER_SERVICES_LIST } from "@/constants/fetch-keys"; // assets +import { JiraImporterService } from "@/services/integrations"; import JiraLogo from "public/services/jira.svg"; -import { JiraImporterService } from "services/integrations"; // types -import { IJiraImporterForm } from "@plane/types"; import { JiraGetImportDetail, JiraProjectDetail, diff --git a/web/components/integration/single-import.tsx b/web/components/integration/single-import.tsx index 5d83a92c9..c1d3f96c8 100644 --- a/web/components/integration/single-import.tsx +++ b/web/components/integration/single-import.tsx @@ -1,12 +1,12 @@ // ui import { Trash2 } from "lucide-react"; +import { IImporterService } from "@plane/types"; import { CustomMenu } from "@plane/ui"; // icons // helpers -import { IMPORTERS_LIST } from "constants/workspace"; -import { renderFormattedDate } from "helpers/date-time.helper"; +import { IMPORTERS_LIST } from "@/constants/workspace"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; // types -import { IImporterService } from "@plane/types"; // constants type Props = { diff --git a/web/components/integration/single-integration-card.tsx b/web/components/integration/single-integration-card.tsx index 027c274ec..426788cbd 100644 --- a/web/components/integration/single-integration-card.tsx +++ b/web/components/integration/single-integration-card.tsx @@ -4,21 +4,21 @@ import Image from "next/image"; import { useRouter } from "next/router"; import useSWR, { mutate } from "swr"; import { CheckCircle } from "lucide-react"; +import { IAppIntegration, IWorkspaceIntegration } from "@plane/types"; // ui import { Button, Loader, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // constants -import { WORKSPACE_INTEGRATIONS } from "constants/fetch-keys"; +import { WORKSPACE_INTEGRATIONS } from "@/constants/fetch-keys"; // hooks -import { useApplication, useUser } from "hooks/store"; -import useIntegrationPopup from "hooks/use-integration-popup"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useApplication, useUser } from "@/hooks/store"; +import useIntegrationPopup from "@/hooks/use-integration-popup"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // services -import { IntegrationService } from "services/integrations"; +import { IntegrationService } from "@/services/integrations"; // icons import GithubLogo from "public/services/github.png"; import SlackLogo from "public/services/slack.png"; // types -import { IAppIntegration, IWorkspaceIntegration } from "@plane/types"; // fetch-keys type Props = { diff --git a/web/components/integration/slack/select-channel.tsx b/web/components/integration/slack/select-channel.tsx index 0a7d55fa8..a9214839b 100644 --- a/web/components/integration/slack/select-channel.tsx +++ b/web/components/integration/slack/select-channel.tsx @@ -2,16 +2,16 @@ import { useState, useEffect } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import useSWR, { mutate } from "swr"; +import { IWorkspaceIntegration, ISlackIntegration } from "@plane/types"; // hooks import { Loader } from "@plane/ui"; -import { SLACK_CHANNEL_INFO } from "constants/fetch-keys"; -import { useApplication } from "hooks/store"; -import useIntegrationPopup from "hooks/use-integration-popup"; +import { SLACK_CHANNEL_INFO } from "@/constants/fetch-keys"; +import { useApplication } from "@/hooks/store"; +import useIntegrationPopup from "@/hooks/use-integration-popup"; // services -import { AppInstallationService } from "services/app_installation.service"; +import { AppInstallationService } from "@/services/app_installation.service"; // ui // types -import { IWorkspaceIntegration, ISlackIntegration } from "@plane/types"; // fetch-keys type Props = { diff --git a/web/components/issues/archive-issue-modal.tsx b/web/components/issues/archive-issue-modal.tsx index 04decee8a..8ea747ffc 100644 --- a/web/components/issues/archive-issue-modal.tsx +++ b/web/components/issues/archive-issue-modal.tsx @@ -1,12 +1,12 @@ import { useState, Fragment } from "react"; import { Dialog, Transition } from "@headlessui/react"; +import { TIssue } from "@plane/types"; // hooks import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { useProject } from "hooks/store"; -import { useIssues } from "hooks/store/use-issues"; +import { useProject } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; // ui // types -import { TIssue } from "@plane/types"; type Props = { data?: TIssue; diff --git a/web/components/issues/attachment/attachment-detail.tsx b/web/components/issues/attachment/attachment-detail.tsx index c1be0f355..b96ab7b18 100644 --- a/web/components/issues/attachment/attachment-detail.tsx +++ b/web/components/issues/attachment/attachment-detail.tsx @@ -2,17 +2,17 @@ import { FC, useState } from "react"; import Link from "next/link"; import { AlertCircle, X } from "lucide-react"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // ui import { Tooltip } from "@plane/ui"; // components // icons -import { getFileIcon } from "components/icons"; +import { getFileIcon } from "@/components/icons"; // helper -import { convertBytesToSize, getFileExtension, getFileName } from "helpers/attachment.helper"; -import { renderFormattedDate } from "helpers/date-time.helper"; -import { truncateText } from "helpers/string.helper"; -import { useIssueDetail, useMember } from "hooks/store"; +import { convertBytesToSize, getFileExtension, getFileName } from "@/helpers/attachment.helper"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { truncateText } from "@/helpers/string.helper"; +import { useIssueDetail, useMember } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; import { IssueAttachmentDeleteModal } from "./delete-attachment-confirmation-modal"; // types import { TAttachmentOperations } from "./root"; diff --git a/web/components/issues/attachment/attachment-upload.tsx b/web/components/issues/attachment/attachment-upload.tsx index 27dc572a9..46b697691 100644 --- a/web/components/issues/attachment/attachment-upload.tsx +++ b/web/components/issues/attachment/attachment-upload.tsx @@ -3,10 +3,10 @@ import { observer } from "mobx-react-lite"; import { useDropzone } from "react-dropzone"; // hooks // constants -import { MAX_FILE_SIZE } from "constants/common"; +import { MAX_FILE_SIZE } from "@/constants/common"; // helpers -import { generateFileName } from "helpers/attachment.helper"; -import { useApplication } from "hooks/store"; +import { generateFileName } from "@/helpers/attachment.helper"; +import { useApplication } from "@/hooks/store"; // types import { TAttachmentOperations } from "./root"; diff --git a/web/components/issues/attachment/attachments-list.tsx b/web/components/issues/attachment/attachments-list.tsx index aed1f7922..689761c87 100644 --- a/web/components/issues/attachment/attachments-list.tsx +++ b/web/components/issues/attachment/attachments-list.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // hooks -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueAttachmentsDetail } from "./attachment-detail"; // types diff --git a/web/components/issues/attachment/delete-attachment-confirmation-modal.tsx b/web/components/issues/attachment/delete-attachment-confirmation-modal.tsx index 85f0ea0e9..bd69c3cac 100644 --- a/web/components/issues/attachment/delete-attachment-confirmation-modal.tsx +++ b/web/components/issues/attachment/delete-attachment-confirmation-modal.tsx @@ -1,13 +1,13 @@ import { FC, Fragment, Dispatch, SetStateAction, useState } from "react"; -import { Dialog, Transition } from "@headlessui/react"; import { AlertTriangle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import type { TIssueAttachment } from "@plane/types"; // headless ui // ui import { Button } from "@plane/ui"; // helper -import { getFileName } from "helpers/attachment.helper"; +import { getFileName } from "@/helpers/attachment.helper"; // types -import type { TIssueAttachment } from "@plane/types"; import { TAttachmentOperations } from "./root"; export type TAttachmentOperationsRemoveModal = Exclude; diff --git a/web/components/issues/attachment/root.tsx b/web/components/issues/attachment/root.tsx index 715e9f840..c915ebce9 100644 --- a/web/components/issues/attachment/root.tsx +++ b/web/components/issues/attachment/root.tsx @@ -1,7 +1,7 @@ import { FC, useMemo } from "react"; // hooks import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; -import { useEventTracker, useIssueDetail } from "hooks/store"; +import { useEventTracker, useIssueDetail } from "@/hooks/store"; // ui // components import { IssueAttachmentUpload } from "./attachment-upload"; diff --git a/web/components/issues/delete-issue-modal.tsx b/web/components/issues/delete-issue-modal.tsx index b6c08c14b..57dccd4fc 100644 --- a/web/components/issues/delete-issue-modal.tsx +++ b/web/components/issues/delete-issue-modal.tsx @@ -1,12 +1,12 @@ import { useEffect, useState, Fragment } from "react"; -import { Dialog, Transition } from "@headlessui/react"; import { AlertTriangle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import { TIssue } from "@plane/types"; // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { TIssue } from "@plane/types"; +import { useIssues, useProject } from "@/hooks/store"; // hooks -import { useIssues, useProject } from "hooks/store"; type Props = { isOpen: boolean; diff --git a/web/components/issues/description-form.tsx b/web/components/issues/description-form.tsx index b13e124f3..5af8a418e 100644 --- a/web/components/issues/description-form.tsx +++ b/web/components/issues/description-form.tsx @@ -1,16 +1,16 @@ import { ChangeEvent, FC, useCallback, useEffect, useState } from "react"; -import { RichReadOnlyEditor, RichTextEditor } from "@plane/rich-text-editor"; import debounce from "lodash/debounce"; import { observer } from "mobx-react"; import { Controller, useForm } from "react-hook-form"; +import { RichReadOnlyEditor, RichTextEditor } from "@plane/rich-text-editor"; +import { TIssue } from "@plane/types"; // hooks import { Loader, TextArea } from "@plane/ui"; -import { useMention, useWorkspace } from "hooks/store"; -import useReloadConfirmations from "hooks/use-reload-confirmation"; +import { useMention, useWorkspace } from "@/hooks/store"; +import useReloadConfirmations from "@/hooks/use-reload-confirmation"; // components // types -import { FileService } from "services/file.service"; -import { TIssue } from "@plane/types"; +import { FileService } from "@/services/file.service"; import { TIssueOperations } from "./issue-detail"; // services diff --git a/web/components/issues/description-input.tsx b/web/components/issues/description-input.tsx index 4f1f5c056..75bfeccc7 100644 --- a/web/components/issues/description-input.tsx +++ b/web/components/issues/description-input.tsx @@ -3,10 +3,10 @@ import { FC, useState, useEffect } from "react"; import { RichReadOnlyEditor, RichTextEditor } from "@plane/rich-text-editor"; import { Loader } from "@plane/ui"; // hooks -import { useMention, useWorkspace } from "hooks/store"; -import useDebounce from "hooks/use-debounce"; +import { useMention, useWorkspace } from "@/hooks/store"; +import useDebounce from "@/hooks/use-debounce"; // services -import { FileService } from "services/file.service"; +import { FileService } from "@/services/file.service"; const fileService = new FileService(); // types import { TIssueOperations } from "./issue-detail"; diff --git a/web/components/issues/issue-detail/cycle-select.tsx b/web/components/issues/issue-detail/cycle-select.tsx index 8744857c1..77e854768 100644 --- a/web/components/issues/issue-detail/cycle-select.tsx +++ b/web/components/issues/issue-detail/cycle-select.tsx @@ -2,11 +2,11 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // hooks // components -import { CycleDropdown } from "components/dropdowns"; +import { CycleDropdown } from "@/components/dropdowns"; // ui // helpers -import { cn } from "helpers/common.helper"; -import { useIssueDetail } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { useIssueDetail } from "@/hooks/store"; // types import type { TIssueOperations } from "./root"; diff --git a/web/components/issues/issue-detail/inbox/main-content.tsx b/web/components/issues/issue-detail/inbox/main-content.tsx index f2aa78ad9..2bea576c4 100644 --- a/web/components/issues/issue-detail/inbox/main-content.tsx +++ b/web/components/issues/issue-detail/inbox/main-content.tsx @@ -2,9 +2,9 @@ import { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; // hooks import { StateGroupIcon } from "@plane/ui"; -import { IssueUpdateStatus, TIssueOperations } from "components/issues"; -import { useIssueDetail, useProjectState, useUser } from "hooks/store"; -import useReloadConfirmations from "hooks/use-reload-confirmation"; +import { IssueUpdateStatus, TIssueOperations } from "@/components/issues"; +import { useIssueDetail, useProjectState, useUser } from "@/hooks/store"; +import useReloadConfirmations from "@/hooks/use-reload-confirmation"; // components import { InboxIssueStatus } from "../../../inbox/inbox-issue-status"; import { IssueDescriptionInput } from "../../description-input"; diff --git a/web/components/issues/issue-detail/inbox/root.tsx b/web/components/issues/issue-detail/inbox/root.tsx index 144198085..bab406d1f 100644 --- a/web/components/issues/issue-detail/inbox/root.tsx +++ b/web/components/issues/issue-detail/inbox/root.tsx @@ -1,13 +1,13 @@ import { FC, useMemo } from "react"; import { useRouter } from "next/router"; import useSWR from "swr"; +import { TIssue } from "@plane/types"; // components import { TOAST_TYPE, setToast } from "@plane/ui"; -import { EUserProjectRoles } from "constants/project"; -import { useEventTracker, useInboxIssues, useIssueDetail, useUser } from "hooks/store"; +import { EUserProjectRoles } from "@/constants/project"; +import { useEventTracker, useInboxIssues, useIssueDetail, useUser } from "@/hooks/store"; // ui // types -import { TIssue } from "@plane/types"; import { TIssueOperations } from "../root"; import { InboxIssueMainContent } from "./main-content"; import { InboxIssueDetailsSidebar } from "./sidebar"; diff --git a/web/components/issues/issue-detail/inbox/sidebar.tsx b/web/components/issues/issue-detail/inbox/sidebar.tsx index b7cc0b7b0..6472eea27 100644 --- a/web/components/issues/issue-detail/inbox/sidebar.tsx +++ b/web/components/issues/issue-detail/inbox/sidebar.tsx @@ -1,15 +1,18 @@ import React from "react"; + import { observer } from "mobx-react-lite"; + import { CalendarCheck2, Signal, Tag } from "lucide-react"; + // hooks // components import { DoubleCircleIcon, StateGroupIcon, UserGroupIcon } from "@plane/ui"; -import { DateDropdown, PriorityDropdown, MemberDropdown, StateDropdown } from "components/dropdowns"; -import { IssueLabel, TIssueOperations } from "components/issues"; +import { DateDropdown, PriorityDropdown, MemberDropdown, StateDropdown } from "@/components/dropdowns"; +import { IssueLabel, TIssueOperations } from "@/components/issues"; // icons // helper -import { useIssueDetail, useProject, useProjectState } from "hooks/store"; -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { useIssueDetail, useProject, useProjectState } from "@/hooks/store"; type Props = { workspaceSlug: string; diff --git a/web/components/issues/issue-detail/issue-activity/activity-comment-root.tsx b/web/components/issues/issue-detail/issue-activity/activity-comment-root.tsx index af3266067..c7842a8db 100644 --- a/web/components/issues/issue-detail/issue-activity/activity-comment-root.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity-comment-root.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // hooks -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueActivityList } from "./activity/activity-list"; import { IssueCommentCard } from "./comments/comment-card"; diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx index d4642fedd..5b7e3da53 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { RotateCcw } from "lucide-react"; // hooks import { ArchiveIcon } from "@plane/ui"; -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueActivityBlockComponent } from "./"; // ui diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx index ce5aa6589..459283b88 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { UserGroupIcon } from "@plane/ui"; -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; // icons diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx index d9b4475c5..9c43a714e 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Paperclip } from "lucide-react"; // hooks -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx index ec3c777fc..73285b8a8 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { ContrastIcon } from "@plane/ui"; -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueActivityBlockComponent } from "./"; // icons diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/default.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/default.tsx index 0eeb7ecac..0e8470da4 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/default.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/default.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { LayersIcon } from "@plane/ui"; -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueActivityBlockComponent } from "./"; // icons diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/description.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/description.tsx index 30f445ec0..701452453 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/description.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/description.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { MessageSquare } from "lucide-react"; // hooks -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx index a8c309bd5..9179bfa38 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Triangle } from "lucide-react"; // hooks -import { useEstimate, useIssueDetail } from "hooks/store"; +import { useEstimate, useIssueDetail } from "@/hooks/store"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx index 389f9f875..e20cdcb60 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx @@ -2,9 +2,9 @@ import { FC, ReactNode } from "react"; import { Network } from "lucide-react"; // hooks import { Tooltip } from "@plane/ui"; -import { renderFormattedTime, renderFormattedDate, calculateTimeAgo } from "helpers/date-time.helper"; -import { useIssueDetail } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { renderFormattedTime, renderFormattedDate, calculateTimeAgo } from "@/helpers/date-time.helper"; +import { useIssueDetail } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // ui // components import { IssueUser } from "../"; diff --git a/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx b/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx index c622079e2..3055e779c 100644 --- a/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx +++ b/web/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx @@ -1,8 +1,8 @@ import { FC } from "react"; // hooks import { Tooltip } from "@plane/ui"; -import { useIssueDetail } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useIssueDetail } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // ui type TIssueLink = { @@ -20,7 +20,10 @@ export const IssueLink: FC = (props) => { if (!activity) return <>; return ( - + ; diff --git a/web/components/issues/issue-detail/links/link-detail.tsx b/web/components/issues/issue-detail/links/link-detail.tsx index 2772dc0c7..0380542c2 100644 --- a/web/components/issues/issue-detail/links/link-detail.tsx +++ b/web/components/issues/issue-detail/links/link-detail.tsx @@ -6,10 +6,10 @@ import { ExternalLinkIcon, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // icons // types // helpers -import { calculateTimeAgo } from "helpers/date-time.helper"; -import { copyTextToClipboard } from "helpers/string.helper"; -import { useIssueDetail, useMember } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { calculateTimeAgo } from "@/helpers/date-time.helper"; +import { copyTextToClipboard } from "@/helpers/string.helper"; +import { useIssueDetail, useMember } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; import { IssueLinkCreateUpdateModal, TLinkOperationsModal } from "./create-update-link-modal"; export type TIssueLinkDetail = { @@ -65,7 +65,10 @@ export const IssueLinkDetail: FC = (props) => { - + {linkDetail.title && linkDetail.title !== "" ? linkDetail.title : linkDetail.url} diff --git a/web/components/issues/issue-detail/links/links.tsx b/web/components/issues/issue-detail/links/links.tsx index 1120c3a5c..08538e481 100644 --- a/web/components/issues/issue-detail/links/links.tsx +++ b/web/components/issues/issue-detail/links/links.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // computed -import { useIssueDetail, useUser } from "hooks/store"; +import { useIssueDetail, useUser } from "@/hooks/store"; import { IssueLinkDetail } from "./link-detail"; // hooks import { TLinkOperations } from "./root"; diff --git a/web/components/issues/issue-detail/links/root.tsx b/web/components/issues/issue-detail/links/root.tsx index 276607aec..3200ad93f 100644 --- a/web/components/issues/issue-detail/links/root.tsx +++ b/web/components/issues/issue-detail/links/root.tsx @@ -1,11 +1,11 @@ import { FC, useCallback, useMemo, useState } from "react"; import { Plus } from "lucide-react"; +import { TIssueLink } from "@plane/types"; // hooks import { TOAST_TYPE, setToast } from "@plane/ui"; -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // ui // components -import { TIssueLink } from "@plane/types"; import { IssueLinkCreateUpdateModal } from "./create-update-link-modal"; import { IssueLinkList } from "./links"; // types diff --git a/web/components/issues/issue-detail/main-content.tsx b/web/components/issues/issue-detail/main-content.tsx index b65560953..50d168dca 100644 --- a/web/components/issues/issue-detail/main-content.tsx +++ b/web/components/issues/issue-detail/main-content.tsx @@ -2,9 +2,9 @@ import { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; // hooks import { StateGroupIcon } from "@plane/ui"; -import { IssueAttachmentRoot, IssueUpdateStatus } from "components/issues"; -import { useIssueDetail, useProjectState, useUser } from "hooks/store"; -import useReloadConfirmations from "hooks/use-reload-confirmation"; +import { IssueAttachmentRoot, IssueUpdateStatus } from "@/components/issues"; +import { useIssueDetail, useProjectState, useUser } from "@/hooks/store"; +import useReloadConfirmations from "@/hooks/use-reload-confirmation"; // components import { IssueDescriptionInput } from "../description-input"; import { SubIssuesRoot } from "../sub-issues"; diff --git a/web/components/issues/issue-detail/module-select.tsx b/web/components/issues/issue-detail/module-select.tsx index 91cda67d6..d88e3bf95 100644 --- a/web/components/issues/issue-detail/module-select.tsx +++ b/web/components/issues/issue-detail/module-select.tsx @@ -3,11 +3,11 @@ import xor from "lodash/xor"; import { observer } from "mobx-react-lite"; // hooks // components -import { ModuleDropdown } from "components/dropdowns"; +import { ModuleDropdown } from "@/components/dropdowns"; // ui // helpers -import { cn } from "helpers/common.helper"; -import { useIssueDetail } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { useIssueDetail } from "@/hooks/store"; // types import type { TIssueOperations } from "./root"; diff --git a/web/components/issues/issue-detail/parent-select.tsx b/web/components/issues/issue-detail/parent-select.tsx index 60cb06664..b121ddc78 100644 --- a/web/components/issues/issue-detail/parent-select.tsx +++ b/web/components/issues/issue-detail/parent-select.tsx @@ -3,14 +3,14 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { Pencil, X } from "lucide-react"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // components import { Tooltip } from "@plane/ui"; -import { ParentIssuesListModal } from "components/issues"; +import { ParentIssuesListModal } from "@/components/issues"; // ui // helpers -import { cn } from "helpers/common.helper"; -import { useIssueDetail, useProject } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { useIssueDetail, useProject } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // types import { TIssueOperations } from "./root"; diff --git a/web/components/issues/issue-detail/parent/root.tsx b/web/components/issues/issue-detail/parent/root.tsx index 64d0d1182..9fce5948c 100644 --- a/web/components/issues/issue-detail/parent/root.tsx +++ b/web/components/issues/issue-detail/parent/root.tsx @@ -1,13 +1,13 @@ import { FC } from "react"; import Link from "next/link"; import { MinusCircle } from "lucide-react"; +import { TIssue } from "@plane/types"; // component // ui import { CustomMenu } from "@plane/ui"; // hooks -import { useIssues, useProject, useProjectState } from "hooks/store"; +import { useIssues, useProject, useProjectState } from "@/hooks/store"; // types -import { TIssue } from "@plane/types"; import { TIssueOperations } from "../root"; import { IssueParentSiblings } from "./siblings"; diff --git a/web/components/issues/issue-detail/parent/sibling-item.tsx b/web/components/issues/issue-detail/parent/sibling-item.tsx index cbcf4741b..c6eef2a9e 100644 --- a/web/components/issues/issue-detail/parent/sibling-item.tsx +++ b/web/components/issues/issue-detail/parent/sibling-item.tsx @@ -3,7 +3,7 @@ import Link from "next/link"; // ui import { CustomMenu, LayersIcon } from "@plane/ui"; // hooks -import { useIssueDetail, useProject } from "hooks/store"; +import { useIssueDetail, useProject } from "@/hooks/store"; type TIssueParentSiblingItem = { issueId: string; diff --git a/web/components/issues/issue-detail/parent/siblings.tsx b/web/components/issues/issue-detail/parent/siblings.tsx index b80a41327..56e93fc0f 100644 --- a/web/components/issues/issue-detail/parent/siblings.tsx +++ b/web/components/issues/issue-detail/parent/siblings.tsx @@ -1,10 +1,10 @@ import { FC } from "react"; import useSWR from "swr"; +import { TIssue } from "@plane/types"; // components // hooks -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; // types -import { TIssue } from "@plane/types"; import { IssueParentSiblingItem } from "./sibling-item"; export type TIssueParentSiblings = { diff --git a/web/components/issues/issue-detail/reactions/issue-comment.tsx b/web/components/issues/issue-detail/reactions/issue-comment.tsx index e26befe1b..2925a593d 100644 --- a/web/components/issues/issue-detail/reactions/issue-comment.tsx +++ b/web/components/issues/issue-detail/reactions/issue-comment.tsx @@ -1,13 +1,13 @@ import { FC, useMemo } from "react"; import { observer } from "mobx-react-lite"; +import { IUser } from "@plane/types"; // components import { TOAST_TYPE, Tooltip, setToast } from "@plane/ui"; -import { renderEmoji } from "helpers/emoji.helper"; -import { useIssueDetail, useMember } from "hooks/store"; +import { renderEmoji } from "@/helpers/emoji.helper"; +import { formatTextList } from "@/helpers/issue.helper"; +import { useIssueDetail, useMember } from "@/hooks/store"; // helper -import { formatTextList } from "helpers/issue.helper"; // types -import { IUser } from "@plane/types"; import { ReactionSelector } from "./reaction-selector"; export type TIssueCommentReaction = { diff --git a/web/components/issues/issue-detail/reactions/issue.tsx b/web/components/issues/issue-detail/reactions/issue.tsx index 6fcd35ac4..27b463813 100644 --- a/web/components/issues/issue-detail/reactions/issue.tsx +++ b/web/components/issues/issue-detail/reactions/issue.tsx @@ -1,14 +1,14 @@ import { FC, useMemo } from "react"; import { observer } from "mobx-react-lite"; +import { IUser } from "@plane/types"; // hooks -import { useIssueDetail, useMember } from "hooks/store"; // ui import { TOAST_TYPE, Tooltip, setToast } from "@plane/ui"; // helpers -import { renderEmoji } from "helpers/emoji.helper"; -import { formatTextList } from "helpers/issue.helper"; +import { renderEmoji } from "@/helpers/emoji.helper"; +import { formatTextList } from "@/helpers/issue.helper"; +import { useIssueDetail, useMember } from "@/hooks/store"; // types -import { IUser } from "@plane/types"; import { ReactionSelector } from "./reaction-selector"; export type TIssueReaction = { diff --git a/web/components/issues/issue-detail/reactions/reaction-selector.tsx b/web/components/issues/issue-detail/reactions/reaction-selector.tsx index 655fd9105..da517e975 100644 --- a/web/components/issues/issue-detail/reactions/reaction-selector.tsx +++ b/web/components/issues/issue-detail/reactions/reaction-selector.tsx @@ -1,8 +1,8 @@ import { Fragment } from "react"; +import { SmilePlus } from "lucide-react"; import { Popover, Transition } from "@headlessui/react"; // helper -import { SmilePlus } from "lucide-react"; -import { renderEmoji } from "helpers/emoji.helper"; +import { renderEmoji } from "@/helpers/emoji.helper"; // icons const reactionEmojis = ["128077", "128078", "128516", "128165", "128533", "129505", "9992", "128064"]; diff --git a/web/components/issues/issue-detail/relation-select.tsx b/web/components/issues/issue-detail/relation-select.tsx index d609d1ddd..a0e97fbe3 100644 --- a/web/components/issues/issue-detail/relation-select.tsx +++ b/web/components/issues/issue-detail/relation-select.tsx @@ -2,17 +2,17 @@ import React from "react"; import { observer } from "mobx-react-lite"; import Link from "next/link"; import { CircleDot, CopyPlus, Pencil, X, XCircle } from "lucide-react"; +import { TIssueRelationTypes, ISearchIssueResponse } from "@plane/types"; // hooks import { RelatedIcon, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; -import { ExistingIssuesListModal } from "components/core"; -import { cn } from "helpers/common.helper"; -import { useIssueDetail, useIssues, useProject } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { ExistingIssuesListModal } from "@/components/core"; +import { cn } from "@/helpers/common.helper"; +import { useIssueDetail, useIssues, useProject } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // components // ui // helpers // types -import { TIssueRelationTypes, ISearchIssueResponse } from "@plane/types"; export type TRelationObject = { className: string; icon: (size: number) => React.ReactElement; placeholder: string }; diff --git a/web/components/issues/issue-detail/root.tsx b/web/components/issues/issue-detail/root.tsx index 25aa810cf..53e8d8707 100644 --- a/web/components/issues/issue-detail/root.tsx +++ b/web/components/issues/issue-detail/root.tsx @@ -1,16 +1,16 @@ import { FC, useMemo } from "react"; import { observer } from "mobx-react"; import { useRouter } from "next/router"; +import { TIssue } from "@plane/types"; // components import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; -import { EmptyState } from "components/common"; -import { IssuePeekOverview } from "components/issues"; -import { ISSUE_UPDATED, ISSUE_DELETED, ISSUE_ARCHIVED } from "constants/event-tracker"; -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useApplication, useEventTracker, useIssueDetail, useIssues, useUser } from "hooks/store"; +import { EmptyState } from "@/components/common"; +import { IssuePeekOverview } from "@/components/issues"; +import { ISSUE_UPDATED, ISSUE_DELETED, ISSUE_ARCHIVED } from "@/constants/event-tracker"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useApplication, useEventTracker, useIssueDetail, useIssues, useUser } from "@/hooks/store"; import emptyIssue from "public/empty-state/issue.svg"; -import { TIssue } from "@plane/types"; import { IssueMainContent } from "./main-content"; import { IssueDetailsSidebar } from "./sidebar"; // ui diff --git a/web/components/issues/issue-detail/sidebar.tsx b/web/components/issues/issue-detail/sidebar.tsx index 15b3e39f4..da6be8611 100644 --- a/web/components/issues/issue-detail/sidebar.tsx +++ b/web/components/issues/issue-detail/sidebar.tsx @@ -15,7 +15,6 @@ import { CalendarCheck2, } from "lucide-react"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // components import { ArchiveIcon, @@ -28,7 +27,13 @@ import { TOAST_TYPE, setToast, } from "@plane/ui"; -import { DateDropdown, EstimateDropdown, PriorityDropdown, MemberDropdown, StateDropdown } from "components/dropdowns"; +import { + DateDropdown, + EstimateDropdown, + PriorityDropdown, + MemberDropdown, + StateDropdown, +} from "@/components/dropdowns"; // ui // helpers import { @@ -40,18 +45,19 @@ import { IssueParentSelect, IssueLabel, ArchiveIssueModal, -} from "components/issues"; +} from "@/components/issues"; // helpers -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { copyTextToClipboard } from "helpers/string.helper"; -import { cn } from "helpers/common.helper"; -import { shouldHighlightIssueDueDate } from "helpers/issue.helper"; // types -import type { TIssueOperations } from "./root"; -import { STATE_GROUPS } from "constants/state"; +import { STATE_GROUPS } from "@/constants/state"; +import { cn } from "@/helpers/common.helper"; +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { shouldHighlightIssueDueDate } from "@/helpers/issue.helper"; +import { copyTextToClipboard } from "@/helpers/string.helper"; // types -import { useEstimate, useIssueDetail, useProject, useProjectState, useUser } from "hooks/store"; +import { useEstimate, useIssueDetail, useProject, useProjectState, useUser } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // components +import type { TIssueOperations } from "./root"; import { IssueSubscription } from "./subscription"; // icons // helpers diff --git a/web/components/issues/issue-detail/subscription.tsx b/web/components/issues/issue-detail/subscription.tsx index ee31de9db..43fffd3fd 100644 --- a/web/components/issues/issue-detail/subscription.tsx +++ b/web/components/issues/issue-detail/subscription.tsx @@ -5,7 +5,7 @@ import { Bell, BellOff } from "lucide-react"; // UI import { Button, Loader, TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useIssueDetail } from "hooks/store"; +import { useIssueDetail } from "@/hooks/store"; export type TIssueSubscription = { workspaceSlug: string; diff --git a/web/components/issues/issue-layouts/calendar/base-calendar-root.tsx b/web/components/issues/issue-layouts/calendar/base-calendar-root.tsx index 8d2b56d2a..a5f478746 100644 --- a/web/components/issues/issue-layouts/calendar/base-calendar-root.tsx +++ b/web/components/issues/issue-layouts/calendar/base-calendar-root.tsx @@ -2,19 +2,19 @@ import { FC } from "react"; import { DragDropContext, DropResult } from "@hello-pangea/dnd"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TGroupedIssues } from "@plane/types"; // components import { TOAST_TYPE, setToast } from "@plane/ui"; -import { CalendarChart } from "components/issues"; +import { CalendarChart } from "@/components/issues"; // hooks -import { useIssues, useUser } from "hooks/store"; -import { useIssuesActions } from "hooks/use-issues-actions"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useIssues, useUser } from "@/hooks/store"; +import { useIssuesActions } from "@/hooks/use-issues-actions"; // ui // types -import { TGroupedIssues } from "@plane/types"; -import { EIssuesStoreType } from "constants/issue"; import { IQuickActionProps } from "../list/list-view-types"; import { handleDragDrop } from "./utils"; -import { EUserProjectRoles } from "constants/project"; type CalendarStoreType = | EIssuesStoreType.PROJECT diff --git a/web/components/issues/issue-layouts/calendar/calendar.tsx b/web/components/issues/issue-layouts/calendar/calendar.tsx index 1aa01e9a1..70efb6c46 100644 --- a/web/components/issues/issue-layouts/calendar/calendar.tsx +++ b/web/components/issues/issue-layouts/calendar/calendar.tsx @@ -1,13 +1,6 @@ import { useState } from "react"; import { observer } from "mobx-react-lite"; -// hooks -import useSize from "hooks/use-window-size"; -// components -// ui -import { Spinner } from "@plane/ui"; -import { CalendarHeader, CalendarIssueBlocks, CalendarWeekDays, CalendarWeekHeader } from "components/issues"; -// types -import { +import type { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, @@ -16,20 +9,27 @@ import { TIssueKanbanFilters, TIssueMap, } from "@plane/types"; -import { ICalendarWeek } from "./types"; +// hooks +import { Spinner } from "@plane/ui"; +import { CalendarHeader, CalendarIssueBlocks, CalendarWeekDays, CalendarWeekHeader } from "@/components/issues"; +import { MONTHS_LIST } from "@/constants/calendar"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { cn } from "@/helpers/common.helper"; +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { useIssues, useUser } from "@/hooks/store"; +import { useCalendarView } from "@/hooks/store/use-calendar-view"; +import useSize from "@/hooks/use-window-size"; +// components +// ui +// types +import { ICycleIssuesFilter } from "@/store/issue/cycle"; +import { IModuleIssuesFilter } from "@/store/issue/module"; +import { IProjectIssuesFilter } from "@/store/issue/project"; +import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; +import type { ICalendarWeek } from "./types"; // helpers -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { cn } from "helpers/common.helper"; // constants -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useIssues, useUser } from "hooks/store"; -import { useCalendarView } from "hooks/store/use-calendar-view"; -import { ICycleIssuesFilter } from "store/issue/cycle"; -import { IModuleIssuesFilter } from "store/issue/module"; -import { IProjectIssuesFilter } from "store/issue/project"; -import { IProjectViewIssuesFilter } from "store/issue/project-views"; -import { MONTHS_LIST } from "constants/calendar"; type Props = { issuesFilterStore: IProjectIssuesFilter | IModuleIssuesFilter | ICycleIssuesFilter | IProjectViewIssuesFilter; diff --git a/web/components/issues/issue-layouts/calendar/day-tile.tsx b/web/components/issues/issue-layouts/calendar/day-tile.tsx index 12b7f767b..8239458e0 100644 --- a/web/components/issues/issue-layouts/calendar/day-tile.tsx +++ b/web/components/issues/issue-layouts/calendar/day-tile.tsx @@ -1,18 +1,18 @@ import { Droppable } from "@hello-pangea/dnd"; import { observer } from "mobx-react-lite"; -// components -import { CalendarIssueBlocks, ICalendarDate } from "components/issues"; -// helpers -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { cn } from "helpers/common.helper"; -// constants -import { MONTHS_LIST } from "constants/calendar"; -// types -import { ICycleIssuesFilter } from "store/issue/cycle"; -import { IModuleIssuesFilter } from "store/issue/module"; -import { IProjectIssuesFilter } from "store/issue/project"; -import { IProjectViewIssuesFilter } from "store/issue/project-views"; import { TGroupedIssues, TIssue, TIssueMap } from "@plane/types"; +// components +import { CalendarIssueBlocks, ICalendarDate } from "@/components/issues"; +// helpers +import { MONTHS_LIST } from "@/constants/calendar"; +import { cn } from "@/helpers/common.helper"; +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +// constants +// types +import { ICycleIssuesFilter } from "@/store/issue/cycle"; +import { IModuleIssuesFilter } from "@/store/issue/module"; +import { IProjectIssuesFilter } from "@/store/issue/project"; +import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; type Props = { issuesFilterStore: IProjectIssuesFilter | IModuleIssuesFilter | ICycleIssuesFilter | IProjectViewIssuesFilter; diff --git a/web/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx b/web/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx index 6591128ad..8bb0a2ec1 100644 --- a/web/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx +++ b/web/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx @@ -1,19 +1,19 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { usePopper } from "react-popper"; +import { ChevronLeft, ChevronRight } from "lucide-react"; import { Popover, Transition } from "@headlessui/react"; //hooks // icons -import { ChevronLeft, ChevronRight } from "lucide-react"; // constants -import { MONTHS_LIST } from "constants/calendar"; -import { useCalendarView } from "hooks/store"; -import { ICycleIssuesFilter } from "store/issue/cycle"; -import { IModuleIssuesFilter } from "store/issue/module"; -import { IProjectIssuesFilter } from "store/issue/project"; -import { IProjectViewIssuesFilter } from "store/issue/project-views"; +import { MONTHS_LIST } from "@/constants/calendar"; +import { getDate } from "@/helpers/date-time.helper"; +import { useCalendarView } from "@/hooks/store"; +import { ICycleIssuesFilter } from "@/store/issue/cycle"; +import { IModuleIssuesFilter } from "@/store/issue/module"; +import { IProjectIssuesFilter } from "@/store/issue/project"; +import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; // helpers -import { getDate } from "helpers/date-time.helper"; interface Props { issuesFilterStore: IProjectIssuesFilter | IModuleIssuesFilter | ICycleIssuesFilter | IProjectViewIssuesFilter; diff --git a/web/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx b/web/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx index 953c8384f..94d9731ef 100644 --- a/web/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx +++ b/web/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx @@ -2,14 +2,11 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { usePopper } from "react-popper"; +import { Check, ChevronUp, MoreVerticalIcon } from "lucide-react"; import { Popover, Transition } from "@headlessui/react"; // hooks -import useSize from "hooks/use-window-size"; // ui // icons -import { Check, ChevronUp, MoreVerticalIcon } from "lucide-react"; -import { ToggleSwitch } from "@plane/ui"; -// types import { IIssueDisplayFilterOptions, IIssueDisplayProperties, @@ -17,14 +14,17 @@ import { TCalendarLayouts, TIssueKanbanFilters, } from "@plane/types"; +import { ToggleSwitch } from "@plane/ui"; +// types // constants -import { CALENDAR_LAYOUTS } from "constants/calendar"; -import { EIssueFilterType } from "constants/issue"; -import { useCalendarView } from "hooks/store"; -import { ICycleIssuesFilter } from "store/issue/cycle"; -import { IModuleIssuesFilter } from "store/issue/module"; -import { IProjectIssuesFilter } from "store/issue/project"; -import { IProjectViewIssuesFilter } from "store/issue/project-views"; +import { CALENDAR_LAYOUTS } from "@/constants/calendar"; +import { EIssueFilterType } from "@/constants/issue"; +import { useCalendarView } from "@/hooks/store"; +import useSize from "@/hooks/use-window-size"; +import { ICycleIssuesFilter } from "@/store/issue/cycle"; +import { IModuleIssuesFilter } from "@/store/issue/module"; +import { IProjectIssuesFilter } from "@/store/issue/project"; +import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; interface ICalendarHeader { issuesFilterStore: IProjectIssuesFilter | IModuleIssuesFilter | ICycleIssuesFilter | IProjectViewIssuesFilter; diff --git a/web/components/issues/issue-layouts/calendar/header.tsx b/web/components/issues/issue-layouts/calendar/header.tsx index bb3bc3c6d..c07bd4a7b 100644 --- a/web/components/issues/issue-layouts/calendar/header.tsx +++ b/web/components/issues/issue-layouts/calendar/header.tsx @@ -2,20 +2,20 @@ import { observer } from "mobx-react-lite"; // components import { ChevronLeft, ChevronRight } from "lucide-react"; -import { CalendarMonthsDropdown, CalendarOptionsDropdown } from "components/issues"; -// icons -import { useCalendarView } from "hooks/store/use-calendar-view"; -import { ICycleIssuesFilter } from "store/issue/cycle"; -import { IModuleIssuesFilter } from "store/issue/module"; -import { IProjectIssuesFilter } from "store/issue/project"; -import { IProjectViewIssuesFilter } from "store/issue/project-views"; -import { EIssueFilterType } from "constants/issue"; import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueKanbanFilters, } from "@plane/types"; +import { CalendarMonthsDropdown, CalendarOptionsDropdown } from "@/components/issues"; +// icons +import { EIssueFilterType } from "@/constants/issue"; +import { useCalendarView } from "@/hooks/store/use-calendar-view"; +import { ICycleIssuesFilter } from "@/store/issue/cycle"; +import { IModuleIssuesFilter } from "@/store/issue/module"; +import { IProjectIssuesFilter } from "@/store/issue/project"; +import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; interface ICalendarHeader { issuesFilterStore: IProjectIssuesFilter | IModuleIssuesFilter | ICycleIssuesFilter | IProjectViewIssuesFilter; diff --git a/web/components/issues/issue-layouts/calendar/issue-block-root.tsx b/web/components/issues/issue-layouts/calendar/issue-block-root.tsx index 1f2f84869..dacc3439b 100644 --- a/web/components/issues/issue-layouts/calendar/issue-block-root.tsx +++ b/web/components/issues/issue-layouts/calendar/issue-block-root.tsx @@ -1,8 +1,8 @@ import React from "react"; // components -import { CalendarIssueBlock } from "components/issues"; -// types import { TIssue, TIssueMap } from "@plane/types"; +import { CalendarIssueBlock } from "@/components/issues"; +// types type Props = { issues: TIssueMap | undefined; diff --git a/web/components/issues/issue-layouts/calendar/issue-block.tsx b/web/components/issues/issue-layouts/calendar/issue-block.tsx index 226d447f2..7c72cca2e 100644 --- a/web/components/issues/issue-layouts/calendar/issue-block.tsx +++ b/web/components/issues/issue-layouts/calendar/issue-block.tsx @@ -1,16 +1,16 @@ import { useState, useRef } from "react"; -import { MoreHorizontal } from "lucide-react"; import { observer } from "mobx-react"; +import { MoreHorizontal } from "lucide-react"; +import { TIssue } from "@plane/types"; // components import { Tooltip, ControlLink } from "@plane/ui"; // hooks -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { useApplication, useIssueDetail, useProject, useProjectState } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useIssueDetail, useProject, useProjectState } from "@/hooks/store"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; // helpers -import { cn } from "helpers/common.helper"; // types -import { TIssue } from "@plane/types"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/calendar/issue-blocks.tsx b/web/components/issues/issue-layouts/calendar/issue-blocks.tsx index 6465a00bf..711639470 100644 --- a/web/components/issues/issue-layouts/calendar/issue-blocks.tsx +++ b/web/components/issues/issue-layouts/calendar/issue-blocks.tsx @@ -1,12 +1,12 @@ import { useState } from "react"; import { Draggable } from "@hello-pangea/dnd"; import { observer } from "mobx-react-lite"; -// components -import { CalendarQuickAddIssueForm, CalendarIssueBlockRoot } from "components/issues"; -// helpers -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -// types import { TIssue, TIssueMap } from "@plane/types"; +// components +import { CalendarQuickAddIssueForm, CalendarIssueBlockRoot } from "@/components/issues"; +// helpers +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +// types type Props = { date: Date; diff --git a/web/components/issues/issue-layouts/calendar/quick-add-issue-form.tsx b/web/components/issues/issue-layouts/calendar/quick-add-issue-form.tsx index 3b319fdad..4bac9ff4f 100644 --- a/web/components/issues/issue-layouts/calendar/quick-add-issue-form.tsx +++ b/web/components/issues/issue-layouts/calendar/quick-add-issue-form.tsx @@ -3,23 +3,23 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { useForm } from "react-hook-form"; // components -import { ExistingIssuesListModal } from "components/core"; -// hooks -import { useEventTracker, useIssueDetail, useProject } from "hooks/store"; -import useKeypress from "hooks/use-keypress"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -// helpers -import { createIssuePayload } from "helpers/issue.helper"; -// icons import { PlusIcon } from "lucide-react"; -// ui -import { TOAST_TYPE, setPromiseToast, setToast, CustomMenu } from "@plane/ui"; -// types import { ISearchIssueResponse, TIssue } from "@plane/types"; +import { TOAST_TYPE, setPromiseToast, setToast, CustomMenu } from "@plane/ui"; +import { ExistingIssuesListModal } from "@/components/core"; +// hooks +import { ISSUE_CREATED } from "@/constants/event-tracker"; +import { cn } from "@/helpers/common.helper"; +import { createIssuePayload } from "@/helpers/issue.helper"; +import { useEventTracker, useIssueDetail, useProject } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +// helpers +// icons +// ui +// types // constants -import { ISSUE_CREATED } from "constants/event-tracker"; // helper -import { cn } from "helpers/common.helper"; type Props = { formKey: keyof TIssue; diff --git a/web/components/issues/issue-layouts/calendar/roots/cycle-root.tsx b/web/components/issues/issue-layouts/calendar/roots/cycle-root.tsx index 128c84ba5..44f606b21 100644 --- a/web/components/issues/issue-layouts/calendar/roots/cycle-root.tsx +++ b/web/components/issues/issue-layouts/calendar/roots/cycle-root.tsx @@ -2,13 +2,13 @@ import { useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; //hooks -import { useCycle, useIssues } from "hooks/store"; +import { CycleIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useCycle, useIssues } from "@/hooks/store"; // components -import { CycleIssueQuickActions } from "components/issues"; import { BaseCalendarRoot } from "../base-calendar-root"; // types // constants -import { EIssuesStoreType } from "constants/issue"; export const CycleCalendarLayout: React.FC = observer(() => { const { currentProjectCompletedCycleIds } = useCycle(); diff --git a/web/components/issues/issue-layouts/calendar/roots/module-root.tsx b/web/components/issues/issue-layouts/calendar/roots/module-root.tsx index b112b8c3c..b1b1de32a 100644 --- a/web/components/issues/issue-layouts/calendar/roots/module-root.tsx +++ b/web/components/issues/issue-layouts/calendar/roots/module-root.tsx @@ -3,12 +3,12 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks // components -import { ModuleIssueQuickActions } from "components/issues"; -import { BaseCalendarRoot } from "../base-calendar-root"; +import { ModuleIssueQuickActions } from "@/components/issues"; // types // constants -import { EIssuesStoreType } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; +import { BaseCalendarRoot } from "../base-calendar-root"; export const ModuleCalendarLayout: React.FC = observer(() => { const router = useRouter(); diff --git a/web/components/issues/issue-layouts/calendar/roots/project-root.tsx b/web/components/issues/issue-layouts/calendar/roots/project-root.tsx index ad0cffe33..ae92f668c 100644 --- a/web/components/issues/issue-layouts/calendar/roots/project-root.tsx +++ b/web/components/issues/issue-layouts/calendar/roots/project-root.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; // hooks -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; // components import { BaseCalendarRoot } from "../base-calendar-root"; diff --git a/web/components/issues/issue-layouts/calendar/roots/project-view-root.tsx b/web/components/issues/issue-layouts/calendar/roots/project-view-root.tsx index ff1b654e5..fcd7110dd 100644 --- a/web/components/issues/issue-layouts/calendar/roots/project-view-root.tsx +++ b/web/components/issues/issue-layouts/calendar/roots/project-view-root.tsx @@ -1,8 +1,8 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; // components // types import { BaseCalendarRoot } from "../base-calendar-root"; diff --git a/web/components/issues/issue-layouts/calendar/week-days.tsx b/web/components/issues/issue-layouts/calendar/week-days.tsx index 968ae4097..765680827 100644 --- a/web/components/issues/issue-layouts/calendar/week-days.tsx +++ b/web/components/issues/issue-layouts/calendar/week-days.tsx @@ -1,14 +1,14 @@ import { observer } from "mobx-react-lite"; -// components -import { CalendarDayTile } from "components/issues"; -// helpers -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -// types -import { ICycleIssuesFilter } from "store/issue/cycle"; -import { IModuleIssuesFilter } from "store/issue/module"; -import { IProjectIssuesFilter } from "store/issue/project"; -import { IProjectViewIssuesFilter } from "store/issue/project-views"; import { TGroupedIssues, TIssue, TIssueMap } from "@plane/types"; +// components +import { CalendarDayTile } from "@/components/issues"; +// helpers +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +// types +import { ICycleIssuesFilter } from "@/store/issue/cycle"; +import { IModuleIssuesFilter } from "@/store/issue/module"; +import { IProjectIssuesFilter } from "@/store/issue/project"; +import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; import { ICalendarDate, ICalendarWeek } from "./types"; type Props = { diff --git a/web/components/issues/issue-layouts/calendar/week-header.tsx b/web/components/issues/issue-layouts/calendar/week-header.tsx index 4d2fed0e9..1b26adedd 100644 --- a/web/components/issues/issue-layouts/calendar/week-header.tsx +++ b/web/components/issues/issue-layouts/calendar/week-header.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; // constants -import { DAYS_LIST } from "constants/calendar"; +import { DAYS_LIST } from "@/constants/calendar"; type Props = { isLoading: boolean; @@ -24,7 +24,10 @@ export const CalendarWeekHeader: React.FC = observer((props) => { if (!showWeekends && (day.shortTitle === "Sat" || day.shortTitle === "Sun")) return null; return ( -
+
{day.shortTitle}
); diff --git a/web/components/issues/issue-layouts/empty-states/archived-issues.tsx b/web/components/issues/issue-layouts/empty-states/archived-issues.tsx index 36c895de3..4c7ed1aee 100644 --- a/web/components/issues/issue-layouts/empty-states/archived-issues.tsx +++ b/web/components/issues/issue-layouts/empty-states/archived-issues.tsx @@ -1,15 +1,15 @@ import size from "lodash/size"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -// hooks -import { useIssues } from "hooks/store"; -// components -import { EmptyState } from "components/empty-state"; -// constants -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { EmptyStateType } from "constants/empty-state"; -// types import { IIssueFilterOptions } from "@plane/types"; +// hooks +// components +import { EmptyState } from "@/components/empty-state"; +// constants +import { EmptyStateType } from "@/constants/empty-state"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; +// types export const ProjectArchivedEmptyState: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/empty-states/cycle.tsx b/web/components/issues/issue-layouts/empty-states/cycle.tsx index 8def7cc85..0f0b27c0c 100644 --- a/web/components/issues/issue-layouts/empty-states/cycle.tsx +++ b/web/components/issues/issue-layouts/empty-states/cycle.tsx @@ -1,18 +1,18 @@ import { useState } from "react"; -import { observer } from "mobx-react-lite"; import isEmpty from "lodash/isEmpty"; +import { observer } from "mobx-react-lite"; +import { ISearchIssueResponse, TIssueLayouts } from "@plane/types"; // hooks -import { useApplication, useCycle, useEventTracker, useIssues } from "hooks/store"; // ui import { TOAST_TYPE, setToast } from "@plane/ui"; -import { ExistingIssuesListModal } from "components/core"; +import { ExistingIssuesListModal } from "@/components/core"; // components -import { EmptyState } from "components/empty-state"; +import { EmptyState } from "@/components/empty-state"; // types -import { ISearchIssueResponse, TIssueLayouts } from "@plane/types"; // constants -import { EIssuesStoreType } from "constants/issue"; -import { EmptyStateType } from "constants/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useApplication, useCycle, useEventTracker, useIssues } from "@/hooks/store"; type Props = { workspaceSlug: string | undefined; @@ -67,8 +67,8 @@ export const CycleEmptyState: React.FC = observer((props) => { const emptyStateType = isCompletedAndEmpty ? EmptyStateType.PROJECT_CYCLE_COMPLETED_NO_ISSUES : isEmptyFilters - ? EmptyStateType.PROJECT_EMPTY_FILTER - : EmptyStateType.PROJECT_CYCLE_NO_ISSUES; + ? EmptyStateType.PROJECT_EMPTY_FILTER + : EmptyStateType.PROJECT_CYCLE_NO_ISSUES; const additionalPath = isCompletedAndEmpty ? undefined : activeLayout ?? "list"; const emptyStateSize = isEmptyFilters ? "lg" : "sm"; diff --git a/web/components/issues/issue-layouts/empty-states/draft-issues.tsx b/web/components/issues/issue-layouts/empty-states/draft-issues.tsx index c23fea100..f521afb15 100644 --- a/web/components/issues/issue-layouts/empty-states/draft-issues.tsx +++ b/web/components/issues/issue-layouts/empty-states/draft-issues.tsx @@ -1,15 +1,15 @@ import size from "lodash/size"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -// hooks -import { useIssues } from "hooks/store"; -// components -import { EmptyState } from "components/empty-state"; -// constants -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { EmptyStateType } from "constants/empty-state"; -// types import { IIssueFilterOptions } from "@plane/types"; +// hooks +// components +import { EmptyState } from "@/components/empty-state"; +// constants +import { EmptyStateType } from "@/constants/empty-state"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; +// types export const ProjectDraftEmptyState: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/empty-states/global-view.tsx b/web/components/issues/issue-layouts/empty-states/global-view.tsx index b24c4d5d6..e7177bf02 100644 --- a/web/components/issues/issue-layouts/empty-states/global-view.tsx +++ b/web/components/issues/issue-layouts/empty-states/global-view.tsx @@ -1,8 +1,8 @@ import { observer } from "mobx-react-lite"; import { Plus, PlusIcon } from "lucide-react"; // hooks -import { EmptyState } from "components/common"; -import { useApplication, useEventTracker, useProject } from "hooks/store"; +import { EmptyState } from "@/components/common"; +import { useApplication, useEventTracker, useProject } from "@/hooks/store"; // components // assets import emptyIssue from "public/empty-state/issue.svg"; diff --git a/web/components/issues/issue-layouts/empty-states/module.tsx b/web/components/issues/issue-layouts/empty-states/module.tsx index d8e3516cd..c1d7c4b26 100644 --- a/web/components/issues/issue-layouts/empty-states/module.tsx +++ b/web/components/issues/issue-layouts/empty-states/module.tsx @@ -1,18 +1,18 @@ import { useState } from "react"; import { observer } from "mobx-react-lite"; +import { ISearchIssueResponse, TIssueLayouts } from "@plane/types"; // hooks -import { useApplication, useEventTracker, useIssues } from "hooks/store"; // ui import { TOAST_TYPE, setToast } from "@plane/ui"; // ui // components -import { ExistingIssuesListModal } from "components/core"; -import { EmptyState } from "components/empty-state"; +import { ExistingIssuesListModal } from "@/components/core"; +import { EmptyState } from "@/components/empty-state"; // types -import { ISearchIssueResponse, TIssueLayouts } from "@plane/types"; // constants -import { EIssuesStoreType } from "constants/issue"; -import { EmptyStateType } from "constants/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useApplication, useEventTracker, useIssues } from "@/hooks/store"; type Props = { workspaceSlug: string | undefined; diff --git a/web/components/issues/issue-layouts/empty-states/project-issues.tsx b/web/components/issues/issue-layouts/empty-states/project-issues.tsx index 58929e48d..e77e4e7ae 100644 --- a/web/components/issues/issue-layouts/empty-states/project-issues.tsx +++ b/web/components/issues/issue-layouts/empty-states/project-issues.tsx @@ -1,15 +1,15 @@ import size from "lodash/size"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -// hooks -import { useApplication, useEventTracker, useIssues } from "hooks/store"; -// components -import { EmptyState } from "components/empty-state"; -// constants -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { EmptyStateType } from "constants/empty-state"; -// types import { IIssueFilterOptions } from "@plane/types"; +// hooks +// components +import { EmptyState } from "@/components/empty-state"; +// constants +import { EmptyStateType } from "@/constants/empty-state"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useApplication, useEventTracker, useIssues } from "@/hooks/store"; +// types export const ProjectEmptyState: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/empty-states/project-view.tsx b/web/components/issues/issue-layouts/empty-states/project-view.tsx index fd98011fa..fc4bc6ea9 100644 --- a/web/components/issues/issue-layouts/empty-states/project-view.tsx +++ b/web/components/issues/issue-layouts/empty-states/project-view.tsx @@ -1,9 +1,9 @@ import { observer } from "mobx-react-lite"; import { PlusIcon } from "lucide-react"; // hooks -import { EmptyState } from "components/common"; -import { EIssuesStoreType } from "constants/issue"; -import { useApplication, useEventTracker } from "hooks/store"; +import { EmptyState } from "@/components/common"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useApplication, useEventTracker } from "@/hooks/store"; // components // assets import emptyIssue from "public/empty-state/issue.svg"; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/cycle.tsx b/web/components/issues/issue-layouts/filters/applied-filters/cycle.tsx index 76f36e815..4f139727f 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/cycle.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/cycle.tsx @@ -1,11 +1,11 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; +import { TCycleGroups } from "@plane/types"; // hooks import { CycleGroupIcon } from "@plane/ui"; -import { useCycle } from "hooks/store"; +import { useCycle } from "@/hooks/store"; // ui // types -import { TCycleGroups } from "@plane/types"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/date.tsx b/web/components/issues/issue-layouts/filters/applied-filters/date.tsx index 24a197c76..5abbe0f62 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/date.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/date.tsx @@ -2,9 +2,9 @@ import { observer } from "mobx-react-lite"; // icons import { X } from "lucide-react"; // helpers -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; -import { renderFormattedDate } from "helpers/date-time.helper"; -import { capitalizeFirstLetter } from "helpers/string.helper"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { capitalizeFirstLetter } from "@/helpers/string.helper"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx b/web/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx index 94f2b30d1..279b57c94 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx @@ -1,5 +1,6 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; +import { IIssueFilterOptions, IIssueLabel, IState } from "@plane/types"; // hooks import { AppliedCycleFilters, @@ -11,14 +12,13 @@ import { AppliedProjectFilters, AppliedStateFilters, AppliedStateGroupFilters, -} from "components/issues"; -import { EUserProjectRoles } from "constants/project"; -import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper"; -import { useApplication, useUser } from "hooks/store"; +} from "@/components/issues"; +import { EUserProjectRoles } from "@/constants/project"; +import { replaceUnderscoreIfSnakeCase } from "@/helpers/string.helper"; +import { useApplication, useUser } from "@/hooks/store"; // components // helpers // types -import { IIssueFilterOptions, IIssueLabel, IState } from "@plane/types"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/applied-filters/label.tsx b/web/components/issues/issue-layouts/filters/applied-filters/label.tsx index 799233d01..ba9453c29 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/label.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/label.tsx @@ -2,8 +2,8 @@ import { observer } from "mobx-react-lite"; // icons import { X } from "lucide-react"; -// types import { IIssueLabel } from "@plane/types"; +// types type Props = { handleRemove: (val: string) => void; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/members.tsx b/web/components/issues/issue-layouts/filters/applied-filters/members.tsx index ff5034c97..e12db6962 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/members.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/members.tsx @@ -3,7 +3,7 @@ import { X } from "lucide-react"; // ui import { Avatar } from "@plane/ui"; // types -import { useMember } from "hooks/store"; +import { useMember } from "@/hooks/store"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/module.tsx b/web/components/issues/issue-layouts/filters/applied-filters/module.tsx index e34af8434..1105f5306 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/module.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/module.tsx @@ -2,7 +2,7 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; // hooks import { DiceIcon } from "@plane/ui"; -import { useModule } from "hooks/store"; +import { useModule } from "@/hooks/store"; // ui type Props = { diff --git a/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx b/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx index aad394d8a..23652b4be 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/priority.tsx @@ -2,9 +2,9 @@ import { observer } from "mobx-react-lite"; // icons import { X } from "lucide-react"; +import { TIssuePriorities } from "@plane/types"; import { PriorityIcon } from "@plane/ui"; // types -import { TIssuePriorities } from "@plane/types"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/project.tsx b/web/components/issues/issue-layouts/filters/applied-filters/project.tsx index 84e81b6e8..16e736027 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/project.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/project.tsx @@ -1,9 +1,9 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; // hooks -import { useProject } from "hooks/store"; +import { ProjectLogo } from "@/components/project"; +import { useProject } from "@/hooks/store"; // components -import { ProjectLogo } from "components/project"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx index 369431900..3687549da 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx @@ -1,12 +1,12 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions } from "@plane/types"; // hooks -import { AppliedFiltersList, SaveFilterView } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useIssues, useLabel, useProjectState } from "hooks/store"; +import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useLabel, useProjectState } from "@/hooks/store"; // components // types -import { IIssueFilterOptions } from "@plane/types"; export const ArchivedIssueAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx index d8c5320d0..bd176f0d3 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx @@ -1,12 +1,12 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions } from "@plane/types"; // hooks -import { AppliedFiltersList, SaveFilterView } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useIssues, useLabel, useProjectState } from "hooks/store"; +import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useLabel, useProjectState } from "@/hooks/store"; // components // types -import { IIssueFilterOptions } from "@plane/types"; export const CycleAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx index a6f2042d2..9227a3bb6 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx @@ -1,12 +1,12 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions } from "@plane/types"; // hooks -import { AppliedFiltersList, SaveFilterView } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useIssues, useLabel, useProjectState } from "hooks/store"; +import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useLabel, useProjectState } from "@/hooks/store"; // components // types -import { IIssueFilterOptions } from "@plane/types"; export const DraftIssueAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx index d907cf168..a2dee16dc 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx @@ -1,18 +1,18 @@ import isEqual from "lodash/isEqual"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions, TStaticViewTypes } from "@plane/types"; // hooks //ui import { Button } from "@plane/ui"; // components -import { AppliedFiltersList } from "components/issues"; +import { AppliedFiltersList } from "@/components/issues"; // types -import { GLOBAL_VIEW_UPDATED } from "constants/event-tracker"; -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { DEFAULT_GLOBAL_VIEWS_LIST, EUserWorkspaceRoles } from "constants/workspace"; +import { GLOBAL_VIEW_UPDATED } from "@/constants/event-tracker"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { DEFAULT_GLOBAL_VIEWS_LIST, EUserWorkspaceRoles } from "@/constants/workspace"; // constants -import { useEventTracker, useGlobalView, useIssues, useLabel, useUser } from "hooks/store"; -import { IIssueFilterOptions, TStaticViewTypes } from "@plane/types"; +import { useEventTracker, useGlobalView, useIssues, useLabel, useUser } from "@/hooks/store"; type Props = { globalViewId: string; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx index 7fd7b624f..421355636 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx @@ -1,12 +1,12 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions } from "@plane/types"; // hooks -import { AppliedFiltersList, SaveFilterView } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useIssues, useLabel, useProjectState } from "hooks/store"; +import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useLabel, useProjectState } from "@/hooks/store"; // components // types -import { IIssueFilterOptions } from "@plane/types"; export const ModuleAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx index b0c496a7b..81268f0a5 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx @@ -1,13 +1,13 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions } from "@plane/types"; // hooks // components -import { AppliedFiltersList } from "components/issues"; +import { AppliedFiltersList } from "@/components/issues"; // types -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useIssues, useLabel } from "hooks/store"; -import { useWorkspaceIssueProperties } from "hooks/use-workspace-issue-properties"; -import { IIssueFilterOptions } from "@plane/types"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useLabel } from "@/hooks/store"; +import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-properties"; export const ProfileIssuesAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx index 96b79a596..275ca39cd 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx @@ -1,15 +1,15 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions } from "@plane/types"; // hooks // components -import { AppliedFiltersList, SaveFilterView } from "components/issues"; +import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; // constants -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useLabel, useProjectState, useUser } from "hooks/store"; -import { useIssues } from "hooks/store/use-issues"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useLabel, useProjectState, useUser } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; // types -import { IIssueFilterOptions } from "@plane/types"; export const ProjectAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx b/web/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx index 6586159fa..af4a9692b 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx @@ -1,15 +1,15 @@ import isEqual from "lodash/isEqual"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IIssueFilterOptions } from "@plane/types"; // hooks import { Button } from "@plane/ui"; -import { AppliedFiltersList } from "components/issues"; -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useIssues, useLabel, useProjectState, useProjectView } from "hooks/store"; +import { AppliedFiltersList } from "@/components/issues"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues, useLabel, useProjectState, useProjectView } from "@/hooks/store"; // components // ui // types -import { IIssueFilterOptions } from "@plane/types"; export const ProjectViewAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/filters/applied-filters/state-group.tsx b/web/components/issues/issue-layouts/filters/applied-filters/state-group.tsx index b4a6baa53..4de28bc33 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/state-group.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/state-group.tsx @@ -2,8 +2,8 @@ import { observer } from "mobx-react-lite"; // icons import { X } from "lucide-react"; -import { StateGroupIcon } from "@plane/ui"; import { TStateGroups } from "@plane/types"; +import { StateGroupIcon } from "@plane/ui"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/issues/issue-layouts/filters/applied-filters/state.tsx b/web/components/issues/issue-layouts/filters/applied-filters/state.tsx index fc216afad..ff10d53a1 100644 --- a/web/components/issues/issue-layouts/filters/applied-filters/state.tsx +++ b/web/components/issues/issue-layouts/filters/applied-filters/state.tsx @@ -2,9 +2,9 @@ import { observer } from "mobx-react-lite"; // icons import { X } from "lucide-react"; +import { IState } from "@plane/types"; import { StateGroupIcon } from "@plane/ui"; // types -import { IState } from "@plane/types"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx index 02d1b2f04..d270d6a1c 100644 --- a/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx +++ b/web/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx @@ -1,5 +1,6 @@ import React from "react"; import { observer } from "mobx-react-lite"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssueGroupByOptions } from "@plane/types"; // components import { @@ -9,10 +10,9 @@ import { FilterIssueType, FilterOrderBy, FilterSubGroupBy, -} from "components/issues"; +} from "@/components/issues"; // types -import { ILayoutDisplayFiltersOptions } from "constants/issue"; -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssueGroupByOptions } from "@plane/types"; +import { ILayoutDisplayFiltersOptions } from "@/constants/issue"; type Props = { displayFilters: IIssueDisplayFilterOptions; diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/display-properties.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/display-properties.tsx index d00848acd..54cb0a439 100644 --- a/web/components/issues/issue-layouts/filters/header/display-filters/display-properties.tsx +++ b/web/components/issues/issue-layouts/filters/header/display-filters/display-properties.tsx @@ -1,8 +1,8 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// components -import { ISSUE_DISPLAY_PROPERTIES } from "constants/issue"; import { IIssueDisplayProperties } from "@plane/types"; +// components +import { ISSUE_DISPLAY_PROPERTIES } from "@/constants/issue"; import { FilterHeader } from "../helpers/filter-header"; // types // constants diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx index 6de3c940d..604adf5db 100644 --- a/web/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx +++ b/web/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx @@ -1,11 +1,11 @@ import React from "react"; import { observer } from "mobx-react-lite"; +import { IIssueDisplayFilterOptions, TIssueExtraOptions } from "@plane/types"; // components -import { FilterOption } from "components/issues"; +import { FilterOption } from "@/components/issues"; // types -import { ISSUE_EXTRA_OPTIONS } from "constants/issue"; -import { IIssueDisplayFilterOptions, TIssueExtraOptions } from "@plane/types"; +import { ISSUE_EXTRA_OPTIONS } from "@/constants/issue"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx index 10dfa8c7c..f05452f21 100644 --- a/web/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx +++ b/web/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx @@ -1,10 +1,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// types -import { ISSUE_GROUP_BY_OPTIONS } from "constants/issue"; import { IIssueDisplayFilterOptions, TIssueGroupByOptions } from "@plane/types"; +// components +import { FilterHeader, FilterOption } from "@/components/issues"; +// types +import { ISSUE_GROUP_BY_OPTIONS } from "@/constants/issue"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/issue-type.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/issue-type.tsx index 9cdcf953b..57fbc9add 100644 --- a/web/components/issues/issue-layouts/filters/header/display-filters/issue-type.tsx +++ b/web/components/issues/issue-layouts/filters/header/display-filters/issue-type.tsx @@ -1,11 +1,11 @@ import React from "react"; import { observer } from "mobx-react-lite"; +import { TIssueTypeFilters } from "@plane/types"; // components -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // types -import { ISSUE_FILTER_OPTIONS } from "constants/issue"; -import { TIssueTypeFilters } from "@plane/types"; +import { ISSUE_FILTER_OPTIONS } from "@/constants/issue"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx index afcd0ba1b..aa69868ca 100644 --- a/web/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx +++ b/web/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx @@ -1,11 +1,11 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; +import { TIssueOrderByOptions } from "@plane/types"; // components -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // types -import { ISSUE_ORDER_BY_OPTIONS } from "constants/issue"; -import { TIssueOrderByOptions } from "@plane/types"; +import { ISSUE_ORDER_BY_OPTIONS } from "@/constants/issue"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx b/web/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx index 98dcb7b95..2d49719a3 100644 --- a/web/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx +++ b/web/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx @@ -1,10 +1,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// types -import { ISSUE_GROUP_BY_OPTIONS } from "constants/issue"; import { IIssueDisplayFilterOptions, TIssueGroupByOptions } from "@plane/types"; +// components +import { FilterHeader, FilterOption } from "@/components/issues"; +// types +import { ISSUE_GROUP_BY_OPTIONS } from "@/constants/issue"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/filters/assignee.tsx b/web/components/issues/issue-layouts/filters/header/filters/assignee.tsx index c51fcf7ab..e7edaebc8 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/assignee.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/assignee.tsx @@ -1,12 +1,12 @@ import { useMemo, useState } from "react"; -import { observer } from "mobx-react-lite"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react-lite"; // hooks -import { useMember } from "hooks/store"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// ui import { Avatar, Loader } from "@plane/ui"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useMember } from "@/hooks/store"; +// components +// ui type Props = { appliedFilters: string[] | null; @@ -26,8 +26,8 @@ export const FilterAssignees: React.FC = observer((props: Props) => { const appliedFiltersCount = appliedFilters?.length ?? 0; const sortedOptions = useMemo(() => { - const filteredOptions = (memberIds || []).filter((memberId) => - getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) + const filteredOptions = (memberIds || []).filter( + (memberId) => getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) ); return sortBy(filteredOptions, [ diff --git a/web/components/issues/issue-layouts/filters/header/filters/created-by.tsx b/web/components/issues/issue-layouts/filters/header/filters/created-by.tsx index 765955bf9..071f3c03a 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/created-by.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/created-by.tsx @@ -1,10 +1,10 @@ import { useMemo, useState } from "react"; -import { observer } from "mobx-react-lite"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react-lite"; // hooks import { Avatar, Loader } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; -import { useMember } from "hooks/store"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useMember } from "@/hooks/store"; // components // ui @@ -24,8 +24,8 @@ export const FilterCreatedBy: React.FC = observer((props: Props) => { const { getUserDetails } = useMember(); const sortedOptions = useMemo(() => { - const filteredOptions = (memberIds || []).filter((memberId) => - getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) + const filteredOptions = (memberIds || []).filter( + (memberId) => getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) ); return sortBy(filteredOptions, [ diff --git a/web/components/issues/issue-layouts/filters/header/filters/cycle.tsx b/web/components/issues/issue-layouts/filters/header/filters/cycle.tsx index b3a65a399..4e3fe6fb0 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/cycle.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/cycle.tsx @@ -1,13 +1,13 @@ import React, { useMemo, useState } from "react"; import sortBy from "lodash/sortBy"; import { observer } from "mobx-react"; +import { TCycleGroups } from "@plane/types"; // components import { Loader, CycleGroupIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; -import { useApplication, useCycle } from "hooks/store"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useApplication, useCycle } from "@/hooks/store"; // ui // types -import { TCycleGroups } from "@plane/types"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx b/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx index 257aa1977..7e6e44ebf 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx @@ -1,6 +1,7 @@ import { useState } from "react"; import { observer } from "mobx-react-lite"; import { Search, X } from "lucide-react"; +import { IIssueFilterOptions, IIssueLabel, IState } from "@plane/types"; // hooks import { FilterAssignees, @@ -15,12 +16,11 @@ import { FilterTargetDate, FilterCycle, FilterModule, -} from "components/issues"; -import { ILayoutDisplayFiltersOptions } from "constants/issue"; -import { useApplication } from "hooks/store"; +} from "@/components/issues"; +import { ILayoutDisplayFiltersOptions } from "@/constants/issue"; +import { useApplication } from "@/hooks/store"; // components // types -import { IIssueFilterOptions, IIssueLabel, IState } from "@plane/types"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/filters/labels.tsx b/web/components/issues/issue-layouts/filters/header/filters/labels.tsx index 7097b1337..c93472ff9 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/labels.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/labels.tsx @@ -1,12 +1,12 @@ import React, { useMemo, useState } from "react"; -import { observer } from "mobx-react"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react"; +import { IIssueLabel } from "@plane/types"; // components import { Loader } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // ui // types -import { IIssueLabel } from "@plane/types"; const LabelIcons = ({ color }: { color: string }) => ( diff --git a/web/components/issues/issue-layouts/filters/header/filters/mentions.tsx b/web/components/issues/issue-layouts/filters/header/filters/mentions.tsx index 80c16478a..b1b070434 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/mentions.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/mentions.tsx @@ -1,10 +1,10 @@ import { useMemo, useState } from "react"; -import { observer } from "mobx-react-lite"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react-lite"; // hooks import { Loader, Avatar } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; -import { useMember } from "hooks/store"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useMember } from "@/hooks/store"; // components // ui @@ -26,8 +26,8 @@ export const FilterMentions: React.FC = observer((props: Props) => { const appliedFiltersCount = appliedFilters?.length ?? 0; const sortedOptions = useMemo(() => { - const filteredOptions = (memberIds || []).filter((memberId) => - getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) + const filteredOptions = (memberIds || []).filter( + (memberId) => getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) ); return sortBy(filteredOptions, [ diff --git a/web/components/issues/issue-layouts/filters/header/filters/module.tsx b/web/components/issues/issue-layouts/filters/header/filters/module.tsx index 6b6cd2b4d..f4b3d0e19 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/module.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/module.tsx @@ -3,8 +3,8 @@ import sortBy from "lodash/sortBy"; import { observer } from "mobx-react"; // components import { Loader, DiceIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; -import { useApplication, useModule } from "hooks/store"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useApplication, useModule } from "@/hooks/store"; // ui type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/filters/priority.tsx b/web/components/issues/issue-layouts/filters/header/filters/priority.tsx index 839e25e3d..fc44e3044 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/priority.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/priority.tsx @@ -5,10 +5,10 @@ import { observer } from "mobx-react-lite"; import { PriorityIcon } from "@plane/ui"; // components -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { ISSUE_PRIORITIES } from "constants/issue"; +import { ISSUE_PRIORITIES } from "@/constants/issue"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/issues/issue-layouts/filters/header/filters/project.tsx b/web/components/issues/issue-layouts/filters/header/filters/project.tsx index b97001b00..b3924cd34 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/project.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/project.tsx @@ -1,13 +1,13 @@ import React, { useMemo, useState } from "react"; -import { observer } from "mobx-react"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react"; // components import { Loader } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // hooks -import { useProject } from "hooks/store"; +import { ProjectLogo } from "@/components/project"; +import { useProject } from "@/hooks/store"; // components -import { ProjectLogo } from "components/project"; // ui // helpers diff --git a/web/components/issues/issue-layouts/filters/header/filters/start-date.tsx b/web/components/issues/issue-layouts/filters/header/filters/start-date.tsx index 3c47eb286..2b55ada35 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/start-date.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/start-date.tsx @@ -2,10 +2,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { DateFilterModal } from "components/core"; -import { FilterHeader, FilterOption } from "components/issues"; +import { DateFilterModal } from "@/components/core"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/issues/issue-layouts/filters/header/filters/state-group.tsx b/web/components/issues/issue-layouts/filters/header/filters/state-group.tsx index ca7fe270d..3ad5b36e3 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/state-group.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/state-group.tsx @@ -2,9 +2,9 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components import { StateGroupIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // icons -import { STATE_GROUPS } from "constants/state"; +import { STATE_GROUPS } from "@/constants/state"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/filters/header/filters/state.tsx b/web/components/issues/issue-layouts/filters/header/filters/state.tsx index 2c2cca53b..56340e6db 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/state.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/state.tsx @@ -1,12 +1,12 @@ import React, { useMemo, useState } from "react"; -import { observer } from "mobx-react"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react"; +import { IState } from "@plane/types"; // components import { Loader, StateGroupIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // ui // types -import { IState } from "@plane/types"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/issues/issue-layouts/filters/header/filters/target-date.tsx b/web/components/issues/issue-layouts/filters/header/filters/target-date.tsx index 83a526351..e46e52a41 100644 --- a/web/components/issues/issue-layouts/filters/header/filters/target-date.tsx +++ b/web/components/issues/issue-layouts/filters/header/filters/target-date.tsx @@ -2,10 +2,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { DateFilterModal } from "components/core"; -import { FilterHeader, FilterOption } from "components/issues"; +import { DateFilterModal } from "@/components/core"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx b/web/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx index 4ee92cc23..be4e5e9a9 100644 --- a/web/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx +++ b/web/components/issues/issue-layouts/filters/header/helpers/dropdown.tsx @@ -1,9 +1,9 @@ import React, { Fragment, useState } from "react"; import { Placement } from "@popperjs/core"; import { usePopper } from "react-popper"; +import { ChevronUp } from "lucide-react"; import { Popover, Transition } from "@headlessui/react"; // ui -import { ChevronUp } from "lucide-react"; import { Button } from "@plane/ui"; // icons diff --git a/web/components/issues/issue-layouts/filters/header/layout-selection.tsx b/web/components/issues/issue-layouts/filters/header/layout-selection.tsx index 2b8df8edf..42d3633ae 100644 --- a/web/components/issues/issue-layouts/filters/header/layout-selection.tsx +++ b/web/components/issues/issue-layouts/filters/header/layout-selection.tsx @@ -1,12 +1,12 @@ import React from "react"; // ui +import { TIssueLayouts } from "@plane/types"; import { Tooltip } from "@plane/ui"; // types -import { ISSUE_LAYOUTS } from "constants/issue"; -import { TIssueLayouts } from "@plane/types"; +import { ISSUE_LAYOUTS } from "@/constants/issue"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; type Props = { layouts: TIssueLayouts[]; diff --git a/web/components/issues/issue-layouts/gantt/base-gantt-root.tsx b/web/components/issues/issue-layouts/gantt/base-gantt-root.tsx index 11f52db80..935dc5d93 100644 --- a/web/components/issues/issue-layouts/gantt/base-gantt-root.tsx +++ b/web/components/issues/issue-layouts/gantt/base-gantt-root.tsx @@ -1,19 +1,19 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TIssue, TUnGroupedIssues } from "@plane/types"; // hooks -import { GanttChartRoot, IBlockUpdateData, IssueGanttSidebar } from "components/gantt-chart"; -import { GanttQuickAddIssueForm, IssueGanttBlock } from "components/issues"; -import { EUserProjectRoles } from "constants/project"; -import { renderIssueBlocksStructure } from "helpers/issue.helper"; -import { useIssues, useUser } from "hooks/store"; -import { useIssuesActions } from "hooks/use-issues-actions"; +import { GanttChartRoot, IBlockUpdateData, IssueGanttSidebar } from "@/components/gantt-chart"; +import { GanttQuickAddIssueForm, IssueGanttBlock } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { renderIssueBlocksStructure } from "@/helpers/issue.helper"; +import { useIssues, useUser } from "@/hooks/store"; +import { useIssuesActions } from "@/hooks/use-issues-actions"; // components // helpers // types -import { TIssue, TUnGroupedIssues } from "@plane/types"; // constants -import { EIssuesStoreType } from "constants/issue"; type GanttStoreType = | EIssuesStoreType.PROJECT diff --git a/web/components/issues/issue-layouts/gantt/blocks.tsx b/web/components/issues/issue-layouts/gantt/blocks.tsx index 1676b1f34..aff992b66 100644 --- a/web/components/issues/issue-layouts/gantt/blocks.tsx +++ b/web/components/issues/issue-layouts/gantt/blocks.tsx @@ -1,11 +1,11 @@ import { observer } from "mobx-react"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // ui import { Tooltip, StateGroupIcon, ControlLink } from "@plane/ui"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -import { useApplication, useIssueDetail, useProject, useProjectState } from "hooks/store"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { useApplication, useIssueDetail, useProject, useProjectState } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { issueId: string; diff --git a/web/components/issues/issue-layouts/gantt/cycle-root.tsx b/web/components/issues/issue-layouts/gantt/cycle-root.tsx index 923845e7b..c0ece0f9f 100644 --- a/web/components/issues/issue-layouts/gantt/cycle-root.tsx +++ b/web/components/issues/issue-layouts/gantt/cycle-root.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // components import { BaseGanttRoot } from "./base-gantt-root"; diff --git a/web/components/issues/issue-layouts/gantt/module-root.tsx b/web/components/issues/issue-layouts/gantt/module-root.tsx index e14f1339a..23ebdbc2d 100644 --- a/web/components/issues/issue-layouts/gantt/module-root.tsx +++ b/web/components/issues/issue-layouts/gantt/module-root.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // components import { BaseGanttRoot } from "./base-gantt-root"; diff --git a/web/components/issues/issue-layouts/gantt/project-root.tsx b/web/components/issues/issue-layouts/gantt/project-root.tsx index d8a2cd1a1..1c0dba112 100644 --- a/web/components/issues/issue-layouts/gantt/project-root.tsx +++ b/web/components/issues/issue-layouts/gantt/project-root.tsx @@ -1,7 +1,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; // hooks -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // components import { BaseGanttRoot } from "./base-gantt-root"; diff --git a/web/components/issues/issue-layouts/gantt/project-view-root.tsx b/web/components/issues/issue-layouts/gantt/project-view-root.tsx index 80d5e047b..45c0ff3eb 100644 --- a/web/components/issues/issue-layouts/gantt/project-view-root.tsx +++ b/web/components/issues/issue-layouts/gantt/project-view-root.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // components import { BaseGanttRoot } from "./base-gantt-root"; // constants diff --git a/web/components/issues/issue-layouts/gantt/quick-add-issue-form.tsx b/web/components/issues/issue-layouts/gantt/quick-add-issue-form.tsx index b2d3ac9d4..d0fb69ab3 100644 --- a/web/components/issues/issue-layouts/gantt/quick-add-issue-form.tsx +++ b/web/components/issues/issue-layouts/gantt/quick-add-issue-form.tsx @@ -3,19 +3,19 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { useForm } from "react-hook-form"; import { PlusIcon } from "lucide-react"; +import { IProject, TIssue } from "@plane/types"; // hooks import { setPromiseToast } from "@plane/ui"; -import { cn } from "helpers/common.helper"; -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { createIssuePayload } from "helpers/issue.helper"; -import { useEventTracker, useProject } from "hooks/store"; -import useKeypress from "hooks/use-keypress"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; +import { ISSUE_CREATED } from "@/constants/event-tracker"; +import { cn } from "@/helpers/common.helper"; +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { createIssuePayload } from "@/helpers/issue.helper"; +import { useEventTracker, useProject } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; // helpers // ui // types -import { IProject, TIssue } from "@plane/types"; -import { ISSUE_CREATED } from "constants/event-tracker"; // constants interface IInputProps { diff --git a/web/components/issues/issue-layouts/kanban/base-kanban-root.tsx b/web/components/issues/issue-layouts/kanban/base-kanban-root.tsx index e90823c5b..21e47c1cd 100644 --- a/web/components/issues/issue-layouts/kanban/base-kanban-root.tsx +++ b/web/components/issues/issue-layouts/kanban/base-kanban-root.tsx @@ -2,17 +2,17 @@ import { FC, useCallback, useRef, useState } from "react"; import { DragDropContext, DragStart, DraggableLocation, DropResult, Droppable } from "@hello-pangea/dnd"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TIssue } from "@plane/types"; // hooks import { Spinner, TOAST_TYPE, setToast } from "@plane/ui"; -import { DeleteIssueModal } from "components/issues"; -import { ISSUE_DELETED } from "constants/event-tracker"; -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useEventTracker, useIssues, useUser } from "hooks/store"; -import { useIssuesActions } from "hooks/use-issues-actions"; +import { DeleteIssueModal } from "@/components/issues"; +import { ISSUE_DELETED } from "@/constants/event-tracker"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useEventTracker, useIssues, useUser } from "@/hooks/store"; +import { useIssuesActions } from "@/hooks/use-issues-actions"; // ui // types -import { TIssue } from "@plane/types"; import { IQuickActionProps } from "../list/list-view-types"; //components import { KanBan } from "./default"; diff --git a/web/components/issues/issue-layouts/kanban/block.tsx b/web/components/issues/issue-layouts/kanban/block.tsx index 19a0a4173..dda6b915d 100644 --- a/web/components/issues/issue-layouts/kanban/block.tsx +++ b/web/components/issues/issue-layouts/kanban/block.tsx @@ -1,14 +1,14 @@ import { MutableRefObject, memo } from "react"; import { Draggable, DraggableProvided, DraggableStateSnapshot } from "@hello-pangea/dnd"; import { observer } from "mobx-react-lite"; +import { TIssue, IIssueDisplayProperties, IIssueMap } from "@plane/types"; // hooks import { Tooltip, ControlLink } from "@plane/ui"; -import RenderIfVisible from "components/core/render-if-visible-HOC"; -import { cn } from "helpers/common.helper"; -import { useApplication, useIssueDetail, useProject } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import RenderIfVisible from "@/components/core/render-if-visible-HOC"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useIssueDetail, useProject } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // components -import { TIssue, IIssueDisplayProperties, IIssueMap } from "@plane/types"; import { IssueProperties } from "../properties/all-properties"; import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC"; // ui diff --git a/web/components/issues/issue-layouts/kanban/blocks-list.tsx b/web/components/issues/issue-layouts/kanban/blocks-list.tsx index 7a58a4933..a906a329f 100644 --- a/web/components/issues/issue-layouts/kanban/blocks-list.tsx +++ b/web/components/issues/issue-layouts/kanban/blocks-list.tsx @@ -1,7 +1,7 @@ import { MutableRefObject, memo } from "react"; //types -import { KanbanIssueBlock } from "components/issues"; import { TIssue, IIssueDisplayProperties, IIssueMap } from "@plane/types"; +import { KanbanIssueBlock } from "@/components/issues"; // components interface IssueBlocksListProps { diff --git a/web/components/issues/issue-layouts/kanban/default.tsx b/web/components/issues/issue-layouts/kanban/default.tsx index 06f798d0f..63925c21c 100644 --- a/web/components/issues/issue-layouts/kanban/default.tsx +++ b/web/components/issues/issue-layouts/kanban/default.tsx @@ -1,18 +1,5 @@ import { MutableRefObject } from "react"; import { observer } from "mobx-react-lite"; -// constants -// hooks -import { - useCycle, - useIssueDetail, - useKanbanView, - useLabel, - useMember, - useModule, - useProject, - useProjectState, -} from "hooks/store"; -// types import { GroupByColumnTypes, IGroupByColumn, @@ -24,12 +11,25 @@ import { TUnGroupedIssues, TIssueKanbanFilters, } from "@plane/types"; +// constants +// hooks +import { + useCycle, + useIssueDetail, + useKanbanView, + useLabel, + useMember, + useModule, + useProject, + useProjectState, +} from "@/hooks/store"; +// types // parent components import { getGroupByColumns } from "../utils"; // components +import { KanbanStoreType } from "./base-kanban-root"; import { HeaderGroupByCard } from "./headers/group-by-card"; import { KanbanGroup } from "./kanban-group"; -import { KanbanStoreType } from "./base-kanban-root"; export interface IGroupByKanBan { issuesMap: IIssueMap; diff --git a/web/components/issues/issue-layouts/kanban/headers/group-by-card.tsx b/web/components/issues/issue-layouts/kanban/headers/group-by-card.tsx index a14dd5ddc..44df59d9a 100644 --- a/web/components/issues/issue-layouts/kanban/headers/group-by-card.tsx +++ b/web/components/issues/issue-layouts/kanban/headers/group-by-card.tsx @@ -3,16 +3,16 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // lucide icons import { Minimize2, Maximize2, Circle, Plus } from "lucide-react"; +import { TIssue, ISearchIssueResponse, TIssueKanbanFilters } from "@plane/types"; // ui import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; // components -import { ExistingIssuesListModal } from "components/core"; -import { CreateUpdateIssueModal } from "components/issues"; +import { ExistingIssuesListModal } from "@/components/core"; +import { CreateUpdateIssueModal } from "@/components/issues"; // constants // hooks -import { useEventTracker } from "hooks/store"; +import { useEventTracker } from "@/hooks/store"; // types -import { TIssue, ISearchIssueResponse, TIssueKanbanFilters } from "@plane/types"; import { KanbanStoreType } from "../base-kanban-root"; interface IHeaderGroupByCard { diff --git a/web/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx b/web/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx index b0859a70d..475f63877 100644 --- a/web/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx +++ b/web/components/issues/issue-layouts/kanban/headers/sub-group-by-card.tsx @@ -1,8 +1,8 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { Circle, ChevronDown, ChevronUp } from "lucide-react"; -// mobx import { TIssueKanbanFilters } from "@plane/types"; +// mobx interface IHeaderSubGroupByCard { icon?: React.ReactNode; diff --git a/web/components/issues/issue-layouts/kanban/kanban-group.tsx b/web/components/issues/issue-layouts/kanban/kanban-group.tsx index 24f3b9532..b3e24dc23 100644 --- a/web/components/issues/issue-layouts/kanban/kanban-group.tsx +++ b/web/components/issues/issue-layouts/kanban/kanban-group.tsx @@ -1,9 +1,6 @@ import { MutableRefObject } from "react"; import { Droppable } from "@hello-pangea/dnd"; // hooks -import { useProjectState } from "hooks/store"; -//components -//types import { TGroupedIssues, TIssue, @@ -12,6 +9,9 @@ import { TSubGroupedIssues, TUnGroupedIssues, } from "@plane/types"; +import { useProjectState } from "@/hooks/store"; +//components +//types import { KanbanIssueBlocksList, KanBanQuickAddIssueForm } from "."; interface IKanbanGroup { diff --git a/web/components/issues/issue-layouts/kanban/quick-add-issue-form.tsx b/web/components/issues/issue-layouts/kanban/quick-add-issue-form.tsx index 71a0e661c..e5275f96a 100644 --- a/web/components/issues/issue-layouts/kanban/quick-add-issue-form.tsx +++ b/web/components/issues/issue-layouts/kanban/quick-add-issue-form.tsx @@ -3,17 +3,17 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { useForm } from "react-hook-form"; import { PlusIcon } from "lucide-react"; +import { TIssue } from "@plane/types"; // hooks import { setPromiseToast } from "@plane/ui"; -import { ISSUE_CREATED } from "constants/event-tracker"; -import { createIssuePayload } from "helpers/issue.helper"; -import { useEventTracker, useProject } from "hooks/store"; -import useKeypress from "hooks/use-keypress"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; +import { ISSUE_CREATED } from "@/constants/event-tracker"; +import { createIssuePayload } from "@/helpers/issue.helper"; +import { useEventTracker, useProject } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; // helpers // ui // types -import { TIssue } from "@plane/types"; // constants const Inputs = (props: any) => { diff --git a/web/components/issues/issue-layouts/kanban/roots/cycle-root.tsx b/web/components/issues/issue-layouts/kanban/roots/cycle-root.tsx index 19ac8a1d9..be61dbbda 100644 --- a/web/components/issues/issue-layouts/kanban/roots/cycle-root.tsx +++ b/web/components/issues/issue-layouts/kanban/roots/cycle-root.tsx @@ -2,9 +2,9 @@ import React, { useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { CycleIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { useCycle, useIssues } from "hooks/store"; +import { CycleIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useCycle, useIssues } from "@/hooks/store"; // ui // types // components diff --git a/web/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx b/web/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx index 619b78cb4..6ff958a72 100644 --- a/web/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx +++ b/web/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; // components -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; import { BaseKanBanRoot } from "../base-kanban-root"; export interface IKanBanLayout {} diff --git a/web/components/issues/issue-layouts/kanban/roots/module-root.tsx b/web/components/issues/issue-layouts/kanban/roots/module-root.tsx index eaf96a994..14eaa0c19 100644 --- a/web/components/issues/issue-layouts/kanban/roots/module-root.tsx +++ b/web/components/issues/issue-layouts/kanban/roots/module-root.tsx @@ -2,9 +2,9 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hook -import { ModuleIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { ModuleIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; // components // types // constants diff --git a/web/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx b/web/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx index c36fcc960..2d0d17625 100644 --- a/web/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx +++ b/web/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx @@ -1,9 +1,9 @@ import { observer } from "mobx-react-lite"; // hooks -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useUser } from "hooks/store"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useUser } from "@/hooks/store"; // components // types // constants diff --git a/web/components/issues/issue-layouts/kanban/roots/project-root.tsx b/web/components/issues/issue-layouts/kanban/roots/project-root.tsx index 12071ffbd..fb385aeff 100644 --- a/web/components/issues/issue-layouts/kanban/roots/project-root.tsx +++ b/web/components/issues/issue-layouts/kanban/roots/project-root.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; // mobx store -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; // components // types // constants diff --git a/web/components/issues/issue-layouts/kanban/roots/project-view-root.tsx b/web/components/issues/issue-layouts/kanban/roots/project-view-root.tsx index c1a07c317..ff52def5f 100644 --- a/web/components/issues/issue-layouts/kanban/roots/project-view-root.tsx +++ b/web/components/issues/issue-layouts/kanban/roots/project-view-root.tsx @@ -2,7 +2,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // constant // types import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; diff --git a/web/components/issues/issue-layouts/kanban/swimlanes.tsx b/web/components/issues/issue-layouts/kanban/swimlanes.tsx index 644c254d6..e83103e89 100644 --- a/web/components/issues/issue-layouts/kanban/swimlanes.tsx +++ b/web/components/issues/issue-layouts/kanban/swimlanes.tsx @@ -1,7 +1,5 @@ import { MutableRefObject } from "react"; import { observer } from "mobx-react-lite"; -// components -import { useCycle, useLabel, useMember, useModule, useProject, useProjectState } from "hooks/store"; import { GroupByColumnTypes, IGroupByColumn, @@ -13,11 +11,13 @@ import { TUnGroupedIssues, TIssueKanbanFilters, } from "@plane/types"; +// components +import { useCycle, useLabel, useMember, useModule, useProject, useProjectState } from "@/hooks/store"; import { getGroupByColumns } from "../utils"; +import { KanbanStoreType } from "./base-kanban-root"; import { KanBan } from "./default"; import { HeaderGroupByCard } from "./headers/group-by-card"; import { HeaderSubGroupByCard } from "./headers/sub-group-by-card"; -import { KanbanStoreType } from "./base-kanban-root"; // types // constants diff --git a/web/components/issues/issue-layouts/list/base-list-root.tsx b/web/components/issues/issue-layouts/list/base-list-root.tsx index ae198f1ae..ac9427101 100644 --- a/web/components/issues/issue-layouts/list/base-list-root.tsx +++ b/web/components/issues/issue-layouts/list/base-list-root.tsx @@ -1,15 +1,15 @@ import { FC, useCallback } from "react"; import { observer } from "mobx-react-lite"; -// types -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useIssues, useUser } from "hooks/store"; - import { TIssue } from "@plane/types"; +// types +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useIssues, useUser } from "@/hooks/store"; + +import { useIssuesActions } from "@/hooks/use-issues-actions"; // components import { List } from "./default"; import { IQuickActionProps } from "./list-view-types"; -import { useIssuesActions } from "hooks/use-issues-actions"; // constants // hooks diff --git a/web/components/issues/issue-layouts/list/block.tsx b/web/components/issues/issue-layouts/list/block.tsx index bb7a9ee83..6e3dba43f 100644 --- a/web/components/issues/issue-layouts/list/block.tsx +++ b/web/components/issues/issue-layouts/list/block.tsx @@ -1,14 +1,14 @@ import { observer } from "mobx-react-lite"; +import { TIssue, IIssueDisplayProperties, TIssueMap } from "@plane/types"; // components // hooks -import { usePlatformOS } from "hooks/use-platform-os"; -import { useApplication, useIssueDetail, useProject } from "hooks/store"; // ui import { Spinner, Tooltip, ControlLink } from "@plane/ui"; // helper -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; +import { useApplication, useIssueDetail, useProject } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // types -import { TIssue, IIssueDisplayProperties, TIssueMap } from "@plane/types"; import { IssueProperties } from "../properties/all-properties"; interface IssueBlockProps { diff --git a/web/components/issues/issue-layouts/list/blocks-list.tsx b/web/components/issues/issue-layouts/list/blocks-list.tsx index 2296e7b68..0a3bf13d4 100644 --- a/web/components/issues/issue-layouts/list/blocks-list.tsx +++ b/web/components/issues/issue-layouts/list/blocks-list.tsx @@ -1,9 +1,9 @@ import { FC, MutableRefObject } from "react"; // components -import RenderIfVisible from "components/core/render-if-visible-HOC"; -import { IssueBlock } from "components/issues"; -// types import { TGroupedIssues, TIssue, IIssueDisplayProperties, TIssueMap, TUnGroupedIssues } from "@plane/types"; +import RenderIfVisible from "@/components/core/render-if-visible-HOC"; +import { IssueBlock } from "@/components/issues"; +// types interface Props { issueIds: TGroupedIssues | TUnGroupedIssues | any; diff --git a/web/components/issues/issue-layouts/list/default.tsx b/web/components/issues/issue-layouts/list/default.tsx index 4009df6d2..41cc755a0 100644 --- a/web/components/issues/issue-layouts/list/default.tsx +++ b/web/components/issues/issue-layouts/list/default.tsx @@ -1,10 +1,5 @@ import { useRef } from "react"; // components -import { IssueBlocksList, ListQuickAddIssueForm } from "components/issues"; -// hooks -import { useCycle, useLabel, useMember, useModule, useProject, useProjectState } from "hooks/store"; -// constants -// types import { GroupByColumnTypes, TGroupedIssues, @@ -14,9 +9,14 @@ import { TUnGroupedIssues, IGroupByColumn, } from "@plane/types"; +import { IssueBlocksList, ListQuickAddIssueForm } from "@/components/issues"; +// hooks +import { EIssuesStoreType } from "@/constants/issue"; +import { useCycle, useLabel, useMember, useModule, useProject, useProjectState } from "@/hooks/store"; +// constants +// types import { getGroupByColumns } from "../utils"; import { HeaderGroupByCard } from "./headers/group-by-card"; -import { EIssuesStoreType } from "constants/issue"; export interface IGroupByList { issueIds: TGroupedIssues | TUnGroupedIssues | any; diff --git a/web/components/issues/issue-layouts/list/headers/group-by-card.tsx b/web/components/issues/issue-layouts/list/headers/group-by-card.tsx index fa1a393c4..c53719f7f 100644 --- a/web/components/issues/issue-layouts/list/headers/group-by-card.tsx +++ b/web/components/issues/issue-layouts/list/headers/group-by-card.tsx @@ -3,17 +3,17 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // lucide icons import { CircleDashed, Plus } from "lucide-react"; +import { TIssue, ISearchIssueResponse } from "@plane/types"; // components import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; -import { ExistingIssuesListModal } from "components/core"; -import { CreateUpdateIssueModal } from "components/issues"; +import { ExistingIssuesListModal } from "@/components/core"; +import { CreateUpdateIssueModal } from "@/components/issues"; // ui // mobx // hooks -import { EIssuesStoreType } from "constants/issue"; -import { useEventTracker } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useEventTracker } from "@/hooks/store"; // types -import { TIssue, ISearchIssueResponse } from "@plane/types"; interface IHeaderGroupByCard { icon?: React.ReactNode; diff --git a/web/components/issues/issue-layouts/list/quick-add-issue-form.tsx b/web/components/issues/issue-layouts/list/quick-add-issue-form.tsx index 7bae7ecff..a07154bfc 100644 --- a/web/components/issues/issue-layouts/list/quick-add-issue-form.tsx +++ b/web/components/issues/issue-layouts/list/quick-add-issue-form.tsx @@ -3,16 +3,16 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { useForm } from "react-hook-form"; import { PlusIcon } from "lucide-react"; +import { TIssue, IProject } from "@plane/types"; // hooks import { setPromiseToast } from "@plane/ui"; -import { ISSUE_CREATED } from "constants/event-tracker"; -import { createIssuePayload } from "helpers/issue.helper"; -import { useEventTracker, useProject } from "hooks/store"; -import useKeypress from "hooks/use-keypress"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; +import { ISSUE_CREATED } from "@/constants/event-tracker"; +import { createIssuePayload } from "@/helpers/issue.helper"; +import { useEventTracker, useProject } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; // ui // types -import { TIssue, IProject } from "@plane/types"; // helper // constants diff --git a/web/components/issues/issue-layouts/list/roots/archived-issue-root.tsx b/web/components/issues/issue-layouts/list/roots/archived-issue-root.tsx index 73f8e3d3b..a1ab6becb 100644 --- a/web/components/issues/issue-layouts/list/roots/archived-issue-root.tsx +++ b/web/components/issues/issue-layouts/list/roots/archived-issue-root.tsx @@ -1,8 +1,8 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // hooks -import { ArchivedIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; +import { ArchivedIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; // components // types // constants diff --git a/web/components/issues/issue-layouts/list/roots/cycle-root.tsx b/web/components/issues/issue-layouts/list/roots/cycle-root.tsx index 26afdf25b..863921e7d 100644 --- a/web/components/issues/issue-layouts/list/roots/cycle-root.tsx +++ b/web/components/issues/issue-layouts/list/roots/cycle-root.tsx @@ -2,9 +2,9 @@ import React, { useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { CycleIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { useCycle, useIssues } from "hooks/store"; +import { CycleIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useCycle, useIssues } from "@/hooks/store"; // components // types // constants diff --git a/web/components/issues/issue-layouts/list/roots/draft-issue-root.tsx b/web/components/issues/issue-layouts/list/roots/draft-issue-root.tsx index 6b7704194..4f303ffd4 100644 --- a/web/components/issues/issue-layouts/list/roots/draft-issue-root.tsx +++ b/web/components/issues/issue-layouts/list/roots/draft-issue-root.tsx @@ -2,8 +2,8 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; // components // types // constants diff --git a/web/components/issues/issue-layouts/list/roots/module-root.tsx b/web/components/issues/issue-layouts/list/roots/module-root.tsx index 3c6a8894a..541c41892 100644 --- a/web/components/issues/issue-layouts/list/roots/module-root.tsx +++ b/web/components/issues/issue-layouts/list/roots/module-root.tsx @@ -2,9 +2,9 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // mobx store -import { ModuleIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { ModuleIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; // components // types // constants diff --git a/web/components/issues/issue-layouts/list/roots/profile-issues-root.tsx b/web/components/issues/issue-layouts/list/roots/profile-issues-root.tsx index f24683d95..d353cd6cc 100644 --- a/web/components/issues/issue-layouts/list/roots/profile-issues-root.tsx +++ b/web/components/issues/issue-layouts/list/roots/profile-issues-root.tsx @@ -1,10 +1,10 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // hooks -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useUser } from "hooks/store"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useUser } from "@/hooks/store"; // components // types // constants diff --git a/web/components/issues/issue-layouts/list/roots/project-root.tsx b/web/components/issues/issue-layouts/list/roots/project-root.tsx index fbbd26ffb..0eb8d06af 100644 --- a/web/components/issues/issue-layouts/list/roots/project-root.tsx +++ b/web/components/issues/issue-layouts/list/roots/project-root.tsx @@ -2,8 +2,8 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { ProjectIssueQuickActions } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; +import { ProjectIssueQuickActions } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; // components // types // constants diff --git a/web/components/issues/issue-layouts/list/roots/project-view-root.tsx b/web/components/issues/issue-layouts/list/roots/project-view-root.tsx index 260dd54bd..d11f74b28 100644 --- a/web/components/issues/issue-layouts/list/roots/project-view-root.tsx +++ b/web/components/issues/issue-layouts/list/roots/project-view-root.tsx @@ -2,7 +2,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // store -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // constants // types import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; diff --git a/web/components/issues/issue-layouts/properties/all-properties.tsx b/web/components/issues/issue-layouts/properties/all-properties.tsx index 3da83ca07..ad432639e 100644 --- a/web/components/issues/issue-layouts/properties/all-properties.tsx +++ b/web/components/issues/issue-layouts/properties/all-properties.tsx @@ -3,6 +3,7 @@ import xor from "lodash/xor"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { CalendarCheck2, CalendarClock, Layers, Link, Paperclip } from "lucide-react"; +import { TIssue, IIssueDisplayProperties, TIssuePriorities } from "@plane/types"; // hooks import { Tooltip } from "@plane/ui"; import { @@ -13,19 +14,18 @@ import { ModuleDropdown, CycleDropdown, StateDropdown, -} from "components/dropdowns"; +} from "@/components/dropdowns"; // helpers -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { cn } from "helpers/common.helper"; // types -import { TIssue, IIssueDisplayProperties, TIssuePriorities } from "@plane/types"; // constants -import { ISSUE_UPDATED } from "constants/event-tracker"; -import { EIssuesStoreType } from "constants/issue"; -import { shouldHighlightIssueDueDate } from "helpers/issue.helper"; -import { useEventTracker, useEstimate, useLabel, useIssues, useProjectState } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { ISSUE_UPDATED } from "@/constants/event-tracker"; +import { EIssuesStoreType } from "@/constants/issue"; +import { cn } from "@/helpers/common.helper"; +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { shouldHighlightIssueDueDate } from "@/helpers/issue.helper"; +import { useEventTracker, useEstimate, useLabel, useIssues, useProjectState } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // components import { IssuePropertyLabels } from "../properties/labels"; import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC"; diff --git a/web/components/issues/issue-layouts/properties/labels.tsx b/web/components/issues/issue-layouts/properties/labels.tsx index 5889b52c5..5530e6a01 100644 --- a/web/components/issues/issue-layouts/properties/labels.tsx +++ b/web/components/issues/issue-layouts/properties/labels.tsx @@ -2,17 +2,17 @@ import { Fragment, useEffect, useRef, useState } from "react"; import { Placement } from "@popperjs/core"; import { observer } from "mobx-react-lite"; import { usePopper } from "react-popper"; -import { Combobox } from "@headlessui/react"; import { Check, ChevronDown, Search, Tags } from "lucide-react"; +import { Combobox } from "@headlessui/react"; +import { IIssueLabel } from "@plane/types"; // hooks import { Tooltip } from "@plane/ui"; -import { useApplication, useLabel } from "hooks/store"; -import { useDropdownKeyDown } from "hooks/use-dropdown-key-down"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useApplication, useLabel } from "@/hooks/store"; +import { useDropdownKeyDown } from "@/hooks/use-dropdown-key-down"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // components // types -import { IIssueLabel } from "@plane/types"; export interface IIssuePropertyLabels { projectId: string | null; @@ -232,8 +232,8 @@ export const IssuePropertyLabels: React.FC = observer((pro disabled ? "cursor-not-allowed text-custom-text-200" : value.length <= maxRender - ? "cursor-pointer" - : "cursor-pointer hover:bg-custom-background-80" + ? "cursor-pointer" + : "cursor-pointer hover:bg-custom-background-80" } ${buttonClassName}`} onClick={handleOnClick} > diff --git a/web/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx b/web/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx index e1ff30f9b..86dbe760b 100644 --- a/web/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx +++ b/web/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx @@ -3,19 +3,19 @@ import omit from "lodash/omit"; import { observer } from "mobx-react"; import { useRouter } from "next/router"; import { Copy, ExternalLink, Link, Pencil, Trash2 } from "lucide-react"; +import { TIssue } from "@plane/types"; // hooks import { ArchiveIcon, CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "components/issues"; +import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // ui // components -import { EIssuesStoreType } from "constants/issue"; -import { STATE_GROUPS } from "constants/state"; -import { copyUrlToClipboard } from "helpers/string.helper"; -import { useEventTracker, useProjectState } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { STATE_GROUPS } from "@/constants/state"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; +import { useEventTracker, useProjectState } from "@/hooks/store"; // components // helpers // types -import { TIssue } from "@plane/types"; import { IQuickActionProps } from "../list/list-view-types"; // constants diff --git a/web/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx b/web/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx index 9cf394a1b..ec5059d6a 100644 --- a/web/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx +++ b/web/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx @@ -4,13 +4,13 @@ import { ExternalLink, Link, RotateCcw, Trash2 } from "lucide-react"; // hooks import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; -import { DeleteIssueModal } from "components/issues"; +import { DeleteIssueModal } from "@/components/issues"; // ui // components -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { copyUrlToClipboard } from "helpers/string.helper"; -import { useEventTracker, useIssues, useUser } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; +import { useEventTracker, useIssues, useUser } from "@/hooks/store"; // components // helpers // types diff --git a/web/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx b/web/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx index 38b38926f..d7ff21b84 100644 --- a/web/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx +++ b/web/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx @@ -5,19 +5,19 @@ import { useRouter } from "next/router"; // hooks // ui import { Copy, ExternalLink, Link, Pencil, Trash2, XCircle } from "lucide-react"; +import { TIssue } from "@plane/types"; import { ArchiveIcon, CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; // icons // components -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { STATE_GROUPS } from "constants/state"; -import { copyUrlToClipboard } from "helpers/string.helper"; -import { useEventTracker, useIssues, useProjectState, useUser } from "hooks/store"; +import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { STATE_GROUPS } from "@/constants/state"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; +import { useEventTracker, useIssues, useProjectState, useUser } from "@/hooks/store"; // components // helpers // types -import { TIssue } from "@plane/types"; import { IQuickActionProps } from "../list/list-view-types"; // constants diff --git a/web/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx b/web/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx index 00d69cba3..a8d920a74 100644 --- a/web/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx +++ b/web/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx @@ -5,18 +5,18 @@ import { useRouter } from "next/router"; // hooks // ui import { Copy, ExternalLink, Link, Pencil, Trash2, XCircle } from "lucide-react"; +import { TIssue } from "@plane/types"; import { ArchiveIcon, CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; // components -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { STATE_GROUPS } from "constants/state"; -import { copyUrlToClipboard } from "helpers/string.helper"; -import { useIssues, useEventTracker, useUser, useProjectState } from "hooks/store"; +import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { STATE_GROUPS } from "@/constants/state"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; +import { useIssues, useEventTracker, useUser, useProjectState } from "@/hooks/store"; // components // helpers // types -import { TIssue } from "@plane/types"; import { IQuickActionProps } from "../list/list-view-types"; // constants diff --git a/web/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx b/web/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx index a198b6104..0fcde4d59 100644 --- a/web/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx +++ b/web/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx @@ -4,18 +4,18 @@ import { observer } from "mobx-react"; import { useRouter } from "next/router"; // hooks import { Copy, ExternalLink, Link, Pencil, Trash2 } from "lucide-react"; +import { TIssue } from "@plane/types"; import { ArchiveIcon, CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "components/issues"; -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { STATE_GROUPS } from "constants/state"; -import { copyUrlToClipboard } from "helpers/string.helper"; -import { useEventTracker, useIssues, useProjectState, useUser } from "hooks/store"; +import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { STATE_GROUPS } from "@/constants/state"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; +import { useEventTracker, useIssues, useProjectState, useUser } from "@/hooks/store"; // ui // components // helpers // types -import { TIssue } from "@plane/types"; import { IQuickActionProps } from "../list/list-view-types"; // constant diff --git a/web/components/issues/issue-layouts/roots/all-issue-layout-root.tsx b/web/components/issues/issue-layouts/roots/all-issue-layout-root.tsx index bcba7152e..ef7b02b29 100644 --- a/web/components/issues/issue-layouts/roots/all-issue-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/all-issue-layout-root.tsx @@ -3,22 +3,22 @@ import isEmpty from "lodash/isEmpty"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import useSWR from "swr"; -// hooks -import { useWorkspaceIssueProperties } from "hooks/use-workspace-issue-properties"; -import { useApplication, useEventTracker, useGlobalView, useIssues, useProject, useUser } from "hooks/store"; -import { useIssuesActions } from "hooks/use-issues-actions"; -// components -import { GlobalViewsAppliedFiltersRoot, IssuePeekOverview } from "components/issues"; -import { SpreadsheetView } from "components/issues/issue-layouts"; -import { AllIssueQuickActions } from "components/issues/issue-layouts/quick-action-dropdowns"; -import { EmptyState } from "components/empty-state"; -import { SpreadsheetLayoutLoader } from "components/ui"; -// types import { TIssue, IIssueDisplayFilterOptions } from "@plane/types"; +// hooks +// components +import { EmptyState } from "@/components/empty-state"; +import { GlobalViewsAppliedFiltersRoot, IssuePeekOverview } from "@/components/issues"; +import { SpreadsheetView } from "@/components/issues/issue-layouts"; +import { AllIssueQuickActions } from "@/components/issues/issue-layouts/quick-action-dropdowns"; +import { SpreadsheetLayoutLoader } from "@/components/ui"; +// types // constants -import { EUserProjectRoles } from "constants/project"; -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; -import { EMPTY_STATE_DETAILS, EmptyStateType } from "constants/empty-state"; +import { EMPTY_STATE_DETAILS, EmptyStateType } from "@/constants/empty-state"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useApplication, useEventTracker, useGlobalView, useIssues, useProject, useUser } from "@/hooks/store"; +import { useIssuesActions } from "@/hooks/use-issues-actions"; +import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-properties"; export const AllIssueLayoutRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx b/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx index ae8ca400a..a6765e5bf 100644 --- a/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx @@ -9,11 +9,11 @@ import { ArchivedIssueAppliedFiltersRoot, ProjectArchivedEmptyState, IssuePeekOverview, -} from "components/issues"; -import { ListLayoutLoader } from "components/ui"; -import { EIssuesStoreType } from "constants/issue"; +} from "@/components/issues"; +import { ListLayoutLoader } from "@/components/ui"; +import { EIssuesStoreType } from "@/constants/issue"; // ui -import { useIssues } from "hooks/store"; +import { useIssues } from "@/hooks/store"; export const ArchivedIssueLayoutRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx b/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx index ce0a9943e..69e3dfb11 100644 --- a/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/cycle-layout-root.tsx @@ -4,9 +4,10 @@ import size from "lodash/size"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import useSWR from "swr"; +import { IIssueFilterOptions } from "@plane/types"; // hooks // components -import { TransferIssues, TransferIssuesModal } from "components/cycles"; +import { TransferIssues, TransferIssuesModal } from "@/components/cycles"; import { CycleAppliedFiltersRoot, CycleCalendarLayout, @@ -16,13 +17,12 @@ import { CycleListLayout, CycleSpreadsheetLayout, IssuePeekOverview, -} from "components/issues"; -import { ActiveLoader } from "components/ui"; +} from "@/components/issues"; +import { ActiveLoader } from "@/components/ui"; // constants -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useCycle, useIssues } from "hooks/store"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useCycle, useIssues } from "@/hooks/store"; // types -import { IIssueFilterOptions } from "@plane/types"; export const CycleLayoutRoot: React.FC = observer(() => { const router = useRouter(); diff --git a/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx b/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx index 1a1602ad1..b8c386b46 100644 --- a/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx @@ -3,10 +3,10 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import useSWR from "swr"; // hooks -import { IssuePeekOverview } from "components/issues/peek-overview"; -import { ActiveLoader } from "components/ui"; -import { EIssuesStoreType } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { IssuePeekOverview } from "@/components/issues/peek-overview"; +import { ActiveLoader } from "@/components/ui"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; // components import { ProjectDraftEmptyState } from "../empty-states"; import { DraftIssueAppliedFiltersRoot } from "../filters/applied-filters/roots/draft-issue"; diff --git a/web/components/issues/issue-layouts/roots/module-layout-root.tsx b/web/components/issues/issue-layouts/roots/module-layout-root.tsx index 268a2c60c..e4dfa6efb 100644 --- a/web/components/issues/issue-layouts/roots/module-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/module-layout-root.tsx @@ -3,6 +3,7 @@ import size from "lodash/size"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import useSWR from "swr"; +import { IIssueFilterOptions } from "@plane/types"; // mobx store // components import { @@ -14,13 +15,12 @@ import { ModuleKanBanLayout, ModuleListLayout, ModuleSpreadsheetLayout, -} from "components/issues"; -import { ActiveLoader } from "components/ui"; +} from "@/components/issues"; +import { ActiveLoader } from "@/components/ui"; // constants -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; // types -import { IIssueFilterOptions } from "@plane/types"; export const ModuleLayoutRoot: React.FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/roots/project-layout-root.tsx b/web/components/issues/issue-layouts/roots/project-layout-root.tsx index a57d73b2c..37f6e4697 100644 --- a/web/components/issues/issue-layouts/roots/project-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/project-layout-root.tsx @@ -14,13 +14,13 @@ import { ProjectSpreadsheetLayout, ProjectEmptyState, IssuePeekOverview, -} from "components/issues"; +} from "@/components/issues"; // hooks // helpers -import { ActiveLoader } from "components/ui"; +import { ActiveLoader } from "@/components/ui"; // constants -import { EIssuesStoreType } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; export const ProjectLayoutRoot: FC = observer(() => { // router diff --git a/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx b/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx index d15e65865..012807341 100644 --- a/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx +++ b/web/components/issues/issue-layouts/roots/project-view-layout-root.tsx @@ -13,11 +13,11 @@ import { ProjectViewKanBanLayout, ProjectViewListLayout, ProjectViewSpreadsheetLayout, -} from "components/issues"; -import { ActiveLoader } from "components/ui"; +} from "@/components/issues"; +import { ActiveLoader } from "@/components/ui"; // constants -import { EIssuesStoreType } from "constants/issue"; -import { useIssues } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; // types export const ProjectViewLayoutRoot: React.FC = observer(() => { diff --git a/web/components/issues/issue-layouts/save-filter-view.tsx b/web/components/issues/issue-layouts/save-filter-view.tsx index 8bf2cb211..67cf6cbad 100644 --- a/web/components/issues/issue-layouts/save-filter-view.tsx +++ b/web/components/issues/issue-layouts/save-filter-view.tsx @@ -2,7 +2,7 @@ import { FC, useState } from "react"; import { Plus } from "lucide-react"; import { Button } from "@plane/ui"; // components -import { CreateUpdateProjectViewModal } from "components/views"; +import { CreateUpdateProjectViewModal } from "@/components/views"; interface ISaveFilterView { workspaceSlug: string; diff --git a/web/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx b/web/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx index 653cc28f2..2d7623ebe 100644 --- a/web/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx @@ -1,15 +1,15 @@ import { FC, useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TIssue, IIssueDisplayFilterOptions, TUnGroupedIssues } from "@plane/types"; // hooks -import { EIssueFilterType, EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useIssues, useUser } from "hooks/store"; -import { useIssuesActions } from "hooks/use-issues-actions"; +import { EIssueFilterType, EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useIssues, useUser } from "@/hooks/store"; +import { useIssuesActions } from "@/hooks/use-issues-actions"; // views // types // constants -import { TIssue, IIssueDisplayFilterOptions, TUnGroupedIssues } from "@plane/types"; import { IQuickActionProps } from "../list/list-view-types"; import { SpreadsheetView } from "./spreadsheet-view"; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx index c4b8ea0ef..9fefd4759 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx @@ -1,9 +1,9 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// components -import { MemberDropdown } from "components/dropdowns"; -// types import { TIssue } from "@plane/types"; +// components +import { MemberDropdown } from "@/components/dropdowns"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/attachment-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/attachment-column.tsx index c17a433b8..5f487b772 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/attachment-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/attachment-column.tsx @@ -1,7 +1,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// types import { TIssue } from "@plane/types"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/created-on-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/created-on-column.tsx index 8d373efb4..ae7e3c33c 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/created-on-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/created-on-column.tsx @@ -1,9 +1,9 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -// types import { TIssue } from "@plane/types"; +// helpers +import { renderFormattedDate } from "@/helpers/date-time.helper"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx index 658e9c79b..a2a82c1ff 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx @@ -1,13 +1,13 @@ import React, { useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TIssue } from "@plane/types"; // hooks -import { CycleDropdown } from "components/dropdowns"; -import { EIssuesStoreType } from "constants/issue"; -import { useEventTracker, useIssues } from "hooks/store"; +import { CycleDropdown } from "@/components/dropdowns"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useEventTracker, useIssues } from "@/hooks/store"; // components // types -import { TIssue } from "@plane/types"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx index 202cbb8d5..b80de2015 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx @@ -1,16 +1,16 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { CalendarCheck2 } from "lucide-react"; +import { TIssue } from "@plane/types"; // hooks // components -import { DateDropdown } from "components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns"; // helpers -import { cn } from "helpers/common.helper"; -import { useProjectState } from "hooks/store"; -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { shouldHighlightIssueDueDate } from "helpers/issue.helper"; +import { cn } from "@/helpers/common.helper"; +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { shouldHighlightIssueDueDate } from "@/helpers/issue.helper"; +import { useProjectState } from "@/hooks/store"; // types -import { TIssue } from "@plane/types"; type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx index 8143be214..298da4ff9 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx @@ -1,8 +1,8 @@ // components import { observer } from "mobx-react-lite"; -import { EstimateDropdown } from "components/dropdowns"; -// types import { TIssue } from "@plane/types"; +import { EstimateDropdown } from "@/components/dropdowns"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/header-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/header-column.tsx index 6c59c22af..f3910a87c 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/header-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/header-column.tsx @@ -8,12 +8,12 @@ import { ListFilter, MoveRight, } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssueOrderByOptions } from "@plane/types"; import { CustomMenu } from "@plane/ui"; //hooks -import { SPREADSHEET_PROPERTY_DETAILS } from "constants/spreadsheet"; -import useLocalStorage from "hooks/use-local-storage"; +import { SPREADSHEET_PROPERTY_DETAILS } from "@/constants/spreadsheet"; +import useLocalStorage from "@/hooks/use-local-storage"; //types -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssueOrderByOptions } from "@plane/types"; //constants interface Props { diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx index 1e6ae197a..439abf5f3 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx @@ -1,10 +1,10 @@ import React from "react"; import { observer } from "mobx-react-lite"; +import { TIssue } from "@plane/types"; // components // hooks -import { useLabel } from "hooks/store"; +import { useLabel } from "@/hooks/store"; // types -import { TIssue } from "@plane/types"; import { IssuePropertyLabels } from "../../properties"; type Props = { diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/link-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/link-column.tsx index 2d3e7b670..2c20afd2c 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/link-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/link-column.tsx @@ -1,7 +1,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// types import { TIssue } from "@plane/types"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx index 67c72d2a8..0dd298c1e 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx @@ -2,13 +2,13 @@ import React, { useCallback } from "react"; import xor from "lodash/xor"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TIssue } from "@plane/types"; // hooks -import { ModuleDropdown } from "components/dropdowns"; -import { EIssuesStoreType } from "constants/issue"; -import { useEventTracker, useIssues } from "hooks/store"; +import { ModuleDropdown } from "@/components/dropdowns"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useEventTracker, useIssues } from "@/hooks/store"; // components // types -import { TIssue } from "@plane/types"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx index 714134d0c..8058b7023 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx @@ -1,9 +1,9 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// components -import { PriorityDropdown } from "components/dropdowns"; -// types import { TIssue } from "@plane/types"; +// components +import { PriorityDropdown } from "@/components/dropdowns"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx index b0ee46d4e..5746c397a 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx @@ -1,12 +1,12 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { CalendarClock } from "lucide-react"; -// components -import { DateDropdown } from "components/dropdowns"; -// helpers -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -// types import { TIssue } from "@plane/types"; +// components +import { DateDropdown } from "@/components/dropdowns"; +// helpers +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx index 1a029db12..201585728 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx @@ -1,9 +1,9 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// components -import { StateDropdown } from "components/dropdowns"; -// types import { TIssue } from "@plane/types"; +// components +import { StateDropdown } from "@/components/dropdowns"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx index 85e294641..6c0264da6 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/sub-issue-column.tsx @@ -1,11 +1,11 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -// hooks -import { cn } from "helpers/common.helper"; -import { useApplication } from "hooks/store"; -// types import { TIssue } from "@plane/types"; +// hooks +import { cn } from "@/helpers/common.helper"; +import { useApplication } from "@/hooks/store"; +// types // helpers type Props = { diff --git a/web/components/issues/issue-layouts/spreadsheet/columns/updated-on-column.tsx b/web/components/issues/issue-layouts/spreadsheet/columns/updated-on-column.tsx index f84989192..b299d7966 100644 --- a/web/components/issues/issue-layouts/spreadsheet/columns/updated-on-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/columns/updated-on-column.tsx @@ -1,9 +1,9 @@ import React from "react"; import { observer } from "mobx-react-lite"; -// helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -// types import { TIssue } from "@plane/types"; +// helpers +import { renderFormattedDate } from "@/helpers/date-time.helper"; +// types type Props = { issue: TIssue; diff --git a/web/components/issues/issue-layouts/spreadsheet/issue-column.tsx b/web/components/issues/issue-layouts/spreadsheet/issue-column.tsx index 825c2b31c..161dd6514 100644 --- a/web/components/issues/issue-layouts/spreadsheet/issue-column.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/issue-column.tsx @@ -1,10 +1,10 @@ import { useRef } from "react"; import { observer } from "mobx-react"; import { useRouter } from "next/router"; -// types -import { SPREADSHEET_PROPERTY_DETAILS } from "constants/spreadsheet"; -import { useEventTracker } from "hooks/store"; import { IIssueDisplayProperties, TIssue } from "@plane/types"; +// types +import { SPREADSHEET_PROPERTY_DETAILS } from "@/constants/spreadsheet"; +import { useEventTracker } from "@/hooks/store"; import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC"; // constants // components diff --git a/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx b/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx index b86d85723..fc36fdd86 100644 --- a/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/issue-row.tsx @@ -3,20 +3,20 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // icons import { ChevronRight, MoreHorizontal } from "lucide-react"; +import { IIssueDisplayProperties, TIssue } from "@plane/types"; // ui import { ControlLink, Tooltip } from "@plane/ui"; // components -import RenderIfVisible from "components/core/render-if-visible-HOC"; +import RenderIfVisible from "@/components/core/render-if-visible-HOC"; // constants -import { SPREADSHEET_PROPERTY_LIST } from "constants/spreadsheet"; +import { SPREADSHEET_PROPERTY_LIST } from "@/constants/spreadsheet"; // helper -import { cn } from "helpers/common.helper"; +import { cn } from "@/helpers/common.helper"; // hooks -import { useIssueDetail, useProject } from "hooks/store"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useIssueDetail, useProject } from "@/hooks/store"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // types -import { IIssueDisplayProperties, TIssue } from "@plane/types"; // local components import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC"; import { IssueColumn } from "./issue-column"; diff --git a/web/components/issues/issue-layouts/spreadsheet/quick-add-issue-form.tsx b/web/components/issues/issue-layouts/spreadsheet/quick-add-issue-form.tsx index 6b886ffa9..68fac5b45 100644 --- a/web/components/issues/issue-layouts/spreadsheet/quick-add-issue-form.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/quick-add-issue-form.tsx @@ -3,17 +3,17 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { useForm } from "react-hook-form"; import { PlusIcon } from "lucide-react"; +import { TIssue } from "@plane/types"; // hooks import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; -import { ISSUE_CREATED } from "constants/event-tracker"; -import { createIssuePayload } from "helpers/issue.helper"; -import { useEventTracker, useProject, useWorkspace } from "hooks/store"; -import useKeypress from "hooks/use-keypress"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; +import { ISSUE_CREATED } from "@/constants/event-tracker"; +import { createIssuePayload } from "@/helpers/issue.helper"; +import { useEventTracker, useProject, useWorkspace } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; // helpers // ui // types -import { TIssue } from "@plane/types"; // constants type Props = { diff --git a/web/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx b/web/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx index b8b4fd08a..c00c0d919 100644 --- a/web/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx @@ -2,8 +2,8 @@ import React, { useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // mobx store -import { EIssuesStoreType } from "constants/issue"; -import { useCycle } from "hooks/store"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useCycle } from "@/hooks/store"; // components import { CycleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseSpreadsheetRoot } from "../base-spreadsheet-root"; diff --git a/web/components/issues/issue-layouts/spreadsheet/roots/module-root.tsx b/web/components/issues/issue-layouts/spreadsheet/roots/module-root.tsx index a95919cdc..b577221b2 100644 --- a/web/components/issues/issue-layouts/spreadsheet/roots/module-root.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/roots/module-root.tsx @@ -2,7 +2,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // mobx store -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // components import { ModuleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseSpreadsheetRoot } from "../base-spreadsheet-root"; diff --git a/web/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx b/web/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx index dc9d354a6..0ccbca9bd 100644 --- a/web/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx @@ -1,7 +1,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; // mobx store -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseSpreadsheetRoot } from "../base-spreadsheet-root"; diff --git a/web/components/issues/issue-layouts/spreadsheet/roots/project-view-root.tsx b/web/components/issues/issue-layouts/spreadsheet/roots/project-view-root.tsx index 754d87c2f..3bfba9b07 100644 --- a/web/components/issues/issue-layouts/spreadsheet/roots/project-view-root.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/roots/project-view-root.tsx @@ -2,7 +2,7 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // mobx store -import { EIssuesStoreType } from "constants/issue"; +import { EIssuesStoreType } from "@/constants/issue"; // components import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseSpreadsheetRoot } from "../base-spreadsheet-root"; diff --git a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx index ea0e0f1c2..dc03647c6 100644 --- a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx @@ -1,8 +1,8 @@ // ui +import { IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types"; import { LayersIcon } from "@plane/ui"; // types -import { SPREADSHEET_PROPERTY_LIST } from "constants/spreadsheet"; -import { IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types"; +import { SPREADSHEET_PROPERTY_LIST } from "@/constants/spreadsheet"; // constants // components import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC"; diff --git a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx index 896d5a4dd..17feae2fd 100644 --- a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx @@ -1,8 +1,8 @@ import { MutableRefObject, useCallback, useEffect, useRef } from "react"; import { observer } from "mobx-react-lite"; -//types -import { useTableKeyboardNavigation } from "hooks/use-table-keyboard-navigation"; import { IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssue } from "@plane/types"; +//types +import { useTableKeyboardNavigation } from "@/hooks/use-table-keyboard-navigation"; //components import { SpreadsheetIssueRow } from "./issue-row"; import { SpreadsheetHeader } from "./spreadsheet-header"; diff --git a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx index ed243d312..4459d462c 100644 --- a/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx +++ b/web/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx @@ -1,10 +1,10 @@ import React, { useRef } from "react"; import { observer } from "mobx-react-lite"; +import { TIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types"; // components import { Spinner } from "@plane/ui"; -import { SpreadsheetQuickAddIssueForm } from "components/issues"; -import { useProject } from "hooks/store"; -import { TIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types"; +import { SpreadsheetQuickAddIssueForm } from "@/components/issues"; +import { useProject } from "@/hooks/store"; import { SpreadsheetTable } from "./spreadsheet-table"; // types //hooks diff --git a/web/components/issues/issue-layouts/utils.tsx b/web/components/issues/issue-layouts/utils.tsx index ffe979a56..c98a942f6 100644 --- a/web/components/issues/issue-layouts/utils.tsx +++ b/web/components/issues/issue-layouts/utils.tsx @@ -1,20 +1,20 @@ import { ContrastIcon } from "lucide-react"; +import { GroupByColumnTypes, IGroupByColumn, TCycleGroups } from "@plane/types"; import { Avatar, CycleGroupIcon, DiceIcon, PriorityIcon, StateGroupIcon } from "@plane/ui"; // components -import { ProjectLogo } from "components/project"; +import { ProjectLogo } from "@/components/project"; // stores -import { ISSUE_PRIORITIES } from "constants/issue"; -import { STATE_GROUPS } from "constants/state"; -import { ICycleStore } from "store/cycle.store"; -import { ILabelStore } from "store/label.store"; -import { IMemberRootStore } from "store/member"; -import { IModuleStore } from "store/module.store"; -import { IProjectStore } from "store/project/project.store"; -import { IStateStore } from "store/state.store"; +import { ISSUE_PRIORITIES } from "@/constants/issue"; +import { STATE_GROUPS } from "@/constants/state"; +import { ICycleStore } from "@/store/cycle.store"; +import { ILabelStore } from "@/store/label.store"; +import { IMemberRootStore } from "@/store/member"; +import { IModuleStore } from "@/store/module.store"; +import { IProjectStore } from "@/store/project/project.store"; +import { IStateStore } from "@/store/state.store"; // helpers // constants // types -import { GroupByColumnTypes, IGroupByColumn, TCycleGroups } from "@plane/types"; export const getGroupByColumns = ( groupBy: GroupByColumnTypes | null, diff --git a/web/components/issues/issue-modal/draft-issue-layout.tsx b/web/components/issues/issue-modal/draft-issue-layout.tsx index 71bf1fae0..c7bf17682 100644 --- a/web/components/issues/issue-modal/draft-issue-layout.tsx +++ b/web/components/issues/issue-modal/draft-issue-layout.tsx @@ -1,17 +1,17 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import type { TIssue } from "@plane/types"; // hooks import { TOAST_TYPE, setToast } from "@plane/ui"; -import { ConfirmIssueDiscard } from "components/issues"; -import { IssueFormRoot } from "components/issues/issue-modal/form"; -import { useEventTracker } from "hooks/store"; +import { ConfirmIssueDiscard } from "@/components/issues"; +import { IssueFormRoot } from "@/components/issues/issue-modal/form"; +import { useEventTracker } from "@/hooks/store"; // services -import { IssueDraftService } from "services/issue"; +import { IssueDraftService } from "@/services/issue"; // ui // components // types -import type { TIssue } from "@plane/types"; export interface DraftIssueProps { changesMade: Partial | null; diff --git a/web/components/issues/issue-modal/form.tsx b/web/components/issues/issue-modal/form.tsx index e20365264..9d11f4e68 100644 --- a/web/components/issues/issue-modal/form.tsx +++ b/web/components/issues/issue-modal/form.tsx @@ -1,13 +1,14 @@ import React, { FC, useState, useRef, useEffect, Fragment } from "react"; -import { RichTextEditorWithRef } from "@plane/rich-text-editor"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; import { LayoutPanelTop, Sparkle, X } from "lucide-react"; +import { RichTextEditorWithRef } from "@plane/rich-text-editor"; +import type { TIssue, ISearchIssueResponse } from "@plane/types"; // editor // hooks import { Button, CustomMenu, Input, Loader, ToggleSwitch, TOAST_TYPE, setToast } from "@plane/ui"; -import { GptAssistantPopover } from "components/core"; +import { GptAssistantPopover } from "@/components/core"; import { CycleDropdown, DateDropdown, @@ -17,22 +18,21 @@ import { ProjectDropdown, MemberDropdown, StateDropdown, -} from "components/dropdowns"; -import { ParentIssuesListModal } from "components/issues"; -import { IssueLabelSelect } from "components/issues/select"; -import { CreateLabelModal } from "components/labels"; -import { useApplication, useEstimate, useIssueDetail, useMention, useProject, useWorkspace } from "hooks/store"; +} from "@/components/dropdowns"; +import { ParentIssuesListModal } from "@/components/issues"; +import { IssueLabelSelect } from "@/components/issues/select"; +import { CreateLabelModal } from "@/components/labels"; +import { renderFormattedPayloadDate, getDate } from "@/helpers/date-time.helper"; +import { getChangedIssuefields } from "@/helpers/issue.helper"; +import { shouldRenderProject } from "@/helpers/project.helper"; +import { useApplication, useEstimate, useIssueDetail, useMention, useProject, useWorkspace } from "@/hooks/store"; // services -import { AIService } from "services/ai.service"; -import { FileService } from "services/file.service"; +import { AIService } from "@/services/ai.service"; +import { FileService } from "@/services/file.service"; // components // ui // helpers -import { getChangedIssuefields } from "helpers/issue.helper"; -import { shouldRenderProject } from "helpers/project.helper"; -import { renderFormattedPayloadDate, getDate } from "helpers/date-time.helper"; // types -import type { TIssue, ISearchIssueResponse } from "@plane/types"; const defaultValues: Partial = { project_id: "", diff --git a/web/components/issues/issue-modal/modal.tsx b/web/components/issues/issue-modal/modal.tsx index b4cf05fc8..b0e08dfd1 100644 --- a/web/components/issues/issue-modal/modal.tsx +++ b/web/components/issues/issue-modal/modal.tsx @@ -2,11 +2,12 @@ import React, { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Dialog, Transition } from "@headlessui/react"; +import type { TIssue } from "@plane/types"; // hooks import { TOAST_TYPE, setToast } from "@plane/ui"; -import { ISSUE_CREATED, ISSUE_UPDATED } from "constants/event-tracker"; -import { EIssuesStoreType } from "constants/issue"; +import { ISSUE_CREATED, ISSUE_UPDATED } from "@/constants/event-tracker"; +import { EIssuesStoreType } from "@/constants/issue"; import { useApplication, useEventTracker, @@ -15,11 +16,10 @@ import { useModule, useProject, useIssueDetail, -} from "hooks/store"; -import useLocalStorage from "hooks/use-local-storage"; -import { useIssuesActions } from "hooks/use-issues-actions"; +} from "@/hooks/store"; +import { useIssuesActions } from "@/hooks/use-issues-actions"; +import useLocalStorage from "@/hooks/use-local-storage"; // components -import type { TIssue } from "@plane/types"; import { DraftIssueLayout } from "./draft-issue-layout"; import { IssueFormRoot } from "./form"; // ui diff --git a/web/components/issues/issue-update-status.tsx b/web/components/issues/issue-update-status.tsx index f13adb6a4..277404dfa 100644 --- a/web/components/issues/issue-update-status.tsx +++ b/web/components/issues/issue-update-status.tsx @@ -1,8 +1,8 @@ import React from "react"; import { RefreshCw } from "lucide-react"; -// types -import { useProject } from "hooks/store"; import { TIssue } from "@plane/types"; +// types +import { useProject } from "@/hooks/store"; type Props = { isSubmitting: "submitting" | "submitted" | "saved"; diff --git a/web/components/issues/issues-mobile-header.tsx b/web/components/issues/issues-mobile-header.tsx index 0446bfa53..0293380ce 100644 --- a/web/components/issues/issues-mobile-header.tsx +++ b/web/components/issues/issues-mobile-header.tsx @@ -1,17 +1,17 @@ import { useCallback, useState } from "react"; -import router from "next/router"; import { observer } from "mobx-react"; +import router from "next/router"; // components import { Calendar, ChevronDown, Kanban, List } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; import { CustomMenu } from "@plane/ui"; // icons // constants -import { ProjectAnalyticsModal } from "components/analytics"; -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT, ISSUE_LAYOUTS } from "constants/issue"; +import { ProjectAnalyticsModal } from "@/components/analytics"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT, ISSUE_LAYOUTS } from "@/constants/issue"; // hooks -import { useIssues, useLabel, useMember, useProject, useProjectState } from "hooks/store"; +import { useIssues, useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; // layouts -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "./issue-layouts"; export const IssuesMobileHeader = observer(() => { diff --git a/web/components/issues/label.tsx b/web/components/issues/label.tsx index e63850c20..35d291ee1 100644 --- a/web/components/issues/label.tsx +++ b/web/components/issues/label.tsx @@ -1,7 +1,7 @@ import React from "react"; // components import { Tooltip } from "@plane/ui"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { labelDetails: any[]; maxRender?: number; @@ -9,41 +9,48 @@ type Props = { export const ViewIssueLabel: React.FC = ({ labelDetails, maxRender = 1 }) => { const { isMobile } = usePlatformOS(); - return (<> - {labelDetails?.length > 0 ? ( - labelDetails.length <= maxRender ? ( - <> - {labelDetails.map((label) => ( -
+ {labelDetails?.length > 0 ? ( + labelDetails.length <= maxRender ? ( + <> + {labelDetails.map((label) => ( +
+ +
+ + {label.name} +
+
+
+ ))} + + ) : ( +
+ l.name).join(", ")} + isMobile={isMobile} > - -
- - {label.name} -
-
-
- ))} - +
+ + {`${labelDetails.length} Labels`} +
+ +
+ ) ) : ( -
- l.name).join(", ")} isMobile={isMobile}> -
- - {`${labelDetails.length} Labels`} -
-
-
- ) - ) : ( - "" - )} - ) + "" + )} + + ); }; diff --git a/web/components/issues/parent-issues-list-modal.tsx b/web/components/issues/parent-issues-list-modal.tsx index cdf642711..5961aaf09 100644 --- a/web/components/issues/parent-issues-list-modal.tsx +++ b/web/components/issues/parent-issues-list-modal.tsx @@ -1,20 +1,20 @@ import React, { useEffect, useState } from "react"; import { useRouter } from "next/router"; // headless ui +import { Rocket, Search } from "lucide-react"; import { Combobox, Dialog, Transition } from "@headlessui/react"; // services -import { ProjectService } from "services/project"; -// hooks -import useDebounce from "hooks/use-debounce"; -import { usePlatformOS } from "hooks/use-platform-os"; -// components -import { IssueSearchModalEmptyState } from "components/core"; -// ui -import { Loader, ToggleSwitch, Tooltip } from "@plane/ui"; -// icons -import { Rocket, Search } from "lucide-react"; -// types import { ISearchIssueResponse } from "@plane/types"; +import { Loader, ToggleSwitch, Tooltip } from "@plane/ui"; +import { IssueSearchModalEmptyState } from "@/components/core"; +import useDebounce from "@/hooks/use-debounce"; +import { usePlatformOS } from "@/hooks/use-platform-os"; +import { ProjectService } from "@/services/project"; +// hooks +// components +// ui +// icons +// types type Props = { isOpen: boolean; diff --git a/web/components/issues/peek-overview/header.tsx b/web/components/issues/peek-overview/header.tsx index 0570f53f1..53862626d 100644 --- a/web/components/issues/peek-overview/header.tsx +++ b/web/components/issues/peek-overview/header.tsx @@ -1,6 +1,6 @@ import { FC } from "react"; -import Link from "next/link"; import { observer } from "mobx-react"; +import Link from "next/link"; import { MoveRight, MoveDiagonal, Link2, Trash2, RotateCcw } from "lucide-react"; // ui import { @@ -14,15 +14,15 @@ import { setToast, } from "@plane/ui"; // components -import { IssueSubscription, IssueUpdateStatus } from "components/issues"; -import { STATE_GROUPS } from "constants/state"; +import { IssueSubscription, IssueUpdateStatus } from "@/components/issues"; +import { STATE_GROUPS } from "@/constants/state"; // helpers -import { cn } from "helpers/common.helper"; -import { copyUrlToClipboard } from "helpers/string.helper"; +import { cn } from "@/helpers/common.helper"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; // store hooks -import { useIssueDetail, useProjectState, useUser } from "hooks/store"; +import { useIssueDetail, useProjectState, useUser } from "@/hooks/store"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; +import { usePlatformOS } from "@/hooks/use-platform-os"; export type TPeekModes = "side-peek" | "modal" | "full-screen"; diff --git a/web/components/issues/peek-overview/issue-attachments.tsx b/web/components/issues/peek-overview/issue-attachments.tsx index 804dadd0f..cc3aab90e 100644 --- a/web/components/issues/peek-overview/issue-attachments.tsx +++ b/web/components/issues/peek-overview/issue-attachments.tsx @@ -1,10 +1,10 @@ import { useMemo } from "react"; // hooks -import { useEventTracker, useIssueDetail } from "hooks/store"; -// components -import { IssueAttachmentUpload, IssueAttachmentsList, TAttachmentOperations } from "components/issues"; -// ui import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; +import { IssueAttachmentUpload, IssueAttachmentsList, TAttachmentOperations } from "@/components/issues"; +import { useEventTracker, useIssueDetail } from "@/hooks/store"; +// components +// ui type Props = { disabled: boolean; diff --git a/web/components/issues/peek-overview/issue-detail.tsx b/web/components/issues/peek-overview/issue-detail.tsx index 2abcec2ff..b3dd7808e 100644 --- a/web/components/issues/peek-overview/issue-detail.tsx +++ b/web/components/issues/peek-overview/issue-detail.tsx @@ -1,10 +1,10 @@ import { FC, useEffect } from "react"; import { observer } from "mobx-react"; // store hooks -import { TIssueOperations } from "components/issues"; -import { useIssueDetail, useProject, useUser } from "hooks/store"; +import { TIssueOperations } from "@/components/issues"; +import { useIssueDetail, useProject, useUser } from "@/hooks/store"; // hooks -import useReloadConfirmations from "hooks/use-reload-confirmation"; +import useReloadConfirmations from "@/hooks/use-reload-confirmation"; // components import { IssueDescriptionInput } from "../description-input"; import { IssueReaction } from "../issue-detail/reactions"; diff --git a/web/components/issues/peek-overview/properties.tsx b/web/components/issues/peek-overview/properties.tsx index f8e9aeb5a..00ffa9100 100644 --- a/web/components/issues/peek-overview/properties.tsx +++ b/web/components/issues/peek-overview/properties.tsx @@ -15,7 +15,13 @@ import { // ui icons import { DiceIcon, DoubleCircleIcon, UserGroupIcon, ContrastIcon, RelatedIcon } from "@plane/ui"; // components -import { DateDropdown, EstimateDropdown, PriorityDropdown, MemberDropdown, StateDropdown } from "components/dropdowns"; +import { + DateDropdown, + EstimateDropdown, + PriorityDropdown, + MemberDropdown, + StateDropdown, +} from "@/components/dropdowns"; import { IssueLinkRoot, IssueCycleSelect, @@ -24,12 +30,12 @@ import { IssueLabel, TIssueOperations, IssueRelationSelect, -} from "components/issues"; +} from "@/components/issues"; // helpers -import { cn } from "helpers/common.helper"; -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { shouldHighlightIssueDueDate } from "helpers/issue.helper"; -import { useIssueDetail, useProject, useProjectState } from "hooks/store"; +import { cn } from "@/helpers/common.helper"; +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { shouldHighlightIssueDueDate } from "@/helpers/issue.helper"; +import { useIssueDetail, useProject, useProjectState } from "@/hooks/store"; interface IPeekOverviewProperties { workspaceSlug: string; diff --git a/web/components/issues/peek-overview/root.tsx b/web/components/issues/peek-overview/root.tsx index 37cd8f375..a7f7b23d7 100644 --- a/web/components/issues/peek-overview/root.tsx +++ b/web/components/issues/peek-overview/root.tsx @@ -1,18 +1,18 @@ import { FC, useEffect, useState, useMemo } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { TIssue } from "@plane/types"; // hooks import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; -import { IssueView } from "components/issues"; +import { IssueView } from "@/components/issues"; // ui // components -import { ISSUE_UPDATED, ISSUE_DELETED, ISSUE_ARCHIVED, ISSUE_RESTORED } from "constants/event-tracker"; -import { EIssuesStoreType } from "constants/issue"; -import { EUserProjectRoles } from "constants/project"; -import { useEventTracker, useIssueDetail, useIssues, useUser } from "hooks/store"; +import { ISSUE_UPDATED, ISSUE_DELETED, ISSUE_ARCHIVED, ISSUE_RESTORED } from "@/constants/event-tracker"; +import { EIssuesStoreType } from "@/constants/issue"; +import { EUserProjectRoles } from "@/constants/project"; +import { useEventTracker, useIssueDetail, useIssues, useUser } from "@/hooks/store"; // components // types -import { TIssue } from "@plane/types"; // constants interface IIssuePeekOverview { diff --git a/web/components/issues/peek-overview/view.tsx b/web/components/issues/peek-overview/view.tsx index 4109f3feb..493b8bd51 100644 --- a/web/components/issues/peek-overview/view.tsx +++ b/web/components/issues/peek-overview/view.tsx @@ -12,11 +12,11 @@ import { TIssueOperations, ArchiveIssueModal, PeekOverviewIssueAttachments, -} from "components/issues"; +} from "@/components/issues"; // hooks -import { useIssueDetail, useUser } from "hooks/store"; -import useKeypress from "hooks/use-keypress"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; +import { useIssueDetail, useUser } from "@/hooks/store"; +import useKeypress from "@/hooks/use-keypress"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; // store hooks import { IssueActivity } from "../issue-detail/issue-activity"; import { SubIssuesRoot } from "../sub-issues"; diff --git a/web/components/issues/select/label.tsx b/web/components/issues/select/label.tsx index c59bbb0d7..3fe2022d4 100644 --- a/web/components/issues/select/label.tsx +++ b/web/components/issues/select/label.tsx @@ -2,13 +2,13 @@ import React, { Fragment, useEffect, useRef, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { usePopper } from "react-popper"; +import { Check, Component, Plus, Search, Tag } from "lucide-react"; import { Combobox } from "@headlessui/react"; // hooks -import { Check, Component, Plus, Search, Tag } from "lucide-react"; -import { IssueLabelsList } from "components/ui"; -import { useLabel } from "hooks/store"; -import { useDropdownKeyDown } from "hooks/use-dropdown-key-down"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; +import { IssueLabelsList } from "@/components/ui"; +import { useLabel } from "@/hooks/store"; +import { useDropdownKeyDown } from "@/hooks/use-dropdown-key-down"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; // ui // icons diff --git a/web/components/issues/sub-issues/issue-list-item.tsx b/web/components/issues/sub-issues/issue-list-item.tsx index 781a91a3d..c3842e6b2 100644 --- a/web/components/issues/sub-issues/issue-list-item.tsx +++ b/web/components/issues/sub-issues/issue-list-item.tsx @@ -1,17 +1,17 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { ChevronRight, X, Pencil, Trash, Link as LinkIcon, Loader } from "lucide-react"; +import { TIssue } from "@plane/types"; // components import { ControlLink, CustomMenu, Tooltip } from "@plane/ui"; -import { useIssueDetail, useProject, useProjectState } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; -import { TIssue } from "@plane/types"; +import { cn } from "@/helpers/common.helper"; +import { useIssueDetail, useProject, useProjectState } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; import { IssueList } from "./issues-list"; import { IssueProperty } from "./properties"; // ui // types import { TSubIssueOperations } from "./root"; -import { cn } from "helpers/common.helper"; // import { ISubIssuesRootLoaders, ISubIssuesRootLoadersHandler } from "./root"; export interface ISubIssues { diff --git a/web/components/issues/sub-issues/issues-list.tsx b/web/components/issues/sub-issues/issues-list.tsx index cb1d66461..1c08a2b9e 100644 --- a/web/components/issues/sub-issues/issues-list.tsx +++ b/web/components/issues/sub-issues/issues-list.tsx @@ -1,9 +1,9 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; -// hooks -import { useIssueDetail } from "hooks/store"; -// components import { TIssue } from "@plane/types"; +// hooks +import { useIssueDetail } from "@/hooks/store"; +// components import { IssueListItem } from "./issue-list-item"; // types import { TSubIssueOperations } from "./root"; diff --git a/web/components/issues/sub-issues/properties.tsx b/web/components/issues/sub-issues/properties.tsx index f737b57e7..33f346b6d 100644 --- a/web/components/issues/sub-issues/properties.tsx +++ b/web/components/issues/sub-issues/properties.tsx @@ -1,7 +1,7 @@ import React from "react"; // hooks -import { PriorityDropdown, MemberDropdown, StateDropdown } from "components/dropdowns"; -import { useIssueDetail } from "hooks/store"; +import { PriorityDropdown, MemberDropdown, StateDropdown } from "@/components/dropdowns"; +import { useIssueDetail } from "@/hooks/store"; // components // types import { TSubIssueOperations } from "./root"; diff --git a/web/components/issues/sub-issues/root.tsx b/web/components/issues/sub-issues/root.tsx index c3655286e..9c02fbcc4 100644 --- a/web/components/issues/sub-issues/root.tsx +++ b/web/components/issues/sub-issues/root.tsx @@ -2,16 +2,16 @@ import { FC, useCallback, useEffect, useMemo, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Plus, ChevronRight, Loader, Pencil } from "lucide-react"; +import { IUser, TIssue } from "@plane/types"; // hooks import { CircularProgressIndicator, CustomMenu, LayersIcon, TOAST_TYPE, setToast } from "@plane/ui"; -import { ExistingIssuesListModal } from "components/core"; -import { CreateUpdateIssueModal, DeleteIssueModal } from "components/issues"; -import { copyTextToClipboard } from "helpers/string.helper"; -import { useEventTracker, useIssueDetail } from "hooks/store"; +import { ExistingIssuesListModal } from "@/components/core"; +import { CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; +import { cn } from "@/helpers/common.helper"; +import { copyTextToClipboard } from "@/helpers/string.helper"; +import { useEventTracker, useIssueDetail } from "@/hooks/store"; // components -import { IUser, TIssue } from "@plane/types"; import { IssueList } from "./issues-list"; -import { cn } from "helpers/common.helper"; // ui // helpers // types diff --git a/web/components/issues/title-input.tsx b/web/components/issues/title-input.tsx index bb412b795..11a82e623 100644 --- a/web/components/issues/title-input.tsx +++ b/web/components/issues/title-input.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // components import { TextArea } from "@plane/ui"; // types -import useDebounce from "hooks/use-debounce"; +import useDebounce from "@/hooks/use-debounce"; import { TIssueOperations } from "./issue-detail"; // hooks diff --git a/web/components/labels/create-label-modal.tsx b/web/components/labels/create-label-modal.tsx index ee0988741..34dda4235 100644 --- a/web/components/labels/create-label-modal.tsx +++ b/web/components/labels/create-label-modal.tsx @@ -3,15 +3,15 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { TwitterPicker } from "react-color"; import { Controller, useForm } from "react-hook-form"; -import { Dialog, Popover, Transition } from "@headlessui/react"; import { ChevronDown } from "lucide-react"; +import { Dialog, Popover, Transition } from "@headlessui/react"; +import type { IIssueLabel, IState } from "@plane/types"; // hooks import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -import { LABEL_COLOR_OPTIONS, getRandomLabelColor } from "constants/label"; -import { useLabel } from "hooks/store"; +import { LABEL_COLOR_OPTIONS, getRandomLabelColor } from "@/constants/label"; +import { useLabel } from "@/hooks/store"; // ui // types -import type { IIssueLabel, IState } from "@plane/types"; // constants // types diff --git a/web/components/labels/create-update-label-inline.tsx b/web/components/labels/create-update-label-inline.tsx index a29a334b6..c2ea3930a 100644 --- a/web/components/labels/create-update-label-inline.tsx +++ b/web/components/labels/create-update-label-inline.tsx @@ -4,14 +4,14 @@ import { useRouter } from "next/router"; import { TwitterPicker } from "react-color"; import { Controller, SubmitHandler, useForm } from "react-hook-form"; import { Popover, Transition } from "@headlessui/react"; +import { IIssueLabel } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // constants -import { getRandomLabelColor, LABEL_COLOR_OPTIONS } from "constants/label"; +import { getRandomLabelColor, LABEL_COLOR_OPTIONS } from "@/constants/label"; // hooks -import { useLabel } from "hooks/store"; +import { useLabel } from "@/hooks/store"; // types -import { IIssueLabel } from "@plane/types"; type Props = { labelForm: boolean; diff --git a/web/components/labels/delete-label-modal.tsx b/web/components/labels/delete-label-modal.tsx index d5c269136..773ceac37 100644 --- a/web/components/labels/delete-label-modal.tsx +++ b/web/components/labels/delete-label-modal.tsx @@ -1,15 +1,15 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { AlertTriangle } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // hooks -import { AlertTriangle } from "lucide-react"; +import type { IIssueLabel } from "@plane/types"; import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { useLabel } from "hooks/store"; +import { useLabel } from "@/hooks/store"; // icons // ui // types -import type { IIssueLabel } from "@plane/types"; type Props = { isOpen: boolean; diff --git a/web/components/labels/label-block/label-item-block.tsx b/web/components/labels/label-block/label-item-block.tsx index 2a797d0b6..d15406059 100644 --- a/web/components/labels/label-block/label-item-block.tsx +++ b/web/components/labels/label-block/label-item-block.tsx @@ -1,11 +1,11 @@ import { useRef, useState } from "react"; import { DraggableProvidedDragHandleProps } from "@hello-pangea/dnd"; import { LucideIcon, X } from "lucide-react"; +import { IIssueLabel } from "@plane/types"; //ui import { CustomMenu } from "@plane/ui"; //types -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { IIssueLabel } from "@plane/types"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; //hooks //components import { DragHandle } from "./drag-handle"; diff --git a/web/components/labels/project-setting-label-group.tsx b/web/components/labels/project-setting-label-group.tsx index 6519e581e..0a3efc9df 100644 --- a/web/components/labels/project-setting-label-group.tsx +++ b/web/components/labels/project-setting-label-group.tsx @@ -7,14 +7,14 @@ import { Droppable, } from "@hello-pangea/dnd"; import { observer } from "mobx-react-lite"; +import { ChevronDown, Pencil, Trash2 } from "lucide-react"; import { Disclosure, Transition } from "@headlessui/react"; // store // icons -import { ChevronDown, Pencil, Trash2 } from "lucide-react"; -// types -import useDraggableInPortal from "hooks/use-draggable-portal"; import { IIssueLabel } from "@plane/types"; +// types +import useDraggableInPortal from "@/hooks/use-draggable-portal"; import { CreateUpdateLabelInline } from "./create-update-label-inline"; import { ICustomMenuItem, LabelItemBlock } from "./label-block/label-item-block"; import { ProjectSettingLabelItem } from "./project-setting-label-item"; diff --git a/web/components/labels/project-setting-label-item.tsx b/web/components/labels/project-setting-label-item.tsx index 30e424064..d8bbee719 100644 --- a/web/components/labels/project-setting-label-item.tsx +++ b/web/components/labels/project-setting-label-item.tsx @@ -2,10 +2,10 @@ import React, { Dispatch, SetStateAction, useState } from "react"; import { DraggableProvidedDragHandleProps, DraggableStateSnapshot } from "@hello-pangea/dnd"; import { useRouter } from "next/router"; import { X, Pencil } from "lucide-react"; -// hooks -import { useLabel } from "hooks/store"; -// types import { IIssueLabel } from "@plane/types"; +// hooks +import { useLabel } from "@/hooks/store"; +// types // components import { CreateUpdateLabelInline } from "./create-update-label-inline"; import { ICustomMenuItem, LabelItemBlock } from "./label-block/label-item-block"; diff --git a/web/components/labels/project-setting-label-list.tsx b/web/components/labels/project-setting-label-list.tsx index 1e83167ae..9193fdd0b 100644 --- a/web/components/labels/project-setting-label-list.tsx +++ b/web/components/labels/project-setting-label-list.tsx @@ -1,6 +1,4 @@ import React, { useState, useRef } from "react"; -import { useRouter } from "next/router"; -import { observer } from "mobx-react"; import { DragDropContext, Draggable, @@ -9,23 +7,25 @@ import { DropResult, Droppable, } from "@hello-pangea/dnd"; +import { observer } from "mobx-react"; +import { useRouter } from "next/router"; +import { IIssueLabel } from "@plane/types"; // hooks -import { useLabel } from "hooks/store"; -import useDraggableInPortal from "hooks/use-draggable-portal"; -// components +import { Button, Loader } from "@plane/ui"; +import { EmptyState } from "@/components/empty-state"; import { CreateUpdateLabelInline, DeleteLabelModal, ProjectSettingLabelGroup, ProjectSettingLabelItem, -} from "components/labels"; -import { EmptyState } from "components/empty-state"; +} from "@/components/labels"; +import { EmptyStateType } from "@/constants/empty-state"; +import { useLabel } from "@/hooks/store"; +import useDraggableInPortal from "@/hooks/use-draggable-portal"; +// components // ui -import { Button, Loader } from "@plane/ui"; // types -import { IIssueLabel } from "@plane/types"; // constants -import { EmptyStateType } from "constants/empty-state"; const LABELS_ROOT = "labels.root"; diff --git a/web/components/modules/applied-filters/date.tsx b/web/components/modules/applied-filters/date.tsx index 42494bdbd..ef2006195 100644 --- a/web/components/modules/applied-filters/date.tsx +++ b/web/components/modules/applied-filters/date.tsx @@ -2,9 +2,9 @@ import { observer } from "mobx-react-lite"; // icons import { X } from "lucide-react"; // helpers -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; -import { renderFormattedDate } from "helpers/date-time.helper"; -import { capitalizeFirstLetter } from "helpers/string.helper"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { capitalizeFirstLetter } from "@/helpers/string.helper"; // constants type Props = { diff --git a/web/components/modules/applied-filters/members.tsx b/web/components/modules/applied-filters/members.tsx index 88f18ee0c..9c8ecb4f8 100644 --- a/web/components/modules/applied-filters/members.tsx +++ b/web/components/modules/applied-filters/members.tsx @@ -3,7 +3,7 @@ import { X } from "lucide-react"; // ui import { Avatar } from "@plane/ui"; // types -import { useMember } from "hooks/store"; +import { useMember } from "@/hooks/store"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/modules/applied-filters/root.tsx b/web/components/modules/applied-filters/root.tsx index 2969ea715..3011df084 100644 --- a/web/components/modules/applied-filters/root.tsx +++ b/web/components/modules/applied-filters/root.tsx @@ -1,10 +1,10 @@ import { X } from "lucide-react"; -// components -import { AppliedDateFilters, AppliedMembersFilters, AppliedStatusFilters } from "components/modules"; -// helpers -import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper"; -// types import { TModuleFilters } from "@plane/types"; +// components +import { AppliedDateFilters, AppliedMembersFilters, AppliedStatusFilters } from "@/components/modules"; +// helpers +import { replaceUnderscoreIfSnakeCase } from "@/helpers/string.helper"; +// types type Props = { appliedFilters: TModuleFilters; diff --git a/web/components/modules/applied-filters/status.tsx b/web/components/modules/applied-filters/status.tsx index ed5426cde..7f3d3b45b 100644 --- a/web/components/modules/applied-filters/status.tsx +++ b/web/components/modules/applied-filters/status.tsx @@ -3,7 +3,7 @@ import { X } from "lucide-react"; // ui import { ModuleStatusIcon } from "@plane/ui"; // constants -import { MODULE_STATUS } from "constants/module"; +import { MODULE_STATUS } from "@/constants/module"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/modules/delete-module-modal.tsx b/web/components/modules/delete-module-modal.tsx index f4c5e536b..57b9d97a7 100644 --- a/web/components/modules/delete-module-modal.tsx +++ b/web/components/modules/delete-module-modal.tsx @@ -1,16 +1,16 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { AlertTriangle } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // hooks -import { AlertTriangle } from "lucide-react"; +import type { IModule } from "@plane/types"; import { Button, TOAST_TYPE, setToast } from "@plane/ui"; -import { MODULE_DELETED } from "constants/event-tracker"; -import { useEventTracker, useModule } from "hooks/store"; +import { MODULE_DELETED } from "@/constants/event-tracker"; +import { useEventTracker, useModule } from "@/hooks/store"; // ui // icons // types -import type { IModule } from "@plane/types"; // constants type Props = { diff --git a/web/components/modules/dropdowns/filters/lead.tsx b/web/components/modules/dropdowns/filters/lead.tsx index ffd4f8a2e..b8dc8a9d4 100644 --- a/web/components/modules/dropdowns/filters/lead.tsx +++ b/web/components/modules/dropdowns/filters/lead.tsx @@ -1,12 +1,12 @@ import { useMemo, useState } from "react"; -import { observer } from "mobx-react-lite"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react-lite"; // hooks -import { useMember } from "hooks/store"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// ui import { Avatar, Loader } from "@plane/ui"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useMember } from "@/hooks/store"; +// components +// ui type Props = { appliedFilters: string[] | null; @@ -26,8 +26,8 @@ export const FilterLead: React.FC = observer((props: Props) => { const appliedFiltersCount = appliedFilters?.length ?? 0; const sortedOptions = useMemo(() => { - const filteredOptions = (memberIds || []).filter((memberId) => - getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) + const filteredOptions = (memberIds || []).filter( + (memberId) => getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) ); return sortBy(filteredOptions, [ diff --git a/web/components/modules/dropdowns/filters/members.tsx b/web/components/modules/dropdowns/filters/members.tsx index 0d2737227..3db1f5d04 100644 --- a/web/components/modules/dropdowns/filters/members.tsx +++ b/web/components/modules/dropdowns/filters/members.tsx @@ -1,12 +1,12 @@ import { useMemo, useState } from "react"; -import { observer } from "mobx-react-lite"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react-lite"; // hooks -import { useMember } from "hooks/store"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// ui import { Avatar, Loader } from "@plane/ui"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useMember } from "@/hooks/store"; +// components +// ui type Props = { appliedFilters: string[] | null; @@ -26,8 +26,8 @@ export const FilterMembers: React.FC = observer((props: Props) => { const appliedFiltersCount = appliedFilters?.length ?? 0; const sortedOptions = useMemo(() => { - const filteredOptions = (memberIds || []).filter((memberId) => - getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) + const filteredOptions = (memberIds || []).filter( + (memberId) => getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) ); return sortBy(filteredOptions, [ diff --git a/web/components/modules/dropdowns/filters/root.tsx b/web/components/modules/dropdowns/filters/root.tsx index 30841a43a..346a03c6f 100644 --- a/web/components/modules/dropdowns/filters/root.tsx +++ b/web/components/modules/dropdowns/filters/root.tsx @@ -1,12 +1,12 @@ import { useState } from "react"; import { observer } from "mobx-react-lite"; import { Search, X } from "lucide-react"; -// components -import { FilterLead, FilterMembers, FilterStartDate, FilterStatus, FilterTargetDate } from "components/modules"; -import { FilterOption } from "components/issues"; -// types import { TModuleDisplayFilters, TModuleFilters } from "@plane/types"; +// components import { TModuleStatus } from "@plane/ui"; +import { FilterOption } from "@/components/issues"; +import { FilterLead, FilterMembers, FilterStartDate, FilterStatus, FilterTargetDate } from "@/components/modules"; +// types type Props = { displayFilters: TModuleDisplayFilters; diff --git a/web/components/modules/dropdowns/filters/start-date.tsx b/web/components/modules/dropdowns/filters/start-date.tsx index 3c47eb286..2b55ada35 100644 --- a/web/components/modules/dropdowns/filters/start-date.tsx +++ b/web/components/modules/dropdowns/filters/start-date.tsx @@ -2,10 +2,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { DateFilterModal } from "components/core"; -import { FilterHeader, FilterOption } from "components/issues"; +import { DateFilterModal } from "@/components/core"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/modules/dropdowns/filters/status.tsx b/web/components/modules/dropdowns/filters/status.tsx index f73db2554..8da11cc26 100644 --- a/web/components/modules/dropdowns/filters/status.tsx +++ b/web/components/modules/dropdowns/filters/status.tsx @@ -1,13 +1,13 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// ui -import { ModuleStatusIcon } from "@plane/ui"; -// types import { TModuleStatus } from "@plane/types"; +// components +import { ModuleStatusIcon } from "@plane/ui"; +import { FilterHeader, FilterOption } from "@/components/issues"; +// ui +// types +import { MODULE_STATUS } from "@/constants/module"; // constants -import { MODULE_STATUS } from "constants/module"; type Props = { appliedFilters: TModuleStatus[] | null; diff --git a/web/components/modules/dropdowns/filters/target-date.tsx b/web/components/modules/dropdowns/filters/target-date.tsx index d563dbe92..cbb45eb7a 100644 --- a/web/components/modules/dropdowns/filters/target-date.tsx +++ b/web/components/modules/dropdowns/filters/target-date.tsx @@ -2,10 +2,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { DateFilterModal } from "components/core"; -import { FilterHeader, FilterOption } from "components/issues"; +import { DateFilterModal } from "@/components/core"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { DATE_AFTER_FILTER_OPTIONS } from "constants/filters"; +import { DATE_AFTER_FILTER_OPTIONS } from "@/constants/filters"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/modules/dropdowns/order-by.tsx b/web/components/modules/dropdowns/order-by.tsx index a611d1ead..dc309a97a 100644 --- a/web/components/modules/dropdowns/order-by.tsx +++ b/web/components/modules/dropdowns/order-by.tsx @@ -1,12 +1,12 @@ import { ArrowDownWideNarrow, Check, ChevronDown } from "lucide-react"; +import { TModuleOrderByOptions } from "@plane/types"; // ui import { CustomMenu, getButtonStyling } from "@plane/ui"; // helpers -import { cn } from "helpers/common.helper"; +import { MODULE_ORDER_BY_OPTIONS } from "@/constants/module"; +import { cn } from "@/helpers/common.helper"; // types -import { TModuleOrderByOptions } from "@plane/types"; // constants -import { MODULE_ORDER_BY_OPTIONS } from "constants/module"; type Props = { onChange: (value: TModuleOrderByOptions) => void; diff --git a/web/components/modules/form.tsx b/web/components/modules/form.tsx index e51aeecff..2daa2da3b 100644 --- a/web/components/modules/form.tsx +++ b/web/components/modules/form.tsx @@ -1,15 +1,15 @@ import { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; +import { IModule } from "@plane/types"; // ui import { Button, Input, TextArea } from "@plane/ui"; // components -import { DateRangeDropdown, ProjectDropdown, MemberDropdown } from "components/dropdowns"; -import { ModuleStatusSelect } from "components/modules"; +import { DateRangeDropdown, ProjectDropdown, MemberDropdown } from "@/components/dropdowns"; +import { ModuleStatusSelect } from "@/components/modules"; // helpers -import { shouldRenderProject } from "helpers/project.helper"; -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { shouldRenderProject } from "@/helpers/project.helper"; // types -import { IModule } from "@plane/types"; type Props = { handleFormSubmit: (values: Partial, dirtyFields: any) => Promise; diff --git a/web/components/modules/gantt-chart/blocks.tsx b/web/components/modules/gantt-chart/blocks.tsx index 60af5d048..14353e6ed 100644 --- a/web/components/modules/gantt-chart/blocks.tsx +++ b/web/components/modules/gantt-chart/blocks.tsx @@ -1,15 +1,15 @@ -import Link from "next/link"; import { observer } from "mobx-react"; +import Link from "next/link"; import { useRouter } from "next/router"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // ui import { Tooltip, ModuleStatusIcon } from "@plane/ui"; // helpers -import { MODULE_STATUS } from "constants/module"; -import { renderFormattedDate } from "helpers/date-time.helper"; +import { MODULE_STATUS } from "@/constants/module"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; // constants -import { useApplication, useModule } from "hooks/store"; +import { useApplication, useModule } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { moduleId: string; @@ -39,7 +39,7 @@ export const ModuleGanttBlock: React.FC = observer((props) => { >
{moduleDetails?.name}
diff --git a/web/components/modules/gantt-chart/modules-list-layout.tsx b/web/components/modules/gantt-chart/modules-list-layout.tsx index eaf7016ca..f0db46033 100644 --- a/web/components/modules/gantt-chart/modules-list-layout.tsx +++ b/web/components/modules/gantt-chart/modules-list-layout.tsx @@ -1,13 +1,13 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; +import { IModule } from "@plane/types"; // mobx store // components -import { GanttChartRoot, IBlockUpdateData, ModuleGanttSidebar } from "components/gantt-chart"; -import { ModuleGanttBlock } from "components/modules"; -import { useModule, useProject } from "hooks/store"; +import { GanttChartRoot, IBlockUpdateData, ModuleGanttSidebar } from "@/components/gantt-chart"; +import { ModuleGanttBlock } from "@/components/modules"; +import { getDate } from "@/helpers/date-time.helper"; +import { useModule, useProject } from "@/hooks/store"; // types -import { IModule } from "@plane/types"; -import { getDate } from "helpers/date-time.helper"; export const ModulesListGanttChartView: React.FC = observer(() => { // router diff --git a/web/components/modules/modal.tsx b/web/components/modules/modal.tsx index f83372eaa..7242073b1 100644 --- a/web/components/modules/modal.tsx +++ b/web/components/modules/modal.tsx @@ -2,16 +2,16 @@ import React, { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import { useForm } from "react-hook-form"; import { Dialog, Transition } from "@headlessui/react"; +import type { IModule } from "@plane/types"; // components import { TOAST_TYPE, setToast } from "@plane/ui"; -import { ModuleForm } from "components/modules"; -import { MODULE_CREATED, MODULE_UPDATED } from "constants/event-tracker"; +import { ModuleForm } from "@/components/modules"; +import { MODULE_CREATED, MODULE_UPDATED } from "@/constants/event-tracker"; // hooks -import { useEventTracker, useModule, useProject } from "hooks/store"; +import { useEventTracker, useModule, useProject } from "@/hooks/store"; // ui // components // types -import type { IModule } from "@plane/types"; type Props = { isOpen: boolean; diff --git a/web/components/modules/moduels-list-mobile-header.tsx b/web/components/modules/moduels-list-mobile-header.tsx index 90919a998..94c089328 100644 --- a/web/components/modules/moduels-list-mobile-header.tsx +++ b/web/components/modules/moduels-list-mobile-header.tsx @@ -1,7 +1,7 @@ -import { CustomMenu } from "@plane/ui"; -import { MODULE_VIEW_LAYOUTS } from "constants/module"; -import { useModuleFilter, useProject } from "hooks/store"; import { observer } from "mobx-react"; +import { CustomMenu } from "@plane/ui"; +import { MODULE_VIEW_LAYOUTS } from "@/constants/module"; +import { useModuleFilter, useProject } from "@/hooks/store"; const ModulesListMobileHeader = observer(() => { const { currentProjectDetails } = useProject(); diff --git a/web/components/modules/module-card-item.tsx b/web/components/modules/module-card-item.tsx index c59cbbc29..b12b10fe8 100644 --- a/web/components/modules/module-card-item.tsx +++ b/web/components/modules/module-card-item.tsx @@ -6,17 +6,17 @@ import { Info, LinkIcon, Pencil, Star, Trash2 } from "lucide-react"; // ui import { Avatar, AvatarGroup, CustomMenu, LayersIcon, Tooltip, TOAST_TYPE, setToast, setPromiseToast } from "@plane/ui"; // components -import { CreateUpdateModuleModal, DeleteModuleModal } from "components/modules"; +import { CreateUpdateModuleModal, DeleteModuleModal } from "@/components/modules"; // constants -import { MODULE_FAVORITED, MODULE_UNFAVORITED } from "constants/event-tracker"; -import { MODULE_STATUS } from "constants/module"; -import { EUserProjectRoles } from "constants/project"; +import { MODULE_FAVORITED, MODULE_UNFAVORITED } from "@/constants/event-tracker"; +import { MODULE_STATUS } from "@/constants/module"; +import { EUserProjectRoles } from "@/constants/project"; // helpers -import { copyUrlToClipboard } from "helpers/string.helper"; -import { getDate, renderFormattedDate } from "helpers/date-time.helper"; +import { getDate, renderFormattedDate } from "@/helpers/date-time.helper"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; // hooks -import { useEventTracker, useMember, useModule, useUser } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useEventTracker, useMember, useModule, useUser } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { moduleId: string; @@ -160,8 +160,8 @@ export const ModuleCardItem: React.FC = observer((props) => { ? !moduleTotalIssues || moduleTotalIssues === 0 ? "0 Issue" : moduleTotalIssues === moduleDetails.completed_issues - ? `${moduleTotalIssues} Issue${moduleTotalIssues > 1 ? "s" : ""}` - : `${moduleDetails.completed_issues}/${moduleTotalIssues} Issues` + ? `${moduleTotalIssues} Issue${moduleTotalIssues > 1 ? "s" : ""}` + : `${moduleDetails.completed_issues}/${moduleTotalIssues} Issues` : "0 Issue"; return ( diff --git a/web/components/modules/module-list-item.tsx b/web/components/modules/module-list-item.tsx index 26d7fea12..c317b78d1 100644 --- a/web/components/modules/module-list-item.tsx +++ b/web/components/modules/module-list-item.tsx @@ -14,17 +14,17 @@ import { setToast, setPromiseToast, } from "@plane/ui"; -import { CreateUpdateModuleModal, DeleteModuleModal } from "components/modules"; -import { MODULE_FAVORITED, MODULE_UNFAVORITED } from "constants/event-tracker"; +import { CreateUpdateModuleModal, DeleteModuleModal } from "@/components/modules"; +import { MODULE_FAVORITED, MODULE_UNFAVORITED } from "@/constants/event-tracker"; // helpers -import { copyUrlToClipboard } from "helpers/string.helper"; -import { getDate, renderFormattedDate } from "helpers/date-time.helper"; // constants -import { MODULE_STATUS } from "constants/module"; -import { EUserProjectRoles } from "constants/project"; +import { MODULE_STATUS } from "@/constants/module"; +import { EUserProjectRoles } from "@/constants/project"; +import { getDate, renderFormattedDate } from "@/helpers/date-time.helper"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; // hooks -import { useModule, useUser, useEventTracker, useMember } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useModule, useUser, useEventTracker, useMember } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // components // ui // helpers diff --git a/web/components/modules/module-mobile-header.tsx b/web/components/modules/module-mobile-header.tsx index ead9eb6c5..8e632dac8 100644 --- a/web/components/modules/module-mobile-header.tsx +++ b/web/components/modules/module-mobile-header.tsx @@ -3,17 +3,17 @@ import { observer } from "mobx-react"; import router from "next/router"; // icons import { Calendar, ChevronDown, Kanban, List } from "lucide-react"; +import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; // ui import { CustomMenu } from "@plane/ui"; // components -import { ProjectAnalyticsModal } from "components/analytics"; -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "components/issues"; +import { ProjectAnalyticsModal } from "@/components/analytics"; +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues"; // hooks -import { useIssues, useLabel, useMember, useModule, useProjectState } from "hooks/store"; +import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT, ISSUE_LAYOUTS } from "@/constants/issue"; +import { useIssues, useLabel, useMember, useModule, useProjectState } from "@/hooks/store"; // types -import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; // constants -import { EIssueFilterType, EIssuesStoreType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT, ISSUE_LAYOUTS } from "constants/issue"; export const ModuleMobileHeader = observer(() => { const [analyticsModal, setAnalyticsModal] = useState(false); diff --git a/web/components/modules/module-peek-overview.tsx b/web/components/modules/module-peek-overview.tsx index 76d35b93e..f455a825d 100644 --- a/web/components/modules/module-peek-overview.tsx +++ b/web/components/modules/module-peek-overview.tsx @@ -2,7 +2,7 @@ import React, { useEffect } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; // hooks -import { useModule } from "hooks/store"; +import { useModule } from "@/hooks/store"; // components import { ModuleDetailsSidebar } from "./sidebar"; diff --git a/web/components/modules/modules-list-view.tsx b/web/components/modules/modules-list-view.tsx index 2998843e1..a4cb7a652 100644 --- a/web/components/modules/modules-list-view.tsx +++ b/web/components/modules/modules-list-view.tsx @@ -1,18 +1,18 @@ -import Image from "next/image"; import { observer } from "mobx-react-lite"; +import Image from "next/image"; import { useRouter } from "next/router"; // hooks -import { useApplication, useEventTracker, useModule, useModuleFilter } from "hooks/store"; // components -import { ModuleCardItem, ModuleListItem, ModulePeekOverview, ModulesListGanttChartView } from "components/modules"; -import { EmptyState } from "components/empty-state"; +import { EmptyState } from "@/components/empty-state"; +import { ModuleCardItem, ModuleListItem, ModulePeekOverview, ModulesListGanttChartView } from "@/components/modules"; // ui -import { CycleModuleBoardLayout, CycleModuleListLayout, GanttLayoutLoader } from "components/ui"; +import { CycleModuleBoardLayout, CycleModuleListLayout, GanttLayoutLoader } from "@/components/ui"; // assets -import NameFilterImage from "public/empty-state/module/name-filter.svg"; -import AllFiltersImage from "public/empty-state/module/all-filters.svg"; // constants -import { EmptyStateType } from "constants/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; +import { useApplication, useEventTracker, useModule, useModuleFilter } from "@/hooks/store"; +import AllFiltersImage from "public/empty-state/module/all-filters.svg"; +import NameFilterImage from "public/empty-state/module/name-filter.svg"; export const ModulesListView: React.FC = observer(() => { // router diff --git a/web/components/modules/select/status.tsx b/web/components/modules/select/status.tsx index 8efdcb472..7db3167f5 100644 --- a/web/components/modules/select/status.tsx +++ b/web/components/modules/select/status.tsx @@ -2,11 +2,11 @@ import React from "react"; // react hook form import { Controller, FieldError, Control } from "react-hook-form"; +import type { IModule } from "@plane/types"; // ui import { CustomSelect, DoubleCircleIcon, ModuleStatusIcon } from "@plane/ui"; // types -import { MODULE_STATUS } from "constants/module"; -import type { IModule } from "@plane/types"; +import { MODULE_STATUS } from "@/constants/module"; // constants type Props = { diff --git a/web/components/modules/sidebar-select/select-status.tsx b/web/components/modules/sidebar-select/select-status.tsx index 4a203ee62..1c4b099db 100644 --- a/web/components/modules/sidebar-select/select-status.tsx +++ b/web/components/modules/sidebar-select/select-status.tsx @@ -2,11 +2,11 @@ import React from "react"; // react-hook-form import { Control, Controller, UseFormWatch } from "react-hook-form"; +import { IModule } from "@plane/types"; // ui import { CustomSelect, DoubleCircleIcon } from "@plane/ui"; // types -import { MODULE_STATUS } from "constants/module"; -import { IModule } from "@plane/types"; +import { MODULE_STATUS } from "@/constants/module"; // common // constants diff --git a/web/components/modules/sidebar.tsx b/web/components/modules/sidebar.tsx index 885fad745..c289ebc1e 100644 --- a/web/components/modules/sidebar.tsx +++ b/web/components/modules/sidebar.tsx @@ -2,7 +2,6 @@ import React, { useEffect, useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; -import { Disclosure, Transition } from "@headlessui/react"; import { AlertCircle, CalendarClock, @@ -14,6 +13,8 @@ import { Trash2, UserCircle2, } from "lucide-react"; +import { Disclosure, Transition } from "@headlessui/react"; +import { ILinkDetails, IModule, ModuleLink } from "@plane/types"; // ui import { CustomMenu, @@ -26,21 +27,25 @@ import { setToast, } from "@plane/ui"; // components -import { LinkModal, LinksList, SidebarProgressStats } from "components/core"; -import ProgressChart from "components/core/sidebar/progress-chart"; -import { DateRangeDropdown, MemberDropdown } from "components/dropdowns"; -import { DeleteModuleModal } from "components/modules"; +import { LinkModal, LinksList, SidebarProgressStats } from "@/components/core"; +import ProgressChart from "@/components/core/sidebar/progress-chart"; +import { DateRangeDropdown, MemberDropdown } from "@/components/dropdowns"; +import { DeleteModuleModal } from "@/components/modules"; // constant -import { MODULE_LINK_CREATED, MODULE_LINK_DELETED, MODULE_LINK_UPDATED, MODULE_UPDATED } from "constants/event-tracker"; -import { MODULE_STATUS } from "constants/module"; -import { EUserProjectRoles } from "constants/project"; +import { + MODULE_LINK_CREATED, + MODULE_LINK_DELETED, + MODULE_LINK_UPDATED, + MODULE_UPDATED, +} from "@/constants/event-tracker"; +import { MODULE_STATUS } from "@/constants/module"; +import { EUserProjectRoles } from "@/constants/project"; // helpers -import { getDate, renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { copyUrlToClipboard } from "helpers/string.helper"; +import { getDate, renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; // hooks -import { useModule, useUser, useEventTracker } from "hooks/store"; +import { useModule, useUser, useEventTracker } from "@/hooks/store"; // types -import { ILinkDetails, IModule, ModuleLink } from "@plane/types"; const defaultValues: Partial = { lead_id: "", diff --git a/web/components/notifications/notification-card.tsx b/web/components/notifications/notification-card.tsx index 0e6ef3af0..e3716edbb 100644 --- a/web/components/notifications/notification-card.tsx +++ b/web/components/notifications/notification-card.tsx @@ -2,22 +2,27 @@ import React, { useEffect, useRef } from "react"; import Image from "next/image"; import Link from "next/link"; import { useRouter } from "next/router"; +import { ArchiveRestore, Clock, MessageSquare, MoreVertical, User2 } from "lucide-react"; import { Menu } from "@headlessui/react"; // icons -import { ArchiveRestore, Clock, MessageSquare, MoreVertical, User2 } from "lucide-react"; +import type { IUserNotification, NotificationType } from "@plane/types"; // ui import { ArchiveIcon, CustomMenu, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // constants -import { ISSUE_OPENED, NOTIFICATIONS_READ, NOTIFICATION_ARCHIVED, NOTIFICATION_SNOOZED } from "constants/event-tracker"; -import { snoozeOptions } from "constants/notification"; +import { + ISSUE_OPENED, + NOTIFICATIONS_READ, + NOTIFICATION_ARCHIVED, + NOTIFICATION_SNOOZED, +} from "@/constants/event-tracker"; +import { snoozeOptions } from "@/constants/notification"; // helper -import { calculateTimeAgo, renderFormattedTime, renderFormattedDate } from "helpers/date-time.helper"; -import { replaceUnderscoreIfSnakeCase, truncateText, stripAndTruncateHTML } from "helpers/string.helper"; +import { calculateTimeAgo, renderFormattedTime, renderFormattedDate } from "@/helpers/date-time.helper"; +import { replaceUnderscoreIfSnakeCase, truncateText, stripAndTruncateHTML } from "@/helpers/string.helper"; // hooks -import { useEventTracker } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useEventTracker } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // type -import type { IUserNotification, NotificationType } from "@plane/types"; type NotificationCardProps = { selectedTab: NotificationType; diff --git a/web/components/notifications/notification-header.tsx b/web/components/notifications/notification-header.tsx index 69a1086f9..e831c6d20 100644 --- a/web/components/notifications/notification-header.tsx +++ b/web/components/notifications/notification-header.tsx @@ -1,8 +1,9 @@ import React from "react"; import { ArrowLeft, CheckCheck, Clock, ListFilter, MoreVertical, RefreshCw, X } from "lucide-react"; +import type { NotificationType, NotificationCount } from "@plane/types"; // components import { ArchiveIcon, CustomMenu, Tooltip } from "@plane/ui"; -import { SidebarHamburgerToggle } from "components/core/sidebar/sidebar-menu-hamburger-toggle"; +import { SidebarHamburgerToggle } from "@/components/core/sidebar/sidebar-menu-hamburger-toggle"; // ui // hooks import { @@ -10,13 +11,12 @@ import { NOTIFICATIONS_READ, SNOOZED_NOTIFICATIONS, UNREAD_NOTIFICATIONS, -} from "constants/event-tracker"; -import { getNumberCount } from "helpers/string.helper"; -import { useEventTracker } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +} from "@/constants/event-tracker"; +import { getNumberCount } from "@/helpers/string.helper"; +import { useEventTracker } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // helpers // type -import type { NotificationType, NotificationCount } from "@plane/types"; // constants type NotificationHeaderProps = { diff --git a/web/components/notifications/notification-popover.tsx b/web/components/notifications/notification-popover.tsx index 4dc595c0b..550ce316b 100644 --- a/web/components/notifications/notification-popover.tsx +++ b/web/components/notifications/notification-popover.tsx @@ -1,22 +1,22 @@ import React, { Fragment } from "react"; import { observer } from "mobx-react-lite"; +import { Bell } from "lucide-react"; import { Popover, Transition } from "@headlessui/react"; // hooks -import { useApplication } from "hooks/store"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import useUserNotification from "hooks/use-user-notifications"; -import { usePlatformOS } from "hooks/use-platform-os"; // icons -import { Bell } from "lucide-react"; // components import { Tooltip } from "@plane/ui"; -import { EmptyState } from "components/empty-state"; -import { NotificationsLoader } from "components/ui"; -import { SnoozeNotificationModal, NotificationCard, NotificationHeader } from "components/notifications"; +import { EmptyState } from "@/components/empty-state"; +import { SnoozeNotificationModal, NotificationCard, NotificationHeader } from "@/components/notifications"; +import { NotificationsLoader } from "@/components/ui"; // constants -import { EmptyStateType } from "constants/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; // helpers -import { getNumberCount } from "helpers/string.helper"; +import { getNumberCount } from "@/helpers/string.helper"; +import { useApplication } from "@/hooks/store"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +import { usePlatformOS } from "@/hooks/use-platform-os"; +import useUserNotification from "@/hooks/use-user-notifications"; export const NotificationPopover = observer(() => { // states @@ -63,12 +63,12 @@ export const NotificationPopover = observer(() => { const currentTabEmptyState = snoozed ? EmptyStateType.NOTIFICATION_SNOOZED_EMPTY_STATE : archived - ? EmptyStateType.NOTIFICATION_ARCHIVED_EMPTY_STATE - : selectedTab === "created" - ? EmptyStateType.NOTIFICATION_CREATED_EMPTY_STATE - : selectedTab === "watching" - ? EmptyStateType.NOTIFICATION_SUBSCRIBED_EMPTY_STATE - : EmptyStateType.NOTIFICATION_MY_ISSUE_EMPTY_STATE; + ? EmptyStateType.NOTIFICATION_ARCHIVED_EMPTY_STATE + : selectedTab === "created" + ? EmptyStateType.NOTIFICATION_CREATED_EMPTY_STATE + : selectedTab === "watching" + ? EmptyStateType.NOTIFICATION_SUBSCRIBED_EMPTY_STATE + : EmptyStateType.NOTIFICATION_MY_ISSUE_EMPTY_STATE; return ( <> diff --git a/web/components/notifications/select-snooze-till-modal.tsx b/web/components/notifications/select-snooze-till-modal.tsx index f4991448e..ec2665a1a 100644 --- a/web/components/notifications/select-snooze-till-modal.tsx +++ b/web/components/notifications/select-snooze-till-modal.tsx @@ -1,15 +1,15 @@ import { Fragment, FC } from "react"; import { useRouter } from "next/router"; import { useForm, Controller } from "react-hook-form"; -import { Transition, Dialog } from "@headlessui/react"; import { X } from "lucide-react"; +import { Transition, Dialog } from "@headlessui/react"; +import type { IUserNotification } from "@plane/types"; import { Button, CustomSelect, TOAST_TYPE, setToast } from "@plane/ui"; -import { DateDropdown } from "components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns"; // constants -import { allTimeIn30MinutesInterval12HoursFormat } from "constants/notification"; +import { allTimeIn30MinutesInterval12HoursFormat } from "@/constants/notification"; // ui // types -import type { IUserNotification } from "@plane/types"; type SnoozeModalProps = { isOpen: boolean; diff --git a/web/components/onboarding/invitations.tsx b/web/components/onboarding/invitations.tsx index 2e94bb67e..f0980a3d8 100644 --- a/web/components/onboarding/invitations.tsx +++ b/web/components/onboarding/invitations.tsx @@ -2,22 +2,22 @@ import React, { useState } from "react"; import useSWR, { mutate } from "swr"; // hooks import { CheckCircle2, Search } from "lucide-react"; +import { IWorkspaceMemberInvitation } from "@plane/types"; import { Button } from "@plane/ui"; -import { MEMBER_ACCEPTED } from "constants/event-tracker"; -import { USER_WORKSPACES, USER_WORKSPACE_INVITATIONS } from "constants/fetch-keys"; -import { ROLE } from "constants/workspace"; -import { truncateText } from "helpers/string.helper"; -import { getUserRole } from "helpers/user.helper"; -import { useEventTracker, useUser, useWorkspace } from "hooks/store"; +import { MEMBER_ACCEPTED } from "@/constants/event-tracker"; +import { USER_WORKSPACES, USER_WORKSPACE_INVITATIONS } from "@/constants/fetch-keys"; +import { ROLE } from "@/constants/workspace"; +import { truncateText } from "@/helpers/string.helper"; +import { getUserRole } from "@/helpers/user.helper"; +import { useEventTracker, useUser, useWorkspace } from "@/hooks/store"; // components // helpers // services -import { WorkspaceService } from "services/workspace.service"; +import { WorkspaceService } from "@/services/workspace.service"; // constants // types -import { IWorkspaceMemberInvitation } from "@plane/types"; // icons -import {} from "hooks/store/use-event-tracker"; +import {} from "@/hooks/store/use-event-tracker"; type Props = { handleNextStep: () => void; diff --git a/web/components/onboarding/invite-members.tsx b/web/components/onboarding/invite-members.tsx index d0540a5a4..601039efe 100644 --- a/web/components/onboarding/invite-members.tsx +++ b/web/components/onboarding/invite-members.tsx @@ -12,30 +12,30 @@ import { useFieldArray, useForm, } from "react-hook-form"; +import { Check, ChevronDown, Plus, XCircle } from "lucide-react"; import { Listbox, Transition } from "@headlessui/react"; // icons -import { Check, ChevronDown, Plus, XCircle } from "lucide-react"; +import { IUser, IWorkspace, TOnboardingSteps } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // components -import { OnboardingStepIndicator } from "components/onboarding/step-indicator"; +import { OnboardingStepIndicator } from "@/components/onboarding/step-indicator"; // constants -import { MEMBER_INVITED } from "constants/event-tracker"; -import { EUserWorkspaceRoles, ROLE } from "constants/workspace"; +import { MEMBER_INVITED } from "@/constants/event-tracker"; +import { EUserWorkspaceRoles, ROLE } from "@/constants/workspace"; // helpers -import { getUserRole } from "helpers/user.helper"; +import { getUserRole } from "@/helpers/user.helper"; // hooks -import { useEventTracker } from "hooks/store"; -import useDynamicDropdownPosition from "hooks/use-dynamic-dropdown"; +import { useEventTracker } from "@/hooks/store"; +import useDynamicDropdownPosition from "@/hooks/use-dynamic-dropdown"; // assets +import { WorkspaceService } from "@/services/workspace.service"; import userDark from "public/onboarding/user-dark.svg"; import userLight from "public/onboarding/user-light.svg"; import user1 from "public/users/user-1.png"; import user2 from "public/users/user-2.png"; // services -import { WorkspaceService } from "services/workspace.service"; // types -import { IUser, IWorkspace, TOnboardingSteps } from "@plane/types"; type Props = { finishOnboarding: () => Promise; diff --git a/web/components/onboarding/join-workspaces.tsx b/web/components/onboarding/join-workspaces.tsx index e59db31c7..936da676a 100644 --- a/web/components/onboarding/join-workspaces.tsx +++ b/web/components/onboarding/join-workspaces.tsx @@ -1,12 +1,12 @@ import React from "react"; import { observer } from "mobx-react-lite"; import { Controller, useForm } from "react-hook-form"; +import { IWorkspace, TOnboardingSteps } from "@plane/types"; // hooks -import { Invitations, OnboardingSidebar, OnboardingStepIndicator, Workspace } from "components/onboarding"; -import { useUser } from "hooks/store"; +import { Invitations, OnboardingSidebar, OnboardingStepIndicator, Workspace } from "@/components/onboarding"; +import { useUser } from "@/hooks/store"; // components // types -import { IWorkspace, TOnboardingSteps } from "@plane/types"; type Props = { finishOnboarding: () => Promise; diff --git a/web/components/onboarding/onboarding-sidebar.tsx b/web/components/onboarding/onboarding-sidebar.tsx index 42ec102cb..eba9f2d33 100644 --- a/web/components/onboarding/onboarding-sidebar.tsx +++ b/web/components/onboarding/onboarding-sidebar.tsx @@ -16,12 +16,12 @@ import { Settings, Bell, } from "lucide-react"; +import { IWorkspace } from "@plane/types"; import { Avatar, DiceIcon, PhotoFilterIcon } from "@plane/ui"; // hooks -import { useUser, useWorkspace } from "hooks/store"; +import { useUser, useWorkspace } from "@/hooks/store"; // types import projectEmoji from "public/emoji/project-emoji.svg"; -import { IWorkspace } from "@plane/types"; // assets const workspaceLinks = [ diff --git a/web/components/onboarding/switch-delete-account-modal.tsx b/web/components/onboarding/switch-delete-account-modal.tsx index c84911220..e0ea254a6 100644 --- a/web/components/onboarding/switch-delete-account-modal.tsx +++ b/web/components/onboarding/switch-delete-account-modal.tsx @@ -2,11 +2,11 @@ import React, { useState } from "react"; import { useRouter } from "next/router"; import { useTheme } from "next-themes"; import { mutate } from "swr"; -import { Dialog, Transition } from "@headlessui/react"; import { Trash2 } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; // hooks import { TOAST_TYPE, setToast } from "@plane/ui"; -import { useUser } from "hooks/store"; +import { useUser } from "@/hooks/store"; // ui type Props = { diff --git a/web/components/onboarding/tour/root.tsx b/web/components/onboarding/tour/root.tsx index 4c44f8c62..e1ff355d4 100644 --- a/web/components/onboarding/tour/root.tsx +++ b/web/components/onboarding/tour/root.tsx @@ -4,9 +4,9 @@ import Image from "next/image"; import { X } from "lucide-react"; // hooks import { Button } from "@plane/ui"; -import { TourSidebar } from "components/onboarding"; -import { PRODUCT_TOUR_SKIPPED, PRODUCT_TOUR_STARTED } from "constants/event-tracker"; -import { useApplication, useEventTracker, useUser } from "hooks/store"; +import { TourSidebar } from "@/components/onboarding"; +import { PRODUCT_TOUR_SKIPPED, PRODUCT_TOUR_STARTED } from "@/constants/event-tracker"; +import { useApplication, useEventTracker, useUser } from "@/hooks/store"; // components // ui // assets diff --git a/web/components/onboarding/user-details.tsx b/web/components/onboarding/user-details.tsx index 820f08da6..33ac6a8ee 100644 --- a/web/components/onboarding/user-details.tsx +++ b/web/components/onboarding/user-details.tsx @@ -3,20 +3,20 @@ import { observer } from "mobx-react-lite"; import Image from "next/image"; import { Controller, useForm } from "react-hook-form"; import { Camera, User2 } from "lucide-react"; +import { IUser } from "@plane/types"; import { Button, Input } from "@plane/ui"; // components -import { UserImageUploadModal } from "components/core"; -import { OnboardingSidebar, OnboardingStepIndicator } from "components/onboarding"; +import { UserImageUploadModal } from "@/components/core"; +import { OnboardingSidebar, OnboardingStepIndicator } from "@/components/onboarding"; // constants -import { USER_DETAILS } from "constants/event-tracker"; +import { USER_DETAILS } from "@/constants/event-tracker"; // hooks -import { useEventTracker, useUser, useWorkspace } from "hooks/store"; +import { useEventTracker, useUser, useWorkspace } from "@/hooks/store"; // assets +import { FileService } from "@/services/file.service"; import IssuesSvg from "public/onboarding/onboarding-issues.webp"; // services -import { FileService } from "services/file.service"; // types -import { IUser } from "@plane/types"; const defaultValues: Partial = { first_name: "", diff --git a/web/components/onboarding/workspace.tsx b/web/components/onboarding/workspace.tsx index f9bb2182d..02663df26 100644 --- a/web/components/onboarding/workspace.tsx +++ b/web/components/onboarding/workspace.tsx @@ -1,14 +1,14 @@ import { useState } from "react"; import { Control, Controller, FieldErrors, UseFormHandleSubmit, UseFormSetValue } from "react-hook-form"; +import { IUser, IWorkspace, TOnboardingSteps } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // types -import { WORKSPACE_CREATED } from "constants/event-tracker"; -import { RESTRICTED_URLS } from "constants/workspace"; -import { useEventTracker, useUser, useWorkspace } from "hooks/store"; +import { WORKSPACE_CREATED } from "@/constants/event-tracker"; +import { RESTRICTED_URLS } from "@/constants/workspace"; +import { useEventTracker, useUser, useWorkspace } from "@/hooks/store"; // services -import { WorkspaceService } from "services/workspace.service"; -import { IUser, IWorkspace, TOnboardingSteps } from "@plane/types"; +import { WorkspaceService } from "@/services/workspace.service"; // constants type Props = { diff --git a/web/components/page-views/signin.tsx b/web/components/page-views/signin.tsx index 7929a5e37..28e909bf3 100644 --- a/web/components/page-views/signin.tsx +++ b/web/components/page-views/signin.tsx @@ -3,10 +3,10 @@ import { observer } from "mobx-react-lite"; import Image from "next/image"; // hooks import { Spinner } from "@plane/ui"; -import { SignInRoot } from "components/account"; -import { PageHead } from "components/core"; -import { useApplication, useUser } from "hooks/store"; -import useSignInRedirection from "hooks/use-sign-in-redirection"; +import { SignInRoot } from "@/components/account"; +import { PageHead } from "@/components/core"; +import { useApplication, useUser } from "@/hooks/store"; +import useSignInRedirection from "@/hooks/use-sign-in-redirection"; // components // ui // images diff --git a/web/components/page-views/workspace-dashboard.tsx b/web/components/page-views/workspace-dashboard.tsx index f910625ca..f1561c42e 100644 --- a/web/components/page-views/workspace-dashboard.tsx +++ b/web/components/page-views/workspace-dashboard.tsx @@ -1,18 +1,18 @@ import { useEffect } from "react"; import { observer } from "mobx-react-lite"; // hooks -import { useApplication, useEventTracker, useDashboard, useProject, useUser } from "hooks/store"; // components -import { DashboardWidgets } from "components/dashboard"; -import { EmptyState } from "components/empty-state"; -import { IssuePeekOverview } from "components/issues"; -import { TourRoot } from "components/onboarding"; -import { UserGreetingsView } from "components/user"; -// ui import { Spinner } from "@plane/ui"; +import { DashboardWidgets } from "@/components/dashboard"; +import { EmptyState } from "@/components/empty-state"; +import { IssuePeekOverview } from "@/components/issues"; +import { TourRoot } from "@/components/onboarding"; +import { UserGreetingsView } from "@/components/user"; +// ui // constants -import { PRODUCT_TOUR_COMPLETED } from "constants/event-tracker"; -import { EmptyStateType } from "constants/empty-state"; +import { EmptyStateType } from "@/constants/empty-state"; +import { PRODUCT_TOUR_COMPLETED } from "@/constants/event-tracker"; +import { useApplication, useEventTracker, useDashboard, useProject, useUser } from "@/hooks/store"; export const WorkspaceDashboardView = observer(() => { // store hooks diff --git a/web/components/pages/create-update-page-modal.tsx b/web/components/pages/create-update-page-modal.tsx index c3e22e52e..3f077d0c6 100644 --- a/web/components/pages/create-update-page-modal.tsx +++ b/web/components/pages/create-update-page-modal.tsx @@ -1,14 +1,14 @@ import React, { FC } from "react"; import { useRouter } from "next/router"; import { Dialog, Transition } from "@headlessui/react"; +import { IPage } from "@plane/types"; // components -import { PAGE_CREATED, PAGE_UPDATED } from "constants/event-tracker"; -import { useEventTracker } from "hooks/store"; +import { PAGE_CREATED, PAGE_UPDATED } from "@/constants/event-tracker"; +import { useEventTracker } from "@/hooks/store"; // hooks // types -import { useProjectPages } from "hooks/store/use-project-page"; -import { IPageStore } from "store/page.store"; -import { IPage } from "@plane/types"; +import { useProjectPages } from "@/hooks/store/use-project-page"; +import { IPageStore } from "@/store/page.store"; import { PageForm } from "./page-form"; // constants diff --git a/web/components/pages/delete-page-modal.tsx b/web/components/pages/delete-page-modal.tsx index 362dae172..cedd6382d 100644 --- a/web/components/pages/delete-page-modal.tsx +++ b/web/components/pages/delete-page-modal.tsx @@ -1,15 +1,15 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -import { Dialog, Transition } from "@headlessui/react"; import { AlertTriangle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; // constants -import { PAGE_DELETED } from "constants/event-tracker"; +import { PAGE_DELETED } from "@/constants/event-tracker"; // hooks -import { useEventTracker, usePage } from "hooks/store"; -import { useProjectPages } from "hooks/store/use-project-page"; +import { useEventTracker, usePage } from "@/hooks/store"; +import { useProjectPages } from "@/hooks/store/use-project-page"; // types type TConfirmPageDeletionProps = { diff --git a/web/components/pages/page-form.tsx b/web/components/pages/page-form.tsx index a48489e0a..c1e02504e 100644 --- a/web/components/pages/page-form.tsx +++ b/web/components/pages/page-form.tsx @@ -1,12 +1,12 @@ import { Controller, useForm } from "react-hook-form"; +import { IPage } from "@plane/types"; // ui import { Button, Input, Tooltip } from "@plane/ui"; // types // constants -import { PAGE_ACCESS_SPECIFIERS } from "constants/page"; -import { IPageStore } from "store/page.store"; -import { IPage } from "@plane/types"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { PAGE_ACCESS_SPECIFIERS } from "@/constants/page"; +import { usePlatformOS } from "@/hooks/use-platform-os"; +import { IPageStore } from "@/store/page.store"; type Props = { handleFormSubmit: (values: IPage) => Promise; diff --git a/web/components/pages/pages-list/all-pages-list.tsx b/web/components/pages/pages-list/all-pages-list.tsx index e7cb21775..3af99ddf6 100644 --- a/web/components/pages/pages-list/all-pages-list.tsx +++ b/web/components/pages/pages-list/all-pages-list.tsx @@ -2,9 +2,9 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // hooks import { Loader } from "@plane/ui"; -import { PagesListView } from "components/pages/pages-list"; +import { PagesListView } from "@/components/pages/pages-list"; // ui -import { useProjectPages } from "hooks/store/use-project-specific-pages"; +import { useProjectPages } from "@/hooks/store/use-project-specific-pages"; export const AllPagesList: FC = observer(() => { const pageStores = useProjectPages(); diff --git a/web/components/pages/pages-list/archived-pages-list.tsx b/web/components/pages/pages-list/archived-pages-list.tsx index f7bcb6059..4db6f29a8 100644 --- a/web/components/pages/pages-list/archived-pages-list.tsx +++ b/web/components/pages/pages-list/archived-pages-list.tsx @@ -2,10 +2,10 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // components import { Loader, Spinner } from "@plane/ui"; -import { PagesListView } from "components/pages/pages-list"; +import { PagesListView } from "@/components/pages/pages-list"; // hooks // ui -import { useProjectPages } from "hooks/store/use-project-specific-pages"; +import { useProjectPages } from "@/hooks/store/use-project-specific-pages"; export const ArchivedPagesList: FC = observer(() => { const projectPageStore = useProjectPages(); diff --git a/web/components/pages/pages-list/favorite-pages-list.tsx b/web/components/pages/pages-list/favorite-pages-list.tsx index 4d2ad5019..227dd7408 100644 --- a/web/components/pages/pages-list/favorite-pages-list.tsx +++ b/web/components/pages/pages-list/favorite-pages-list.tsx @@ -2,10 +2,10 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // components import { Loader } from "@plane/ui"; -import { PagesListView } from "components/pages/pages-list"; +import { PagesListView } from "@/components/pages/pages-list"; // hooks // ui -import { useProjectPages } from "hooks/store/use-project-specific-pages"; +import { useProjectPages } from "@/hooks/store/use-project-specific-pages"; export const FavoritePagesList: FC = observer(() => { const projectPageStore = useProjectPages(); diff --git a/web/components/pages/pages-list/list-item.tsx b/web/components/pages/pages-list/list-item.tsx index d9005b4d8..74fa42d71 100644 --- a/web/components/pages/pages-list/list-item.tsx +++ b/web/components/pages/pages-list/list-item.tsx @@ -14,19 +14,19 @@ import { Star, Trash2, } from "lucide-react"; +import { IIssueLabel } from "@plane/types"; // ui import { CustomMenu, Tooltip } from "@plane/ui"; // components -import { CreateUpdatePageModal, DeletePageModal } from "components/pages"; +import { CreateUpdatePageModal, DeletePageModal } from "@/components/pages"; // constants -import { EUserProjectRoles } from "constants/project"; -import { renderFormattedTime, renderFormattedDate } from "helpers/date-time.helper"; -import { copyUrlToClipboard } from "helpers/string.helper"; +import { EUserProjectRoles } from "@/constants/project"; +import { renderFormattedTime, renderFormattedDate } from "@/helpers/date-time.helper"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; // hooks -import { useMember, usePage, useUser } from "hooks/store"; -import { useProjectPages } from "hooks/store/use-project-specific-pages"; -import { usePlatformOS } from "hooks/use-platform-os"; -import { IIssueLabel } from "@plane/types"; +import { useMember, usePage, useUser } from "@/hooks/store"; +import { useProjectPages } from "@/hooks/store/use-project-specific-pages"; +import { usePlatformOS } from "@/hooks/use-platform-os"; export interface IPagesListItem { pageId: string; diff --git a/web/components/pages/pages-list/list-view.tsx b/web/components/pages/pages-list/list-view.tsx index 6b363b2f2..165a9a619 100644 --- a/web/components/pages/pages-list/list-view.tsx +++ b/web/components/pages/pages-list/list-view.tsx @@ -1,15 +1,15 @@ import { FC } from "react"; import { useRouter } from "next/router"; // hooks -import { useApplication } from "hooks/store"; -import useLocalStorage from "hooks/use-local-storage"; +import { Loader } from "@plane/ui"; +import { EmptyState } from "@/components/empty-state"; +import { EMPTY_STATE_DETAILS, EmptyStateType } from "@/constants/empty-state"; +import { useApplication } from "@/hooks/store"; +import useLocalStorage from "@/hooks/use-local-storage"; // components -import { EmptyState } from "components/empty-state"; import { PagesListItem } from "./list-item"; // ui -import { Loader } from "@plane/ui"; // constants -import { EMPTY_STATE_DETAILS, EmptyStateType } from "constants/empty-state"; type IPagesListView = { pageIds: string[]; diff --git a/web/components/pages/pages-list/private-page-list.tsx b/web/components/pages/pages-list/private-page-list.tsx index 316c6bf44..db99c6942 100644 --- a/web/components/pages/pages-list/private-page-list.tsx +++ b/web/components/pages/pages-list/private-page-list.tsx @@ -3,9 +3,9 @@ import { observer } from "mobx-react-lite"; // hooks // components import { Loader } from "@plane/ui"; -import { PagesListView } from "components/pages/pages-list"; +import { PagesListView } from "@/components/pages/pages-list"; // ui -import { useProjectPages } from "hooks/store/use-project-specific-pages"; +import { useProjectPages } from "@/hooks/store/use-project-specific-pages"; export const PrivatePagesList: FC = observer(() => { const projectPageStore = useProjectPages(); diff --git a/web/components/pages/pages-list/recent-pages-list.tsx b/web/components/pages/pages-list/recent-pages-list.tsx index 45de8db0d..7066fff25 100644 --- a/web/components/pages/pages-list/recent-pages-list.tsx +++ b/web/components/pages/pages-list/recent-pages-list.tsx @@ -1,17 +1,17 @@ import React, { FC } from "react"; import { observer } from "mobx-react-lite"; // hooks -import { useApplication } from "hooks/store"; -import { useProjectPages } from "hooks/store/use-project-specific-pages"; -// components -import { PagesListView } from "components/pages/pages-list"; -import { EmptyState } from "components/empty-state"; -// ui import { Loader } from "@plane/ui"; +import { EmptyState } from "@/components/empty-state"; +import { PagesListView } from "@/components/pages/pages-list"; +import { EmptyStateType } from "@/constants/empty-state"; +import { replaceUnderscoreIfSnakeCase } from "@/helpers/string.helper"; +import { useApplication } from "@/hooks/store"; +import { useProjectPages } from "@/hooks/store/use-project-specific-pages"; +// components +// ui // helpers -import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper"; // constants -import { EmptyStateType } from "constants/empty-state"; export const RecentPagesList: FC = observer(() => { // store hooks diff --git a/web/components/pages/pages-list/shared-pages-list.tsx b/web/components/pages/pages-list/shared-pages-list.tsx index 2626db13c..600727e06 100644 --- a/web/components/pages/pages-list/shared-pages-list.tsx +++ b/web/components/pages/pages-list/shared-pages-list.tsx @@ -2,10 +2,10 @@ import { FC } from "react"; import { observer } from "mobx-react-lite"; // components import { Loader } from "@plane/ui"; -import { PagesListView } from "components/pages/pages-list"; +import { PagesListView } from "@/components/pages/pages-list"; // hooks // ui -import { useProjectPages } from "hooks/store/use-project-specific-pages"; +import { useProjectPages } from "@/hooks/store/use-project-specific-pages"; export const SharedPagesList: FC = observer(() => { const projectPageStore = useProjectPages(); diff --git a/web/components/profile/activity/activity-list.tsx b/web/components/profile/activity/activity-list.tsx index e77128e9f..2926f0637 100644 --- a/web/components/profile/activity/activity-list.tsx +++ b/web/components/profile/activity/activity-list.tsx @@ -1,18 +1,18 @@ -import { RichReadOnlyEditor } from "@plane/rich-text-editor"; import { observer } from "mobx-react"; import Link from "next/link"; import { History, MessageSquare } from "lucide-react"; +import { RichReadOnlyEditor } from "@plane/rich-text-editor"; +import { IUserActivityResponse } from "@plane/types"; // editor // hooks // components -import { ActivityIcon, ActivityMessage, IssueLink } from "components/core"; +import { ActivityIcon, ActivityMessage, IssueLink } from "@/components/core"; // ui -import { ActivitySettingsLoader } from "components/ui"; +import { ActivitySettingsLoader } from "@/components/ui"; // helpers -import { calculateTimeAgo } from "helpers/date-time.helper"; -import { useUser } from "hooks/store"; +import { calculateTimeAgo } from "@/helpers/date-time.helper"; +import { useUser } from "@/hooks/store"; // types -import { IUserActivityResponse } from "@plane/types"; type Props = { activity: IUserActivityResponse | undefined; diff --git a/web/components/profile/activity/download-button.tsx b/web/components/profile/activity/download-button.tsx index 491ebf45f..d930a4e30 100644 --- a/web/components/profile/activity/download-button.tsx +++ b/web/components/profile/activity/download-button.tsx @@ -4,8 +4,8 @@ import { useRouter } from "next/router"; // ui import { Button } from "@plane/ui"; // helpers -import { renderFormattedPayloadDate } from "helpers/date-time.helper"; -import { UserService } from "services/user.service"; +import { renderFormattedPayloadDate } from "@/helpers/date-time.helper"; +import { UserService } from "@/services/user.service"; const userService = new UserService(); diff --git a/web/components/profile/activity/profile-activity-list.tsx b/web/components/profile/activity/profile-activity-list.tsx index 6311c382c..b792671a0 100644 --- a/web/components/profile/activity/profile-activity-list.tsx +++ b/web/components/profile/activity/profile-activity-list.tsx @@ -1,17 +1,17 @@ import { useEffect } from "react"; -import { RichReadOnlyEditor } from "@plane/rich-text-editor"; import { observer } from "mobx-react"; import Link from "next/link"; import useSWR from "swr"; import { History, MessageSquare } from "lucide-react"; +import { RichReadOnlyEditor } from "@plane/rich-text-editor"; // hooks -import { ActivityIcon, ActivityMessage, IssueLink } from "components/core"; -import { ActivitySettingsLoader } from "components/ui"; -import { USER_ACTIVITY } from "constants/fetch-keys"; -import { calculateTimeAgo } from "helpers/date-time.helper"; -import { useUser } from "hooks/store"; +import { ActivityIcon, ActivityMessage, IssueLink } from "@/components/core"; +import { ActivitySettingsLoader } from "@/components/ui"; +import { USER_ACTIVITY } from "@/constants/fetch-keys"; +import { calculateTimeAgo } from "@/helpers/date-time.helper"; +import { useUser } from "@/hooks/store"; // services -import { UserService } from "services/user.service"; +import { UserService } from "@/services/user.service"; // editor // components // ui diff --git a/web/components/profile/activity/workspace-activity-list.tsx b/web/components/profile/activity/workspace-activity-list.tsx index aa5a03dee..25a69fe1c 100644 --- a/web/components/profile/activity/workspace-activity-list.tsx +++ b/web/components/profile/activity/workspace-activity-list.tsx @@ -2,8 +2,8 @@ import { useEffect } from "react"; import { useRouter } from "next/router"; import useSWR from "swr"; // services -import { USER_PROFILE_ACTIVITY } from "constants/fetch-keys"; -import { UserService } from "services/user.service"; +import { USER_PROFILE_ACTIVITY } from "@/constants/fetch-keys"; +import { UserService } from "@/services/user.service"; // components import { ActivityList } from "./activity-list"; // fetch-keys diff --git a/web/components/profile/navbar.tsx b/web/components/profile/navbar.tsx index ecc0028db..6aace8e35 100644 --- a/web/components/profile/navbar.tsx +++ b/web/components/profile/navbar.tsx @@ -4,9 +4,9 @@ import Link from "next/link"; import { useRouter } from "next/router"; // components -import { ProfileIssuesFilter } from "components/profile"; +import { ProfileIssuesFilter } from "@/components/profile"; // constants -import { PROFILE_ADMINS_TAB, PROFILE_VIEWER_TAB } from "constants/profile"; +import { PROFILE_ADMINS_TAB, PROFILE_VIEWER_TAB } from "@/constants/profile"; type Props = { isAuthorized: boolean; diff --git a/web/components/profile/overview/activity.tsx b/web/components/profile/overview/activity.tsx index c8af1ccf8..9dfe433ef 100644 --- a/web/components/profile/overview/activity.tsx +++ b/web/components/profile/overview/activity.tsx @@ -3,14 +3,14 @@ import { useRouter } from "next/router"; import useSWR from "swr"; //hooks import { Loader } from "@plane/ui"; -import { ActivityMessage, IssueLink } from "components/core"; -import { ProfileEmptyState } from "components/ui"; -import { USER_PROFILE_ACTIVITY } from "constants/fetch-keys"; -import { calculateTimeAgo } from "helpers/date-time.helper"; -import { useUser } from "hooks/store"; +import { ActivityMessage, IssueLink } from "@/components/core"; +import { ProfileEmptyState } from "@/components/ui"; +import { USER_PROFILE_ACTIVITY } from "@/constants/fetch-keys"; +import { calculateTimeAgo } from "@/helpers/date-time.helper"; +import { useUser } from "@/hooks/store"; // services +import { UserService } from "@/services/user.service"; import recentActivityEmptyState from "public/empty-state/recent_activity.svg"; -import { UserService } from "services/user.service"; // components // ui // image diff --git a/web/components/profile/overview/priority-distribution.tsx b/web/components/profile/overview/priority-distribution.tsx index 12e430409..f43aed81c 100644 --- a/web/components/profile/overview/priority-distribution.tsx +++ b/web/components/profile/overview/priority-distribution.tsx @@ -1,12 +1,12 @@ // ui +import { IUserProfileData } from "@plane/types"; import { Loader } from "@plane/ui"; -import { BarGraph, ProfileEmptyState } from "components/ui"; +import { BarGraph, ProfileEmptyState } from "@/components/ui"; // image -import { capitalizeFirstLetter } from "helpers/string.helper"; +import { capitalizeFirstLetter } from "@/helpers/string.helper"; import emptyBarGraph from "public/empty-state/empty_bar_graph.svg"; // helpers // types -import { IUserProfileData } from "@plane/types"; type Props = { userProfile: IUserProfileData | undefined; diff --git a/web/components/profile/overview/priority-distribution/main-content.tsx b/web/components/profile/overview/priority-distribution/main-content.tsx index 8606f44b1..c18cf27fa 100644 --- a/web/components/profile/overview/priority-distribution/main-content.tsx +++ b/web/components/profile/overview/priority-distribution/main-content.tsx @@ -1,10 +1,10 @@ // components -import { IssuesByPriorityGraph } from "components/graphs"; -import { ProfileEmptyState } from "components/ui"; +import { IUserPriorityDistribution } from "@plane/types"; +import { IssuesByPriorityGraph } from "@/components/graphs"; +import { ProfileEmptyState } from "@/components/ui"; // assets import emptyBarGraph from "public/empty-state/empty_bar_graph.svg"; // types -import { IUserPriorityDistribution } from "@plane/types"; type Props = { priorityDistribution: IUserPriorityDistribution[]; diff --git a/web/components/profile/overview/priority-distribution/priority-distribution.tsx b/web/components/profile/overview/priority-distribution/priority-distribution.tsx index 48d612dff..597a885d8 100644 --- a/web/components/profile/overview/priority-distribution/priority-distribution.tsx +++ b/web/components/profile/overview/priority-distribution/priority-distribution.tsx @@ -1,8 +1,8 @@ // components // ui +import { IUserPriorityDistribution } from "@plane/types"; import { Loader } from "@plane/ui"; // types -import { IUserPriorityDistribution } from "@plane/types"; import { PriorityDistributionContent } from "./main-content"; type Props = { diff --git a/web/components/profile/overview/state-distribution.tsx b/web/components/profile/overview/state-distribution.tsx index 25de06c84..9c1489425 100644 --- a/web/components/profile/overview/state-distribution.tsx +++ b/web/components/profile/overview/state-distribution.tsx @@ -1,10 +1,10 @@ // ui -import { ProfileEmptyState, PieGraph } from "components/ui"; +import { IUserProfileData, IUserStateDistribution } from "@plane/types"; +import { ProfileEmptyState, PieGraph } from "@/components/ui"; // image -import { STATE_GROUPS } from "constants/state"; +import { STATE_GROUPS } from "@/constants/state"; import stateGraph from "public/empty-state/state_graph.svg"; // types -import { IUserProfileData, IUserStateDistribution } from "@plane/types"; // constants type Props = { diff --git a/web/components/profile/overview/stats.tsx b/web/components/profile/overview/stats.tsx index 62873ee38..f259b5f9c 100644 --- a/web/components/profile/overview/stats.tsx +++ b/web/components/profile/overview/stats.tsx @@ -3,9 +3,9 @@ import { useRouter } from "next/router"; // ui import { UserCircle2 } from "lucide-react"; +import { IUserProfileData } from "@plane/types"; import { CreateIcon, LayerStackIcon, Loader } from "@plane/ui"; // types -import { IUserProfileData } from "@plane/types"; type Props = { userProfile: IUserProfileData | undefined; diff --git a/web/components/profile/overview/workload.tsx b/web/components/profile/overview/workload.tsx index c7e7a94a0..f2fdd3582 100644 --- a/web/components/profile/overview/workload.tsx +++ b/web/components/profile/overview/workload.tsx @@ -1,6 +1,6 @@ // types -import { STATE_GROUPS } from "constants/state"; import { IUserStateDistribution } from "@plane/types"; +import { STATE_GROUPS } from "@/constants/state"; // constants type Props = { diff --git a/web/components/profile/preferences/email-notification-form.tsx b/web/components/profile/preferences/email-notification-form.tsx index fd158e2d5..6d352beef 100644 --- a/web/components/profile/preferences/email-notification-form.tsx +++ b/web/components/profile/preferences/email-notification-form.tsx @@ -1,11 +1,11 @@ import React, { FC } from "react"; import { Controller, useForm } from "react-hook-form"; +import { IUserEmailNotificationSettings } from "@plane/types"; // ui import { Button, Checkbox, TOAST_TYPE, setToast } from "@plane/ui"; // services -import { UserService } from "services/user.service"; +import { UserService } from "@/services/user.service"; // types -import { IUserEmailNotificationSettings } from "@plane/types"; interface IEmailNotificationFormProps { data: IUserEmailNotificationSettings; diff --git a/web/components/profile/profile-issues-filter.tsx b/web/components/profile/profile-issues-filter.tsx index 491c00f3a..fe2c004ba 100644 --- a/web/components/profile/profile-issues-filter.tsx +++ b/web/components/profile/profile-issues-filter.tsx @@ -1,13 +1,13 @@ import { useCallback } from "react"; import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; -// components -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown, LayoutSelection } from "components/issues"; -// hooks -import { EIssuesStoreType, EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "constants/issue"; -import { useIssues, useLabel } from "hooks/store"; -// constants import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions, TIssueLayouts } from "@plane/types"; +// components +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown, LayoutSelection } from "@/components/issues"; +// hooks +import { EIssuesStoreType, EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "@/constants/issue"; +import { useIssues, useLabel } from "@/hooks/store"; +// constants export const ProfileIssuesFilter = observer(() => { // router diff --git a/web/components/profile/profile-issues.tsx b/web/components/profile/profile-issues.tsx index f94c1d91f..270dff658 100644 --- a/web/components/profile/profile-issues.tsx +++ b/web/components/profile/profile-issues.tsx @@ -3,16 +3,16 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import useSWR from "swr"; // components -import { IssuePeekOverview, ProfileIssuesAppliedFiltersRoot } from "components/issues"; -import { ProfileIssuesKanBanLayout } from "components/issues/issue-layouts/kanban/roots/profile-issues-root"; -import { ProfileIssuesListLayout } from "components/issues/issue-layouts/list/roots/profile-issues-root"; -import { KanbanLayoutLoader, ListLayoutLoader } from "components/ui"; -import { EmptyState } from "components/empty-state"; +import { EmptyState } from "@/components/empty-state"; +import { IssuePeekOverview, ProfileIssuesAppliedFiltersRoot } from "@/components/issues"; +import { ProfileIssuesKanBanLayout } from "@/components/issues/issue-layouts/kanban/roots/profile-issues-root"; +import { ProfileIssuesListLayout } from "@/components/issues/issue-layouts/list/roots/profile-issues-root"; +import { KanbanLayoutLoader, ListLayoutLoader } from "@/components/ui"; // hooks -import { useIssues } from "hooks/store"; +import { EMPTY_STATE_DETAILS } from "@/constants/empty-state"; +import { EIssuesStoreType } from "@/constants/issue"; +import { useIssues } from "@/hooks/store"; // constants -import { EIssuesStoreType } from "constants/issue"; -import { EMPTY_STATE_DETAILS } from "constants/empty-state"; interface IProfileIssuesPage { type: "assigned" | "subscribed" | "created"; diff --git a/web/components/profile/sidebar.tsx b/web/components/profile/sidebar.tsx index ef75abb29..ce246ac4d 100644 --- a/web/components/profile/sidebar.tsx +++ b/web/components/profile/sidebar.tsx @@ -4,24 +4,24 @@ import Link from "next/link"; import { useRouter } from "next/router"; import useSWR from "swr"; // ui +import { ChevronDown, Pencil } from "lucide-react"; import { Disclosure, Transition } from "@headlessui/react"; // icons -import { ChevronDown, Pencil } from "lucide-react"; // plane ui import { Loader, Tooltip } from "@plane/ui"; // fetch-keys -import { USER_PROFILE_PROJECT_SEGREGATION } from "constants/fetch-keys"; +import { ProjectLogo } from "@/components/project"; +import { USER_PROFILE_PROJECT_SEGREGATION } from "@/constants/fetch-keys"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; // hooks -import { useApplication, useProject, useUser } from "hooks/store"; -import useOutsideClickDetector from "hooks/use-outside-click-detector"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useApplication, useProject, useUser } from "@/hooks/store"; +import useOutsideClickDetector from "@/hooks/use-outside-click-detector"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // services -import { UserService } from "services/user.service"; +import { UserService } from "@/services/user.service"; // components import { ProfileSidebarTime } from "./time"; -import { ProjectLogo } from "components/project"; // services const userService = new UserService(); diff --git a/web/components/profile/time.tsx b/web/components/profile/time.tsx index a1b740410..cf2fe7845 100644 --- a/web/components/profile/time.tsx +++ b/web/components/profile/time.tsx @@ -1,5 +1,5 @@ // hooks -import { useCurrentTime } from "hooks/use-current-time"; +import { useCurrentTime } from "@/hooks/use-current-time"; type Props = { timeZone: string | undefined; diff --git a/web/components/project/applied-filters/access.tsx b/web/components/project/applied-filters/access.tsx index bdb6ec053..8b881c8e4 100644 --- a/web/components/project/applied-filters/access.tsx +++ b/web/components/project/applied-filters/access.tsx @@ -1,7 +1,7 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; // constants -import { NETWORK_CHOICES } from "constants/project"; +import { NETWORK_CHOICES } from "@/constants/project"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/project/applied-filters/date.tsx b/web/components/project/applied-filters/date.tsx index aab0cf98a..d3930a52c 100644 --- a/web/components/project/applied-filters/date.tsx +++ b/web/components/project/applied-filters/date.tsx @@ -1,10 +1,10 @@ import { observer } from "mobx-react-lite"; import { X } from "lucide-react"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; -import { capitalizeFirstLetter } from "helpers/string.helper"; +import { DATE_BEFORE_FILTER_OPTIONS } from "@/constants/filters"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { capitalizeFirstLetter } from "@/helpers/string.helper"; // constants -import { DATE_BEFORE_FILTER_OPTIONS } from "constants/filters"; type Props = { editable: boolean | undefined; diff --git a/web/components/project/applied-filters/members.tsx b/web/components/project/applied-filters/members.tsx index 88f18ee0c..9c8ecb4f8 100644 --- a/web/components/project/applied-filters/members.tsx +++ b/web/components/project/applied-filters/members.tsx @@ -3,7 +3,7 @@ import { X } from "lucide-react"; // ui import { Avatar } from "@plane/ui"; // types -import { useMember } from "hooks/store"; +import { useMember } from "@/hooks/store"; type Props = { handleRemove: (val: string) => void; diff --git a/web/components/project/applied-filters/root.tsx b/web/components/project/applied-filters/root.tsx index 6e1cbf6a7..66a2513c4 100644 --- a/web/components/project/applied-filters/root.tsx +++ b/web/components/project/applied-filters/root.tsx @@ -1,12 +1,12 @@ import { X } from "lucide-react"; -// components -import { AppliedAccessFilters, AppliedDateFilters, AppliedMembersFilters } from "components/project"; -// ui -import { Tooltip } from "@plane/ui"; -// helpers -import { replaceUnderscoreIfSnakeCase } from "helpers/string.helper"; -// types import { TProjectFilters } from "@plane/types"; +// components +import { Tooltip } from "@plane/ui"; +import { AppliedAccessFilters, AppliedDateFilters, AppliedMembersFilters } from "@/components/project"; +// ui +// helpers +import { replaceUnderscoreIfSnakeCase } from "@/helpers/string.helper"; +// types type Props = { appliedFilters: TProjectFilters; diff --git a/web/components/project/card-list.tsx b/web/components/project/card-list.tsx index 3f23ed9a2..19830c7c0 100644 --- a/web/components/project/card-list.tsx +++ b/web/components/project/card-list.tsx @@ -1,16 +1,16 @@ -import Image from "next/image"; import { observer } from "mobx-react-lite"; +import Image from "next/image"; // hooks -import { useApplication, useEventTracker, useProject, useProjectFilter } from "hooks/store"; // components -import { EmptyState } from "components/empty-state"; -import { ProjectCard } from "components/project"; -import { ProjectsLoader } from "components/ui"; +import { EmptyState } from "@/components/empty-state"; +import { ProjectCard } from "@/components/project"; +import { ProjectsLoader } from "@/components/ui"; // assets +import { EmptyStateType } from "@/constants/empty-state"; +import { useApplication, useEventTracker, useProject, useProjectFilter } from "@/hooks/store"; import AllFiltersImage from "public/empty-state/project/all-filters.svg"; import NameFilterImage from "public/empty-state/project/name-filter.svg"; // constants -import { EmptyStateType } from "constants/empty-state"; export const ProjectCardList = observer(() => { // store hooks diff --git a/web/components/project/card.tsx b/web/components/project/card.tsx index 976e7c896..cd8fd7ddd 100644 --- a/web/components/project/card.tsx +++ b/web/components/project/card.tsx @@ -3,21 +3,21 @@ import { observer } from "mobx-react-lite"; import Link from "next/link"; import { useRouter } from "next/router"; import { Check, LinkIcon, Lock, Pencil, Star } from "lucide-react"; +import type { IProject } from "@plane/types"; // ui import { Avatar, AvatarGroup, Button, Tooltip, TOAST_TYPE, setToast, setPromiseToast } from "@plane/ui"; // components -import { DeleteProjectModal, JoinProjectModal, ProjectLogo } from "components/project"; +import { DeleteProjectModal, JoinProjectModal, ProjectLogo } from "@/components/project"; // helpers -import { copyUrlToClipboard } from "helpers/string.helper"; -import { renderFormattedDate } from "helpers/date-time.helper"; +import { EUserProjectRoles } from "@/constants/project"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; +import { copyUrlToClipboard } from "@/helpers/string.helper"; // hooks -import { useProject } from "hooks/store"; +import { useProject } from "@/hooks/store"; // types -import type { IProject } from "@plane/types"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // hooks -import { usePlatformOS } from "hooks/use-platform-os"; // constants -import { EUserProjectRoles } from "constants/project"; type Props = { project: IProject; diff --git a/web/components/project/confirm-project-member-remove.tsx b/web/components/project/confirm-project-member-remove.tsx index 2c94c092d..10cd16f44 100644 --- a/web/components/project/confirm-project-member-remove.tsx +++ b/web/components/project/confirm-project-member-remove.tsx @@ -1,13 +1,13 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; -import { Dialog, Transition } from "@headlessui/react"; import { AlertTriangle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import { IUserLite } from "@plane/types"; // hooks import { Button } from "@plane/ui"; -import { useUser } from "hooks/store"; +import { useUser } from "@/hooks/store"; // ui // types -import { IUserLite } from "@plane/types"; type Props = { data: IUserLite; diff --git a/web/components/project/create-project-form.tsx b/web/components/project/create-project-form.tsx index 694bd8185..a9d76210d 100644 --- a/web/components/project/create-project-form.tsx +++ b/web/components/project/create-project-form.tsx @@ -2,6 +2,7 @@ import { useState, FC, ChangeEvent } from "react"; import { observer } from "mobx-react-lite"; import { useForm, Controller } from "react-hook-form"; import { Info, X } from "lucide-react"; +import { IProject } from "@plane/types"; // ui import { Button, @@ -15,21 +16,20 @@ import { Tooltip, } from "@plane/ui"; // components -import { ImagePickerPopover } from "components/core"; -import { MemberDropdown } from "components/dropdowns"; -import { ProjectLogo } from "./project-logo"; +import { ImagePickerPopover } from "@/components/core"; +import { MemberDropdown } from "@/components/dropdowns"; // constants -import { PROJECT_CREATED } from "constants/event-tracker"; -import { NETWORK_CHOICES, PROJECT_UNSPLASH_COVERS } from "constants/project"; +import { PROJECT_CREATED } from "@/constants/event-tracker"; +import { NETWORK_CHOICES, PROJECT_UNSPLASH_COVERS } from "@/constants/project"; // helpers -import { convertHexEmojiToDecimal, getRandomEmoji } from "helpers/emoji.helper"; -import { cn } from "helpers/common.helper"; -import { projectIdentifierSanitizer } from "helpers/project.helper"; +import { cn } from "@/helpers/common.helper"; +import { convertHexEmojiToDecimal, getRandomEmoji } from "@/helpers/emoji.helper"; +import { projectIdentifierSanitizer } from "@/helpers/project.helper"; // hooks -import { useEventTracker, useProject } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useEventTracker, useProject } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; // types -import { IProject } from "@plane/types"; +import { ProjectLogo } from "./project-logo"; type Props = { setToFavorite?: boolean; diff --git a/web/components/project/delete-project-modal.tsx b/web/components/project/delete-project-modal.tsx index ae3acfe4e..de2eb041d 100644 --- a/web/components/project/delete-project-modal.tsx +++ b/web/components/project/delete-project-modal.tsx @@ -1,15 +1,15 @@ import React from "react"; import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; -import { Dialog, Transition } from "@headlessui/react"; import { AlertTriangle } from "lucide-react"; +import { Dialog, Transition } from "@headlessui/react"; +import type { IProject } from "@plane/types"; // hooks import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; -import { useEventTracker, useProject } from "hooks/store"; +import { PROJECT_DELETED } from "@/constants/event-tracker"; +import { useEventTracker, useProject } from "@/hooks/store"; // ui // types -import type { IProject } from "@plane/types"; -import { PROJECT_DELETED } from "constants/event-tracker"; // constants type DeleteProjectModal = { diff --git a/web/components/project/dropdowns/filters/access.tsx b/web/components/project/dropdowns/filters/access.tsx index 63303872b..2936c85a5 100644 --- a/web/components/project/dropdowns/filters/access.tsx +++ b/web/components/project/dropdowns/filters/access.tsx @@ -1,9 +1,9 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { FilterHeader, FilterOption } from "components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { NETWORK_CHOICES } from "constants/project"; +import { NETWORK_CHOICES } from "@/constants/project"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/project/dropdowns/filters/created-at.tsx b/web/components/project/dropdowns/filters/created-at.tsx index 3867ab148..5a1b75c00 100644 --- a/web/components/project/dropdowns/filters/created-at.tsx +++ b/web/components/project/dropdowns/filters/created-at.tsx @@ -1,10 +1,10 @@ import React, { useState } from "react"; import { observer } from "mobx-react-lite"; // components -import { DateFilterModal } from "components/core"; -import { FilterHeader, FilterOption } from "components/issues"; +import { DateFilterModal } from "@/components/core"; +import { FilterHeader, FilterOption } from "@/components/issues"; // constants -import { DATE_BEFORE_FILTER_OPTIONS } from "constants/filters"; +import { DATE_BEFORE_FILTER_OPTIONS } from "@/constants/filters"; type Props = { appliedFilters: string[] | null; diff --git a/web/components/project/dropdowns/filters/lead.tsx b/web/components/project/dropdowns/filters/lead.tsx index 02c257b9b..2bfea97df 100644 --- a/web/components/project/dropdowns/filters/lead.tsx +++ b/web/components/project/dropdowns/filters/lead.tsx @@ -1,12 +1,12 @@ import { useMemo, useState } from "react"; -import { observer } from "mobx-react-lite"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react-lite"; // hooks -import { useMember } from "hooks/store"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// ui import { Avatar, Loader } from "@plane/ui"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useMember } from "@/hooks/store"; +// components +// ui type Props = { appliedFilters: string[] | null; @@ -26,8 +26,8 @@ export const FilterLead: React.FC = observer((props: Props) => { const appliedFiltersCount = appliedFilters?.length ?? 0; const sortedOptions = useMemo(() => { - const filteredOptions = (memberIds || []).filter((memberId) => - getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) + const filteredOptions = (memberIds || []).filter( + (memberId) => getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) ); return sortBy(filteredOptions, [ diff --git a/web/components/project/dropdowns/filters/members.tsx b/web/components/project/dropdowns/filters/members.tsx index 0d2737227..3db1f5d04 100644 --- a/web/components/project/dropdowns/filters/members.tsx +++ b/web/components/project/dropdowns/filters/members.tsx @@ -1,12 +1,12 @@ import { useMemo, useState } from "react"; -import { observer } from "mobx-react-lite"; import sortBy from "lodash/sortBy"; +import { observer } from "mobx-react-lite"; // hooks -import { useMember } from "hooks/store"; -// components -import { FilterHeader, FilterOption } from "components/issues"; -// ui import { Avatar, Loader } from "@plane/ui"; +import { FilterHeader, FilterOption } from "@/components/issues"; +import { useMember } from "@/hooks/store"; +// components +// ui type Props = { appliedFilters: string[] | null; @@ -26,8 +26,8 @@ export const FilterMembers: React.FC = observer((props: Props) => { const appliedFiltersCount = appliedFilters?.length ?? 0; const sortedOptions = useMemo(() => { - const filteredOptions = (memberIds || []).filter((memberId) => - getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) + const filteredOptions = (memberIds || []).filter( + (memberId) => getUserDetails(memberId)?.display_name.toLowerCase().includes(searchQuery.toLowerCase()) ); return sortBy(filteredOptions, [ diff --git a/web/components/project/dropdowns/filters/root.tsx b/web/components/project/dropdowns/filters/root.tsx index e79fc8418..a7e50cec1 100644 --- a/web/components/project/dropdowns/filters/root.tsx +++ b/web/components/project/dropdowns/filters/root.tsx @@ -1,11 +1,11 @@ import { useState } from "react"; import { observer } from "mobx-react-lite"; import { Search, X } from "lucide-react"; -// components -import { FilterAccess, FilterCreatedDate, FilterLead, FilterMembers } from "components/project"; -// types import { TProjectDisplayFilters, TProjectFilters } from "@plane/types"; -import { FilterOption } from "components/issues"; +// components +import { FilterOption } from "@/components/issues"; +import { FilterAccess, FilterCreatedDate, FilterLead, FilterMembers } from "@/components/project"; +// types type Props = { displayFilters: TProjectDisplayFilters; diff --git a/web/components/project/dropdowns/order-by.tsx b/web/components/project/dropdowns/order-by.tsx index ceb61997e..1d262f8ac 100644 --- a/web/components/project/dropdowns/order-by.tsx +++ b/web/components/project/dropdowns/order-by.tsx @@ -1,12 +1,12 @@ import { ArrowDownWideNarrow, Check, ChevronDown } from "lucide-react"; +import { TProjectOrderByOptions } from "@plane/types"; // ui import { CustomMenu, getButtonStyling } from "@plane/ui"; // helpers -import { cn } from "helpers/common.helper"; +import { PROJECT_ORDER_BY_OPTIONS } from "@/constants/project"; +import { cn } from "@/helpers/common.helper"; // types -import { TProjectOrderByOptions } from "@plane/types"; // constants -import { PROJECT_ORDER_BY_OPTIONS } from "constants/project"; type Props = { onChange: (value: TProjectOrderByOptions) => void; diff --git a/web/components/project/form.tsx b/web/components/project/form.tsx index 1ef7ee226..aaaaf03b3 100644 --- a/web/components/project/form.tsx +++ b/web/components/project/form.tsx @@ -2,6 +2,7 @@ import { FC, useEffect, useState } from "react"; import { Controller, useForm } from "react-hook-form"; // icons import { Lock } from "lucide-react"; +import { IProject, IWorkspace } from "@plane/types"; // ui import { Button, @@ -14,20 +15,19 @@ import { EmojiIconPickerTypes, } from "@plane/ui"; // components -import { ImagePickerPopover } from "components/core"; +import { ImagePickerPopover } from "@/components/core"; // constants -import { PROJECT_UPDATED } from "constants/event-tracker"; -import { NETWORK_CHOICES } from "constants/project"; +import { PROJECT_UPDATED } from "@/constants/event-tracker"; +import { NETWORK_CHOICES } from "@/constants/project"; // helpers -import { renderFormattedDate } from "helpers/date-time.helper"; +import { renderFormattedDate } from "@/helpers/date-time.helper"; // hooks -import { useEventTracker, useProject } from "hooks/store"; +import { convertHexEmojiToDecimal } from "@/helpers/emoji.helper"; +import { useEventTracker, useProject } from "@/hooks/store"; // services -import { ProjectService } from "services/project"; +import { ProjectService } from "@/services/project"; // types -import { IProject, IWorkspace } from "@plane/types"; import { ProjectLogo } from "./project-logo"; -import { convertHexEmojiToDecimal } from "helpers/emoji.helper"; export interface IProjectDetailsForm { project: IProject; workspaceSlug: string; diff --git a/web/components/project/integration-card.tsx b/web/components/project/integration-card.tsx index 17f490bc3..5fa606f25 100644 --- a/web/components/project/integration-card.tsx +++ b/web/components/project/integration-card.tsx @@ -2,18 +2,18 @@ import React from "react"; import Image from "next/image"; import { useRouter } from "next/router"; import useSWR, { mutate } from "swr"; +import { IWorkspaceIntegration } from "@plane/types"; // ui import { TOAST_TYPE, setToast } from "@plane/ui"; // components -import { SelectRepository, SelectChannel } from "components/integration"; +import { SelectRepository, SelectChannel } from "@/components/integration"; // constants -import { PROJECT_GITHUB_REPOSITORY } from "constants/fetch-keys"; +import { PROJECT_GITHUB_REPOSITORY } from "@/constants/fetch-keys"; // icons +import { ProjectService } from "@/services/project"; import GithubLogo from "public/logos/github-square.png"; import SlackLogo from "public/services/slack.png"; // types -import { IWorkspaceIntegration } from "@plane/types"; -import { ProjectService } from "services/project"; type Props = { integration: IWorkspaceIntegration; diff --git a/web/components/project/join-project-modal.tsx b/web/components/project/join-project-modal.tsx index 384333581..a5717b80a 100644 --- a/web/components/project/join-project-modal.tsx +++ b/web/components/project/join-project-modal.tsx @@ -1,12 +1,12 @@ import { useState, Fragment } from "react"; import { useRouter } from "next/router"; import { Transition, Dialog } from "@headlessui/react"; +import type { IProject } from "@plane/types"; // hooks import { Button } from "@plane/ui"; -import { useProject, useUser } from "hooks/store"; +import { useProject, useUser } from "@/hooks/store"; // ui // types -import type { IProject } from "@plane/types"; // type type TJoinProjectModalProps = { diff --git a/web/components/project/leave-project-modal.tsx b/web/components/project/leave-project-modal.tsx index 6982d6316..2045492c9 100644 --- a/web/components/project/leave-project-modal.tsx +++ b/web/components/project/leave-project-modal.tsx @@ -3,17 +3,17 @@ import { observer } from "mobx-react-lite"; import { useRouter } from "next/router"; import { Controller, useForm } from "react-hook-form"; // headless ui +import { AlertTriangleIcon } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; // icons -import { AlertTriangleIcon } from "lucide-react"; +import { IProject } from "@plane/types"; // ui import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // constants -import { PROJECT_MEMBER_LEAVE } from "constants/event-tracker"; +import { PROJECT_MEMBER_LEAVE } from "@/constants/event-tracker"; // hooks -import { useEventTracker, useUser } from "hooks/store"; +import { useEventTracker, useUser } from "@/hooks/store"; // types -import { IProject } from "@plane/types"; type FormData = { projectName: string; diff --git a/web/components/project/member-list-item.tsx b/web/components/project/member-list-item.tsx index 10d27efbf..c97d1da2f 100644 --- a/web/components/project/member-list-item.tsx +++ b/web/components/project/member-list-item.tsx @@ -7,14 +7,14 @@ import { ChevronDown, Dot, XCircle } from "lucide-react"; // ui import { CustomSelect, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; // components -import { ConfirmProjectMemberRemove } from "components/project"; +import { ConfirmProjectMemberRemove } from "@/components/project"; // constants -import { PROJECT_MEMBER_LEAVE } from "constants/event-tracker"; -import { EUserProjectRoles } from "constants/project"; -import { ROLE } from "constants/workspace"; +import { PROJECT_MEMBER_LEAVE } from "@/constants/event-tracker"; +import { EUserProjectRoles } from "@/constants/project"; +import { ROLE } from "@/constants/workspace"; // hooks -import { useEventTracker, useMember, useProject, useUser } from "hooks/store"; -import { usePlatformOS } from "hooks/use-platform-os"; +import { useEventTracker, useMember, useProject, useUser } from "@/hooks/store"; +import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { userId: string; @@ -172,7 +172,10 @@ export const ProjectMemberListItem: React.FC = observer((props) => { })} {(isAdmin || userDetails.member?.id === currentUser?.id) && ( - +