diff --git a/packages/types/src/project/projects.d.ts b/packages/types/src/project/projects.d.ts index f310d9c66c..86384b401c 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 2d7e94d959..ceaa53d025 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 92bab8d045..ca17691867 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 c8df607506..57d39bcfad 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 322011ae3c..3b9b3f71b6 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 644f732f3b..4ebb69b75e 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 55205e7075..ffcdfe7ba6 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 4f8ed42947..ca702320c4 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 28da6fb7d6..b546d9d3f9 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 2199717598..082a238d92 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 f909f16c5d..67863e010f 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 c36842ce7a..4f7859d765 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 af1e5d68f6..ddea6bf007 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 0b5ad21d9c..4b2e41c78d 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 4c61fa1513..f0dcbba474 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 de0b18d51f..f9f5aeb39a 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 3d5887b286..9b69e96167 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 2920100a87..ecf2295621 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 6b5e6ad9d6..9bfa3808b0 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 4afdbb9904..bc444445d0 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 1a7eb9105d..1284f79492 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 a3c623306b..ac15dc95c8 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 381c340da3..a7f3fc6f6f 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 039d731b5d..4a980aba42 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 82b7ac26f7..cc0a88f5df 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 441935def3..65d79eaacb 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 c971dbfe78..a036cfedff 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 79264ac7cf..bbe72e4046 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 a7afaa6731..6adc7c261b 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 809cd6f5ac..d98dee7ddb 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 c8dd2132ba..e5cb126960 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 8a5a643f47..98c35eea6e 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 b45dfffe30..489cf584bc 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 b449121903..71f0c5f1bb 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 a3781386d5..734abef55f 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 feb11ed13c..409c7b2865 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 906d3543d9..f2d624974b 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 cd22654a2a..1d45625c78 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 3dba8b29ca..6df72e2a87 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 c3a26f83e0..3db64bbd1d 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 3914c41fb0..2192746674 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 e07620c05e..32b850b128 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 72a302b909..0a3824f5d0 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 cbb27679bc..ad9f65aebb 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 d84103388d..dfc1be430f 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 928d9115e0..016074ff97 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 0c327ca590..1018c22f7c 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 79b45f1048..eaa5bb8d56 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 40ad145d05..80a2fde83e 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 602277f3ef..b76da13f43 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 0ec82a8efe..8a8636edc1 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 75399619b5..788627094b 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 ae18d4883a..9b999a618e 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 5ce24c8690..e622f3e781 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 e3a0baaaaa..914272a8bf 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 a382b4fd21..86608f02c9 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 0659121b7c..81bf687549 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 306e7985ad..7517c7dfc2 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 6de3c104c6..13f598f88a 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 3ae079982a..c5946277f8 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 bcefd203b3..897c8e3a2a 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 e12f2823ae..18854c1d52 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 e50c01c18e..b0ee7d0cd1 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 da1db272c9..9d80d53a37 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 85da11290f..16e805b6fb 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 e680c257ca..b1c2bd97cf 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 423eec2de7..95acaef294 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 af79935cf2..a6a1a9cf6f 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 7bf0eccfa0..0fbf0c71b7 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 ecebf92b7d..52793ec75f 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 5feb1b00b9..b6f2e3be22 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 0d6eca951b..2e173d2828 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 c8232afa9b..e49378d93c 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 02dd3cdd00..8e4876f667 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 346206e94e..766cb979d8 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 2cd2e3bc91..3859d94c66 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 f2408e290d..fffa42e031 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 76b4d06cb6..b12cf18dbf 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 e97f655f72..0e9b90106e 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 3047edb7c1..9d3e164bed 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 eb05b2af8d..57d39bcfad 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 34129cebec..41508ad67a 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 39123328eb..1dd970fd6a 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 881c75f833..76051e94dc 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 d652e51f1f..31bafce26b 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 5555d00164..26ec05aa5b 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 f42398850e..8d7c9f8919 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 835e018dc1..fad37efaf1 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 fbfa04fcbf..2a9144469a 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 22dba892fa..bc4fb1d86d 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 93f7742485..c269c389ac 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 7fab81fbe1..9cafabe812 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 455112e9ed..4fab3abcdd 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 82f9685b15..bc6e1ee4c8 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 1159689c6c..9f075a8bb5 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 b90e9994fc..9101f1cf20 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 0e70fd8984..742424c792 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 e13b9cdd1d..f57edbefdd 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 7ce2f31ef7..dc241d1ee3 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 61c3acb09a..325683904b 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 de94eac622..07bbb0e371 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 9daecaaa0e..a0c21b1b67 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 92e4fd2e53..a33feb9679 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 31812cb008..7b665e5d81 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 26f97e8f9a..0dad084af0 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 a48ea3c03d..26bb039b0d 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 74b0f22541..efb8293fbc 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 a02ab9f118..096b90d677 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 197b4d8093..a15c17f4aa 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 712b17bd33..e1c3dbae76 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 ae7447b0fd..e6473b8745 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 15ba0c772b..3c5e3f48e7 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 ea1a51937d..527761e96c 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 86fd284903..cbd0e155c8 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 9418897963..4c511de4af 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 2e782de0ce..32305ba5be 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 2bea1da0c1..3849fea742 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 d21caf36ca..d2bbfd7a1f 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 3dd381d535..5ac7ec681c 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 4acec41047..f9dc9e7b1f 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 d35aad657f..0c5d4740a5 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 5f70e36dd3..e55c5b9f91 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 e3ad89e90a..fe4b711fdb 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 000f0bbf67..d2a01244ce 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 01d07f64a8..e0768b1df4 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 34317846a8..10c7675d36 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 98059af395..04bcc98995 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 18b11e129c..4797bb45f6 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 d07866833e..6d2724859a 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 d208facc95..32c6a0de5f 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 d1589cb922..297d1ba364 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 5398d889df..489794295b 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 fe4a9fa20d..b635881b56 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 5a2b2cd697..56c118a51a 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 60c4fcc046..ddbf45dc81 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 0d02614ae4..8d162f6ab9 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 2d6a38c713..653c2eef09 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 2c8b87b05c..3c327eb8b3 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 97a9c98919..e1fd67057d 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 6fdffb7902..f982fc5082 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 20b8b815e3..06804ed822 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 7ec59a0738..b60152d080 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 1b7b7aaed0..35b5114644 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 3db409bb03..f8c247ce7b 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 8fa8dabda6..8b03c311ba 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 05b98176ca..59dcc574e2 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 b3f81b6eec..ec7dbcb07e 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 c1183c9c42..3348272d69 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 00dcc03bb8..578d39a60f 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 70324b4b7a..7b00404778 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 7f41b82254..cf43595a0c 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 9c1a8363bf..8fbadf3712 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 f0e9f59b4a..585ba7769e 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 7b33f6f128..9556eb1aa9 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 b0ff4ba738..a1c5f3a131 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 880cf81463..dcc963946a 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 5fd5760810..21b508e288 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 03ac06eae6..4f933a462c 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 b9e94a2d2c..cd3fa874c1 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 428e6930ba..6eb1c7b7d0 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 d11c694d5c..83acd15217 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 9ccd110775..7e7a97e7d3 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 af2b02726c..2e48a95b4d 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 60fa9bb307..c2d8b2388f 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 84ca45692e..fa6f94c506 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 39d2ae8275..270beadfd4 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 1eb28db746..83349948c9 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 c1558c5b36..8426fe3134 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 4218c0d1c7..3e83ca755d 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 e9fde3428a..7796f3efd1 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 9fbc96df33..8c168cbaa0 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 b15e89ab21..4b88d8d7bf 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 48fb359bcf..590cb794f6 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 737d36f3ff..c687c965ed 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 447bd048c2..ddb45b5e52 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 0d1cc59211..5b9eb53cdc 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 0af92da410..6990711873 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 d97fcad039..768b8a5dc8 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 3c47eb2868..2b55ada35a 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 79e53a5c80..b1f07c0b1d 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 17953248a9..27b9720440 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 e8b09d2f59..acc081b4d5 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 6c439331dd..6d84f73f06 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 cb1373a379..6e81da3c7b 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 c07b204b1d..004c66fcac 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 27488d2387..904daa1d9b 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 1741521ae9..008cdcbdeb 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 f1c930ccba..eebd28a9f4 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 f13427012c..e142b95ec5 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 fbf20925ba..b5e1aa253f 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 921e67e4ee..d7a5a2178e 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 ab96ef90f6..0b13f8f11c 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 32236e233c..8397302562 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 cd4115ac7e..2d4128dfdc 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 2b29540183..e7ab1be8ea 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 feef7ceca6..a9cd5862de 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 0cfad7dc91..c9a25cfd39 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 2c59342fca..bc812de354 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 47efb4d215..72181c9b7a 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 c429f35999..c382292673 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 257f73851a..d2b7df8ed0 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 becf322857..dcdeb3738e 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 1f093986cd..dc3afe20fd 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 bfea5bf406..f8b4035cd2 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 6e5c61355c..bd69d1f6e4 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 1e796eea2e..3367f8b8c1 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 f544e0da6c..7f17e0f2c5 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 22e561ac82..d52af922c1 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 27be7dd9a0..6195bcdadc 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 8f6a664688..0650978bea 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 b753c2ae10..49dd5b2c50 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 16f8d46401..ea712d6340 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 03d925b62a..41ecf77f49 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 6e28d04665..336e17f239 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 3305c9846e..4f38c3c441 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 b4dcd6a62b..e2722b22ae 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 8c00fde1b8..99ea6c94e9 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 5c9872cf4c..098ee76ed2 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 f0ad084e9a..e8188f4d7e 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 84b2edac41..1f4e738112 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 bd1a7b6dd2..f1eec7ca82 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 b5787eb615..b3a095778a 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 b8adc4b3a5..fea43e1529 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 981fc9236f..51f7898824 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 659126ac33..68b5d5c059 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 752645f668..1b3f035ed3 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 334ab7fcf5..5525754531 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 54590c3725..7e3390ba81 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 23e025e906..916b38adcb 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 4df5d99318..10c1c0d98d 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 6e780c4799..e9543e3672 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 e47b2304ef..dd33419d7f 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 92fc32664a..ae670941d8 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 e82e40f5dd..7528333f0c 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 41647644f7..525d217169 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 a4bcbd5ec1..fd9478ffe9 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 92a677b192..d46acfe29a 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 0b877ba339..287a668066 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 f2d54a9f8a..8bb6353243 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 9dfe568917..d0f63f6049 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 a9dc3a8f4e..4c66aabc79 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 375a04a131..22cd9adec0 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 cf44e389e0..3fe24804b3 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 a6147cad3e..80ca691873 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 4404fc0f3f..4130dffcef 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 94fee7eb2f..30b626773c 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 e9f37bf6e2..792842fe2d 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 5c419f05b9..e0402cda49 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 1b0f8d9da4..20258cd267 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 b3dd820020..621f23eb26 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 0b89cb57db..ab79b3b1f1 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 8f5e640708..7ddf923802 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 6c24b08413..a7952ad16f 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 23f3f2ae11..b3dd77826e 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 831965fad1..a212220ecb 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 c592584639..deab597967 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 abc4dff9f0..971a9e26ab 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 77c6f8dd00..2f502bce59 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 8e1c94e6a3..a1e49c7c6c 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 d17723bf3b..9afa6ce662 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 3dc0d9805f..f01420b246 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 e02d6af598..99e605ee60 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 0a012b3ca2..673d65ba49 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 88fbd781ec..617a73dbfd 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 a8e87e55c9..a31e218e17 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 ae9e5f1a94..2e788de0f9 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 7cc19bec3f..3898768127 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 5d921dcd1f..4c8a21592d 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 291b054497..701feff6ba 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 35edd838bb..d8ccb68b62 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 549af7229b..c32bcf8f4b 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 03ae3729e3..3fff8e2052 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 d926e7b373..84a0a728a6 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 b34dd4ee72..2df720dd8b 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 4186377310..4569cf5777 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 f408df28a3..fc9dc20eb6 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 faaaa662ae..792ade8608 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 f438db82ef..9d77f6baf0 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 97a777a481..cedddba25a 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 250feb511c..680cb41ca5 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 c00a85a036..83056f7698 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 6fedc88313..b3c5471b72 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 20fb08aff5..694eecb927 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 27d4f43007..b25b240aa6 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 2365e47a04..5f6603fe74 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 7be2089f13..af8185b0e2 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 956fca0411..6c15ac5a68 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 2d98b45d66..5659d01293 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 a2e71faf29..476b9b189e 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 e71f61cbcc..6f4693e37d 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 a5a268af46..484ebe2c9f 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 e6719895fe..53d6dc8f5a 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 24e19abb14..1a4afbb0cb 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 ad06544387..ba4efb5f97 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 76c46b6903..1ab75c64e4 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 74f2f9c668..d5866e95a0 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 0ff0654b81..f4ec4bb2f1 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 2a323e72e1..9a13b27b59 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 84d422d121..4d11966ee9 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 09588396da..85d595181e 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 c1ac0f3f8b..ec4b2de214 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 f5d1221aec..703c4b2506 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 a8decd0c70..b69b6093b2 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 db01e4c72d..b95ec19860 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 5d83a92c97..c1d3f96c86 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 027c274ec3..426788cbdd 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 0a7d55fa84..a9214839bd 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 04decee8a5..8ea747ffc7 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 c1be0f3559..b96ab7b188 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 27dc572a90..46b697691c 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 aed1f7922a..689761c87c 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 85f0ea0e97..bd69c3cac1 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 715e9f8404..c915ebce94 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 b6c08c14be..57dccd4fc6 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 b13e124f33..5af8a418e0 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 4f1f5c0567..75bfeccc75 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 8744857c1e..77e854768d 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 f2aa78ad9a..2bea576c41 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 144198085d..bab406d1fc 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 b7cc0b7b0d..6472eea270 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 af32660679..c7842a8db4 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 d4642fedd2..5b7e3da530 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 ce5aa6589e..459283b884 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 d9b4475c52..9c43a714e4 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 ec3c777fc6..73285b8a88 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 0eeb7ecacc..0e8470da41 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 30f445ec0a..7014524539 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 a8c309bd58..9179bfa380 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 389f9f8751..e20cdcb60c 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 c622079e22..3055e779ca 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 2772dc0c77..0380542c23 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 1120c3a5c6..08538e481d 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 276607aecb..3200ad93f0 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 b65560953d..50d168dcaf 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 91cda67d6d..d88e3bf957 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 60cb066640..b121ddc786 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 64d0d11826..9fce5948c5 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 cbcf4741bb..c6eef2a9e3 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 b80a413274..56e93fc0f1 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 e26befe1ba..2925a593d2 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 6fcd35ac40..27b463813e 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 655fd91051..da517e975b 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 d609d1dddf..a0e97fbe3f 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 25aa810cf4..53e8d87071 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 15b3e39f42..da6be8611c 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 ee31de9db4..43fffd3fd0 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 8d2b56d2ad..a5f4787463 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 1aa01e9a13..70efb6c46c 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 12b7f767b6..8239458e0e 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 6591128ad8..8bb0a2ec1f 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 953c8384f1..94d9731ef4 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 bb3bc3c6d7..c07bd4a7b1 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 1f2f848692..dacc3439be 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 226d447f20..7c72cca2e5 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 6465a00bf8..711639470d 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 3b319fdadd..4bac9ff4fe 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 128c84ba59..44f606b213 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 b112b8c3c7..b1b1de32a4 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 ad0cffe334..ae92f668c0 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 ff1b654e50..fcd7110dd4 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 968ae40974..765680827e 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 4d2fed0e96..1b26adedd0 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 36c895de30..4c7ed1aee1 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 8def7cc85c..0f0b27c0cf 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 c23fea100b..f521afb154 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 b24c4d5d6a..e7177bf027 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 d8e3516cd5..c1d7c4b26b 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 58929e48d0..e77e4e7ae8 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 fd98011fa5..fc4bc6ea99 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 76f36e8158..4f139727f1 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 24a197c763..5abbe0f62b 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 94f2b30d11..279b57c946 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 799233d013..ba9453c296 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 ff5034c97d..e12db6962f 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 e34af84348..1105f5306e 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 aad394d8aa..23652b4be8 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 84e81b6e80..16e7360278 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 3694319009..3687549dac 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 d8c5320d03..bd176f0d3d 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 a6f2042d2f..9227a3bb61 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 d907cf1682..a2dee16dc5 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 7fd7b624f9..4213556367 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 b0c496a7bd..81268f0a5d 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 96b79a5968..275ca39cd4 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 6586159fa0..af4a9692b9 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 b4a6baa530..4de28bc33c 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 fc216afadd..ff10d53a18 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 02d1b2f04d..d270d6a1cc 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 d00848acd4..54cb0a439d 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 6de3c940d5..604adf5db0 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 10dfa8c7c4..f05452f218 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 9cdcf953b8..57fbc9add7 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 afcd0ba1b5..aa69868ca2 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 98dcb7b95d..2d49719a3b 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 c51fcf7ab7..e7edaebc81 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 765955bf91..071f3c03ae 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 b3a65a399a..4e3fe6fb00 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 257aa19773..7e6e44ebf2 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 7097b13371..c93472ff96 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 80c16478ad..b1b0704347 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 6b6cd2b4da..f4b3d0e191 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 839e25e3d7..fc44e3044a 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 b97001b008..b3924cd343 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 3c47eb2868..2b55ada35a 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 ca7fe270d2..3ad5b36e32 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 2c2cca53b8..56340e6db4 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 83a5263518..e46e52a41f 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 4ee92cc23a..be4e5e9a94 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 2b8df8edf4..42d3633ae1 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 11f52db808..935dc5d93f 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 1676b1f340..aff992b66e 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 923845e7b1..c0ece0f9f2 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 e14f1339ac..23ebdbc2da 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 d8a2cd1a1c..1c0dba1128 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 80d5e047b0..45c0ff3eb3 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 b2d3ac9d46..d0fb69ab3e 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 e90823c5bf..21e47c1cd6 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 19a0a4173d..dda6b915da 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 7a58a49334..a906a329f1 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 06f798d0f5..63925c21cf 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 a14dd5ddcf..44df59d9ac 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 b0859a70d2..475f638776 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 24f3b95326..b3e24dc236 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 71a0e661c4..e5275f96aa 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 19ac8a1d98..be61dbbda7 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 619b78cb4f..6ff958a728 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 eaf96a9946..14eaa0c190 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 c36fcc960e..2d0d17625c 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 12071ffbdc..fb385aeffa 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 c1a07c3172..ff52def5f7 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 644c254d6f..e83103e89c 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 ae198f1ae4..ac9427101e 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 bb7a9ee831..6e3dba43fe 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 2296e7b680..0a3bf13d4d 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 4009df6d28..41cc755a0e 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 fa1a393c42..c53719f7f7 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 7bae7ecff1..a07154bfc0 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 73f8e3d3b7..a1ab6becb5 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 26afdf25ba..863921e7de 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 6b7704194c..4f303ffd46 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 3c6a8894a8..541c418922 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 f24683d95c..d353cd6cca 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 fbbd26ffb2..0eb8d06aff 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 260dd54bd6..d11f74b281 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 3da83ca07f..ad432639e8 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 5889b52c57..5530e6a017 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 e1ff30f9b7..86dbe760b0 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 9cf394a1b6..ec5059d6a6 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 38b38926f6..d7ff21b84f 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 00d69cba34..a8d920a746 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 a198b61043..0fcde4d591 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 bcba7152e4..ef7b02b297 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 ae8ca400ac..a6765e5bf4 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 ce0a9943e6..69e3dfb111 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 1a1602ad1b..b8c386b466 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 268a2c60c8..e4dfa6efb4 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 a57d73b2c7..37f6e46978 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 d15e65865d..0128073414 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 8bf2cb2115..67cf6cbadb 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 653cc28f29..2d7623ebe1 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 c4b8ea0ef7..9fefd47594 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 c17a433b84..5f487b7722 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 8d373efb4b..ae7e3c33c4 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 658e9c79be..a2a82c1ffb 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 202cbb8d5f..b80de2015d 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 8143be2146..298da4ff93 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 6c59c22af0..f3910a87c3 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 1e6ae197af..439abf5f39 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 2d3e7b670f..2c20afd2c7 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 67c72d2a83..0dd298c1ec 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 714134d0c0..8058b70236 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 b0ee46d4e7..5746c397ac 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 1a029db121..2015857284 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 85e294641b..6c0264da66 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 f84989192f..b299d79669 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 825c2b31c3..161dd6514f 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 b86d857233..fc36fdd867 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 6b886ffa92..68fac5b454 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 b8b4fd08a2..c00c0d9196 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 a95919cdce..b577221b25 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 dc9d354a6d..0ccbca9bd9 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 754d87c2fb..3bfba9b072 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 ea0e0f1c2c..dc03647c65 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 896d5a4ddc..17feae2fd9 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 ed243d3127..4459d462ca 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 ffe979a56a..c98a942f6e 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 71bf1fae08..c7bf176823 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 e203652643..9d11f4e683 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 b4cf05fc83..b0e08dfd1d 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 f13adb6a4d..277404dfa8 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 0446bfa536..0293380cef 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 e63850c201..35d291ee1a 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 cdf6427114..5961aaf097 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 0570f53f19..53862626dc 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 804dadd0fe..cc3aab90e2 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 2abcec2ff1..b3dd7808e5 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 f8e9aeb5a5..00ffa9100c 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 37cd8f3756..a7f7b23d7a 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 4109f3feb7..493b8bd51e 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 c59bbb0d78..3fe2022d47 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 781a91a3de..c3842e6b2c 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 cb1d66461a..1c08a2b9ef 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 f737b57e77..33f346b6dc 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 c3655286e8..9c02fbcc47 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 bb412b795b..11a82e623b 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 ee09887416..34dda42355 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 a29a334b60..c2ea3930a4 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 d5c269136f..773ceac37f 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 2a797d0b63..d154060593 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 6519e581e4..0a3efc9df6 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 30e424064d..d8bbee7191 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 1e83167ae6..9193fdd0b3 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 42494bdbdf..ef2006195f 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 88f18ee0c9..9c8ecb4f85 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 2969ea7156..3011df0847 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 ed5426cdeb..7f3d3b45ba 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 f4c5e536b5..57b9d97a75 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 ffd4f8a2ec..b8dc8a9d46 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 0d27372274..3db1f5d046 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 30841a43a2..346a03c6f5 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 3c47eb2868..2b55ada35a 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 f73db2554f..8da11cc26c 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 d563dbe925..cbb45eb7a1 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 a611d1ead7..dc309a97ac 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 e51aeecfff..2daa2da3b3 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 60af5d048a..14353e6ed9 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 eaf7016ca4..f0db46033d 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 f83372eaa6..7242073b1c 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 90919a9984..94c089328a 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 c59cbbc296..b12b10fe83 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 26d7fea12f..c317b78d1b 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 ead9eb6c5e..8e632dac8a 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 76d35b93e6..f455a825d5 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 2998843e1e..a4cb7a6524 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 8efdcb472f..7db3167f56 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 4a203ee626..1c4b099db9 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 885fad7455..c289ebc1e7 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 0e6ef3af0d..e3716edbb6 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 69a1086f92..e831c6d200 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 4dc595c0b0..550ce316b1 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 f4991448e2..ec2665a1a3 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 2e94bb67ea..f0980a3d8d 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 d0540a5a4b..601039efe7 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 e59db31c7e..936da676ad 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 42ec102cb3..eba9f2d33a 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 c84911220c..e0ea254a6c 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 4c44f8c62a..e1ff355d47 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 820f08da65..33ac6a8eef 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 f9bb2182dd..02663df264 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 7929a5e371..28e909bf34 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 f910625ca8..f1561c42e5 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 c3e22e52e9..3f077d0c6d 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 362dae172c..cedd6382d1 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 a48489e0a1..c1e02504eb 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 e7cb217756..3af99ddf6d 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 f7bcb6059b..4db6f29a89 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 4d2ad5019b..227dd7408e 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 d9005b4d8e..74fa42d71e 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 6b363b2f22..165a9a6198 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 316c6bf44b..db99c69421 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 45de8db0db..7066fff251 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 2626db13cd..600727e062 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 e77128e9f1..2926f0637e 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 491ebf45fb..d930a4e308 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 6311c382c5..b792671a08 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 aa5a03deec..25a69fe1c6 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 ecc0028db9..6aace8e354 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 c8af1ccf8f..9dfe433ef2 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 12e430409c..f43aed81c8 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 8606f44b1e..c18cf27fae 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 48d612dffc..597a885d88 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 25de06c847..9c14894251 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 62873ee380..f259b5f9c5 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 c7e7a94a0b..f2fdd3582a 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 fd158e2d5a..6d352beefe 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 491c00f3ac..fe2c004bae 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 f94c1d91f9..270dff6581 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 ef75abb294..ce246ac4d7 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 a1b7404101..cf2fe78455 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 bdb6ec0536..8b881c8e4e 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 aab0cf98a8..d3930a52c9 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 88f18ee0c9..9c8ecb4f85 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 6e1cbf6a7b..66a2513c4e 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 3f23ed9a26..19830c7c09 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 976e7c896d..cd8fd7ddd9 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 2c94c092d4..10cd16f44c 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 694bd8185c..a9d76210d0 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 ae3acfe4e3..de2eb041d2 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 63303872ba..2936c85a5e 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 3867ab1487..5a1b75c00b 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 02c257b9be..2bfea97dfe 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 0d27372274..3db1f5d046 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 e79fc84181..a7e50cec14 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 ceb61997e0..1d262f8ac0 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 1ef7ee226a..aaaaf03b3b 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 17f490bc39..5fa606f254 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 384333581b..a5717b80a8 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 6982d6316f..2045492c94 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 10d27efbfc..c97d1da2f0 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) && ( - +