fix: eslint fixes and file formatting

This commit is contained in:
sriram veeraghanta 2024-03-19 20:08:35 +05:30
parent 473dfc7a5b
commit 53ddef1cd5
954 changed files with 3921 additions and 3809 deletions

View File

@ -1,4 +1,4 @@
import { EUserProjectRoles } from "constants/project"; import { EUserProjectRoles } from "@/constants/project";
import type { import type {
IProjectViewProps, IProjectViewProps,
IUser, IUser,

View File

@ -1,4 +1,4 @@
import { EUserWorkspaceRoles } from "constants/workspace"; import { EUserWorkspaceRoles } from "@/constants/workspace";
import type { import type {
IProjectMember, IProjectMember,
IUser, IUser,

View File

@ -49,7 +49,9 @@ export const Tooltip: React.FC<ITooltipProps> = ({
hoverCloseDelay={closeDelay} hoverCloseDelay={closeDelay}
content={ content={
<div <div
className={`relative ${isMobile ? "hidden" : "block"} z-50 max-w-xs gap-1 overflow-hidden break-words rounded-md bg-custom-background-100 p-2 text-xs text-custom-text-200 shadow-md ${className}`} className={`relative ${
isMobile ? "hidden" : "block"
} z-50 max-w-xs gap-1 overflow-hidden break-words rounded-md bg-custom-background-100 p-2 text-xs text-custom-text-200 shadow-md ${className}`}
> >
{tooltipHeading && <h5 className="font-medium text-custom-text-100">{tooltipHeading}</h5>} {tooltipHeading && <h5 className="font-medium text-custom-text-100">{tooltipHeading}</h5>}
{tooltipContent} {tooltipContent}

View File

@ -1,4 +1,52 @@
module.exports = { module.exports = {
root: true, root: true,
extends: ["custom"], 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,
},
},
],
},
}; };

View File

@ -1,6 +1,6 @@
import { useEffect, useState, FC } from "react"; import { useEffect, useState, FC } from "react";
import Link from "next/link";
import Image from "next/image"; import Image from "next/image";
import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
// next-themes // next-themes
import { useTheme } from "next-themes"; import { useTheme } from "next-themes";

View File

@ -1,19 +1,19 @@
import { useEffect, Fragment } from "react"; import { useEffect, Fragment } from "react";
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useRouter } from "next/router";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { Listbox, Transition } from "@headlessui/react";
import { Check, ChevronDown } from "lucide-react"; import { Check, ChevronDown } from "lucide-react";
import { Listbox, Transition } from "@headlessui/react";
// mobx store // 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 // constants
import { USER_ROLES } from "constants/workspace";
// hooks // hooks
import { UserService } from "@/services/user.service";
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// services // services
import { UserService } from "services/user.service";
// ui // ui
import { Button, Input } from "@plane/ui";
const defaultValues = { const defaultValues = {
first_name: "", first_name: "",

View File

@ -2,15 +2,15 @@ import React, { useEffect } from "react";
import Link from "next/link"; import Link from "next/link";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
// services // 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 // hooks
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// ui // ui
import { Button, Input } from "@plane/ui";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper";
// constants // constants
import { ESignInSteps } from "components/accounts";
type Props = { type Props = {
email: string; email: string;

View File

@ -2,17 +2,17 @@ import React, { useEffect } from "react";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { XCircle } from "lucide-react"; import { XCircle } from "lucide-react";
// services // 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 // hooks
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// ui // ui
import { Button, Input } from "@plane/ui";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper";
// types // types
import { IEmailCheckData } from "types/auth"; import { IEmailCheckData } from "types/auth";
// constants // constants
import { ESignInSteps } from "components/accounts";
type Props = { type Props = {
handleStepChange: (step: ESignInSteps) => void; handleStepChange: (step: ESignInSteps) => void;

View File

@ -1,13 +1,13 @@
import { observer } from "mobx-react-lite";
import useSWR from "swr"; import useSWR from "swr";
import { observer } from "mobx-react-lite";
// services // services
import { AuthService } from "services/authentication.service"; import { GitHubSignInButton, GoogleSignInButton } from "@/components/accounts";
import { AppConfigService } from "services/app-config.service"; import { AppConfigService } from "@/services/app-config.service";
import { AuthService } from "@/services/authentication.service";
// hooks // hooks
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// components // components
import { GitHubSignInButton, GoogleSignInButton } from "components/accounts";
type Props = { type Props = {
handleSignInRedirection: () => Promise<void>; handleSignInRedirection: () => Promise<void>;

View File

@ -4,9 +4,9 @@ import { Controller, useForm } from "react-hook-form";
// ui // ui
import { Button, Input } from "@plane/ui"; import { Button, Input } from "@plane/ui";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper"; import { ESignInSteps } from "@/components/accounts";
import { checkEmailValidity } from "@/helpers/string.helper";
// constants // constants
import { ESignInSteps } from "components/accounts";
type Props = { type Props = {
email: string; email: string;

View File

@ -3,17 +3,17 @@ import Link from "next/link";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { XCircle } from "lucide-react"; import { XCircle } from "lucide-react";
// services // 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 // hooks
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// ui // ui
import { Button, Input } from "@plane/ui";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper";
// types // types
import { IPasswordSignInData } from "types/auth"; import { IPasswordSignInData } from "types/auth";
// constants // constants
import { ESignInSteps } from "components/accounts";
type Props = { type Props = {
email: string; email: string;

View File

@ -2,11 +2,6 @@ import React, { useState } from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import useSWR from "swr"; import useSWR from "swr";
// hooks // hooks
import useSignInRedirection from "hooks/use-sign-in-redirection";
// services
import { AppConfigService } from "services/app-config.service";
// components
import { LatestFeatureBlock } from "components/common";
import { import {
EmailForm, EmailForm,
UniqueCodeForm, UniqueCodeForm,
@ -16,7 +11,12 @@ import {
OptionalSetPasswordForm, OptionalSetPasswordForm,
CreatePasswordForm, CreatePasswordForm,
SelfHostedSignInForm, 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 { export enum ESignInSteps {
EMAIL = "EMAIL", EMAIL = "EMAIL",

View File

@ -3,13 +3,13 @@ import Link from "next/link";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { XCircle } from "lucide-react"; import { XCircle } from "lucide-react";
// services // 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 // hooks
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// ui // ui
import { Button, Input } from "@plane/ui";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper";
// types // types
import { IPasswordSignInData } from "types/auth"; import { IPasswordSignInData } from "types/auth";

View File

@ -1,13 +1,13 @@
import React from "react"; import React from "react";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
// services // 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 // hooks
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// ui // ui
import { Button, Input } from "@plane/ui";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper";
// types // types
import { IEmailCheckData } from "types/auth"; import { IEmailCheckData } from "types/auth";

View File

@ -3,19 +3,19 @@ import Link from "next/link";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { CornerDownLeft, XCircle } from "lucide-react"; import { CornerDownLeft, XCircle } from "lucide-react";
// services // 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 { 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 // helpers
import { checkEmailValidity } from "helpers/string.helper";
// types // types
import { IEmailCheckData, IMagicSignInData } from "types/auth"; import { IEmailCheckData, IMagicSignInData } from "types/auth";
// constants // constants
import { ESignInSteps } from "components/accounts";
type Props = { type Props = {
email: string; email: string;

View File

@ -1,10 +1,10 @@
import Image from "next/image"; import Image from "next/image";
// mobx // mobx
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
// assets // assets
import UserLoggedInImage from "public/user-logged-in.svg";
import PlaneLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg"; import PlaneLogo from "public/plane-logos/black-horizontal-with-blue-logo.svg";
import UserLoggedInImage from "public/user-logged-in.svg";
export const UserLoggedIn = () => { export const UserLoggedIn = () => {
const { user: userStore } = useMobxStore(); const { user: userStore } = useMobxStore();

View File

@ -1,7 +1,7 @@
// helpers // helpers
import { cn } from "helpers/common.helper";
// types
import { TProjectLogoProps } from "@plane/types"; import { TProjectLogoProps } from "@plane/types";
import { cn } from "@/helpers/common.helper";
// types
type Props = { type Props = {
className?: string; className?: string;

View File

@ -1,7 +1,7 @@
"use client"; "use client";
// helpers // helpers
import { renderFullDate } from "helpers/date-time.helper"; import { renderFullDate } from "@/helpers/date-time.helper";
export const dueDateIconDetails = ( export const dueDateIconDetails = (
date: string, date: string,

View File

@ -1,9 +1,9 @@
"use client"; "use client";
// types // types
import { issuePriorityFilter } from "@/constants/data";
import { TIssuePriorityKey } from "types/issue"; import { TIssuePriorityKey } from "types/issue";
// constants // constants
import { issuePriorityFilter } from "constants/data";
export const IssueBlockPriority = ({ priority }: { priority: TIssuePriorityKey | null }) => { export const IssueBlockPriority = ({ priority }: { priority: TIssuePriorityKey | null }) => {
const priority_detail = priority != null ? issuePriorityFilter(priority) : null; const priority_detail = priority != null ? issuePriorityFilter(priority) : null;

View File

@ -1,7 +1,7 @@
// ui // ui
import { StateGroupIcon } from "@plane/ui"; import { StateGroupIcon } from "@plane/ui";
// constants // constants
import { issueGroupFilter } from "constants/data"; import { issueGroupFilter } from "@/constants/data";
export const IssueBlockState = ({ state }: any) => { export const IssueBlockState = ({ state }: any) => {
const stateGroup = issueGroupFilter(state.group); const stateGroup = issueGroupFilter(state.group);

View File

@ -2,16 +2,16 @@
// mobx react lite // mobx react lite
import { observer } from "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 // 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 // interfaces
import { RootStore } from "@/store/root";
import { IIssue } from "types/issue"; import { IIssue } from "types/issue";
import { RootStore } from "store/root";
import { useRouter } from "next/router";
export const IssueKanBanBlock = observer(({ issue }: { issue: IIssue }) => { export const IssueKanBanBlock = observer(({ issue }: { issue: IIssue }) => {
const { project: projectStore, issueDetails: issueDetailStore }: RootStore = useMobxStore(); const { project: projectStore, issueDetails: issueDetailStore }: RootStore = useMobxStore();

View File

@ -1,14 +1,14 @@
// mobx react lite // mobx react lite
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
// interfaces // interfaces
import { IIssueState } from "types/issue";
// constants // constants
import { issueGroupFilter } from "constants/data";
// ui
import { StateGroupIcon } from "@plane/ui"; import { StateGroupIcon } from "@plane/ui";
import { issueGroupFilter } from "@/constants/data";
// ui
// mobx hook // mobx hook
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
import { IIssueState } from "types/issue";
export const IssueKanBanHeader = observer(({ state }: { state: IIssueState }) => { export const IssueKanBanHeader = observer(({ state }: { state: IIssueState }) => {
const store: RootStore = useMobxStore(); const store: RootStore = useMobxStore();

View File

@ -3,15 +3,15 @@
// mobx react lite // mobx react lite
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
// components // 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 // ui
import { Icon } from "components/ui"; import { Icon } from "@/components/ui";
// interfaces // interfaces
import { IIssueState, IIssue } from "types/issue";
// mobx hook // mobx hook
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
import { IIssueState, IIssue } from "types/issue";
export const IssueKanbanView = observer(() => { export const IssueKanbanView = observer(() => {
const store: RootStore = useMobxStore(); const store: RootStore = useMobxStore();

View File

@ -1,17 +1,17 @@
import { FC } from "react"; import { FC } from "react";
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useRouter } from "next/router";
// components // components
import { IssueBlockPriority } from "components/issues/board-views/block-priority"; import { IssueBlockDueDate } from "@/components/issues/board-views/block-due-date";
import { IssueBlockState } from "components/issues/board-views/block-state"; import { IssueBlockLabels } from "@/components/issues/board-views/block-labels";
import { IssueBlockLabels } from "components/issues/board-views/block-labels"; import { IssueBlockPriority } from "@/components/issues/board-views/block-priority";
import { IssueBlockDueDate } from "components/issues/board-views/block-due-date"; import { IssueBlockState } from "@/components/issues/board-views/block-state";
// mobx hook // mobx hook
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
// interfaces // interfaces
import { RootStore } from "@/store/root";
import { IIssue } from "types/issue"; import { IIssue } from "types/issue";
// store // store
import { RootStore } from "store/root";
export const IssueListBlock: FC<{ issue: IIssue }> = observer((props) => { export const IssueListBlock: FC<{ issue: IIssue }> = observer((props) => {
const { issue } = props; const { issue } = props;

View File

@ -1,14 +1,14 @@
// mobx react lite // mobx react lite
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
// interfaces // interfaces
import { IIssueState } from "types/issue";
// ui // ui
import { StateGroupIcon } from "@plane/ui"; import { StateGroupIcon } from "@plane/ui";
// constants // constants
import { issueGroupFilter } from "constants/data"; import { issueGroupFilter } from "@/constants/data";
// mobx hook // mobx hook
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
import { IIssueState } from "types/issue";
export const IssueListHeader = observer(({ state }: { state: IIssueState }) => { export const IssueListHeader = observer(({ state }: { state: IIssueState }) => {
const store: RootStore = useMobxStore(); const store: RootStore = useMobxStore();

View File

@ -1,13 +1,13 @@
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
// components // 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 // interfaces
import { IIssueState, IIssue } from "types/issue";
// mobx hook // mobx hook
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
// store // store
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
import { IIssueState, IIssue } from "types/issue";
export const IssueListView = observer(() => { export const IssueListView = observer(() => {
const { issue: issueStore }: RootStore = useMobxStore(); const { issue: issueStore }: RootStore = useMobxStore();

View File

@ -1,11 +1,11 @@
// components // components
import { AppliedPriorityFilters } from "./priority";
import { AppliedStateFilters } from "./state";
// icons // icons
import { X } from "lucide-react"; import { X } from "lucide-react";
// helpers // helpers
import { IIssueFilterOptions } from "store/issues/types"; import { IIssueFilterOptions } from "@/store/issues/types";
import { IIssueLabel, IIssueState } from "types/issue"; import { IIssueLabel, IIssueState } from "types/issue";
import { AppliedPriorityFilters } from "./priority";
import { AppliedStateFilters } from "./state";
// types // types
type Props = { type Props = {

View File

@ -1,5 +1,5 @@
import { PriorityIcon } from "@plane/ui";
import { X } from "lucide-react"; import { X } from "lucide-react";
import { PriorityIcon } from "@plane/ui";
type Props = { type Props = {
handleRemove: (val: string) => void; handleRemove: (val: string) => void;

View File

@ -1,12 +1,12 @@
import { FC, useCallback } from "react"; import { FC, useCallback } from "react";
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useRouter } from "next/router";
// components // components
import { AppliedFiltersList } from "./filters-list";
// store // store
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
import { RootStore } from "store/root"; import { IIssueFilterOptions } from "@/store/issues/types";
import { IIssueFilterOptions } from "store/issues/types"; import { RootStore } from "@/store/root";
import { AppliedFiltersList } from "./filters-list";
export const IssueAppliedFilters: FC = observer(() => { export const IssueAppliedFilters: FC = observer(() => {
const router = useRouter(); const router = useRouter();

View File

@ -1,7 +1,7 @@
import React, { Fragment, useState } from "react"; import React, { Fragment, useState } from "react";
import { Placement } from "@popperjs/core";
import { usePopper } from "react-popper"; import { usePopper } from "react-popper";
import { Popover, Transition } from "@headlessui/react"; import { Popover, Transition } from "@headlessui/react";
import { Placement } from "@popperjs/core";
// ui // ui
import { Button } from "@plane/ui"; import { Button } from "@plane/ui";

View File

@ -1,11 +1,11 @@
import React, { useState } from "react"; import React, { useState } from "react";
// components // components
import { FilterHeader, FilterOption } from "./helpers";
// ui // ui
import { Loader } from "@plane/ui"; import { Loader } from "@plane/ui";
// types // types
import { IIssueLabel } from "types/issue"; import { IIssueLabel } from "types/issue";
import { FilterHeader, FilterOption } from "./helpers";
const LabelIcons = ({ color }: { color: string }) => ( const LabelIcons = ({ color }: { color: string }) => (
<span className="h-2.5 w-2.5 rounded-full" style={{ backgroundColor: color }} /> <span className="h-2.5 w-2.5 rounded-full" style={{ backgroundColor: color }} />

View File

@ -3,9 +3,9 @@ import { observer } from "mobx-react-lite";
// ui // ui
import { PriorityIcon } from "@plane/ui"; import { PriorityIcon } from "@plane/ui";
// components // components
import { issuePriorityFilters } from "@/constants/data";
import { FilterHeader, FilterOption } from "./helpers"; import { FilterHeader, FilterOption } from "./helpers";
// constants // constants
import { issuePriorityFilters } from "constants/data";
type Props = { type Props = {
appliedFilters: string[] | null; appliedFilters: string[] | null;

View File

@ -1,16 +1,16 @@
import { FC, useCallback } from "react"; import { FC, useCallback } from "react";
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useRouter } from "next/router";
// components // 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 { FiltersDropdown } from "./helpers/dropdown";
import { FilterSelection } from "./selection"; import { FilterSelection } from "./selection";
// types // types
import { IIssueFilterOptions } from "store/issues/types";
// helpers // helpers
import { ISSUE_DISPLAY_FILTERS_BY_LAYOUT } from "store/issues/helpers";
// store // store
import { RootStore } from "store/root";
import { useMobxStore } from "lib/mobx/store-provider";
export const IssueFiltersDropdown: FC = observer(() => { export const IssueFiltersDropdown: FC = observer(() => {
const router = useRouter(); const router = useRouter();

View File

@ -2,13 +2,13 @@ import React, { useState } from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { Search, X } from "lucide-react"; import { Search, X } from "lucide-react";
// components // components
import { FilterPriority, FilterState } from "./";
// types // types
// filter helpers // filter helpers
import { ILayoutDisplayFiltersOptions } from "store/issues/helpers"; import { ILayoutDisplayFiltersOptions } from "@/store/issues/helpers";
import { IIssueFilterOptions } from "store/issues/types"; import { IIssueFilterOptions } from "@/store/issues/types";
import { IIssueState, IIssueLabel } from "types/issue"; import { IIssueState, IIssueLabel } from "types/issue";
import { FilterPriority, FilterState } from "./";
type Props = { type Props = {
filters: IIssueFilterOptions; filters: IIssueFilterOptions;

View File

@ -1,10 +1,10 @@
import React, { useState } from "react"; import React, { useState } from "react";
// components // components
import { FilterHeader, FilterOption } from "./helpers";
// ui // ui
import { Loader, StateGroupIcon } from "@plane/ui"; import { Loader, StateGroupIcon } from "@plane/ui";
// types // types
import { IIssueState } from "types/issue"; import { IIssueState } from "types/issue";
import { FilterHeader, FilterOption } from "./helpers";
type Props = { type Props = {
appliedFilters: string[] | null; appliedFilters: string[] | null;

View File

@ -1,20 +1,20 @@
import { useEffect } from "react"; import { useEffect } from "react";
import { observer } from "mobx-react-lite";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { observer } from "mobx-react-lite";
// components // 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 { NavbarIssueBoardView } from "./issue-board-view";
import { NavbarTheme } from "./theme"; 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 IssueNavbar = observer(() => {
const { const {

View File

@ -1,10 +1,10 @@
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useRouter } from "next/router";
// constants // constants
import { issueViews } from "constants/data"; import { issueViews } from "@/constants/data";
// mobx // mobx
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
import { TIssueBoardKeys } from "types/issue"; import { TIssueBoardKeys } from "types/issue";
export const NavbarIssueBoardView = observer(() => { export const NavbarIssueBoardView = observer(() => {

View File

@ -1,9 +1,9 @@
// next theme // next theme
import { useEffect, useState } from "react";
import { observer } from "mobx-react-lite";
import { useTheme } from "next-themes"; import { useTheme } from "next-themes";
// mobx react lite // mobx react lite
import { observer } from "mobx-react-lite";
import { useEffect, useState } from "react";
export const NavbarTheme = observer(() => { export const NavbarTheme = observer(() => {
const [appTheme, setAppTheme] = useState("light"); const [appTheme, setAppTheme] = useState("light");

View File

@ -1,20 +1,20 @@
import React, { useRef } from "react"; import React, { useRef } from "react";
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useRouter } from "next/router";
import { useForm, Controller } from "react-hook-form"; import { useForm, Controller } from "react-hook-form";
// lib // 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 // hooks
import fileService from "@/services/file.service";
import { RootStore } from "@/store/root";
import useToast from "hooks/use-toast"; import useToast from "hooks/use-toast";
// ui // ui
import { Button } from "@plane/ui";
// types // types
import { Comment } from "types/issue"; import { Comment } from "types/issue";
// components // components
import { LiteTextEditorWithRef } from "@plane/lite-text-editor";
// service // service
import fileService from "services/file.service";
import { RootStore } from "store/root";
const defaultValues: Partial<Comment> = { const defaultValues: Partial<Comment> = {
comment_html: "", comment_html: "",

View File

@ -1,23 +1,23 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { Menu, Transition } from "@headlessui/react";
import { Check, MessageSquare, MoreVertical, X } from "lucide-react"; import { Check, MessageSquare, MoreVertical, X } from "lucide-react";
import { Menu, Transition } from "@headlessui/react";
// mobx store // mobx store
import { useMobxStore } from "lib/mobx/store-provider";
// components // components
import { LiteReadOnlyEditorWithRef, LiteTextEditorWithRef } from "@plane/lite-text-editor"; import { LiteReadOnlyEditorWithRef, LiteTextEditorWithRef } from "@plane/lite-text-editor";
import { CommentReactions } from "components/issues/peek-overview"; import { CommentReactions } from "@/components/issues/peek-overview";
// helpers // helpers
import { timeAgo } from "helpers/date-time.helper"; import { timeAgo } from "@/helpers/date-time.helper";
import { useMobxStore } from "@/lib/mobx/store-provider";
// types // types
import { Comment } from "types/issue";
// services // 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 useEditorSuggestions from "hooks/use-editor-suggestions";
import { RootStore } from "store/root"; import { Comment } from "types/issue";
type Props = { type Props = {
workspaceSlug: string; workspaceSlug: string;
comment: Comment; comment: Comment;

View File

@ -1,15 +1,14 @@
import React from "react"; import React from "react";
import { useRouter } from "next/router";
// mobx // mobx
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useMobxStore } from "lib/mobx/store-provider"; import { useRouter } from "next/router";
// ui // ui
import { ReactionSelector } from "components/ui";
import { Tooltip } from "@plane/ui"; import { Tooltip } from "@plane/ui";
import { ReactionSelector } from "@/components/ui";
// helpers // helpers
import { groupReactions, renderEmoji } from "helpers/emoji.helper"; import { groupReactions, renderEmoji } from "@/helpers/emoji.helper";
import { useMobxStore } from "@/lib/mobx/store-provider";
type Props = { type Props = {
commentId: string; commentId: string;

View File

@ -1,13 +1,13 @@
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
// components // components
import { Loader } from "@plane/ui";
import { import {
PeekOverviewHeader, PeekOverviewHeader,
PeekOverviewIssueActivity, PeekOverviewIssueActivity,
PeekOverviewIssueDetails, PeekOverviewIssueDetails,
PeekOverviewIssueProperties, PeekOverviewIssueProperties,
} from "components/issues/peek-overview"; } from "@/components/issues/peek-overview";
// types // types
import { Loader } from "@plane/ui";
import { IIssue } from "types/issue"; import { IIssue } from "types/issue";
type Props = { type Props = {

View File

@ -1,18 +1,18 @@
import React from "react"; import React from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { Listbox, Transition } from "@headlessui/react";
import { MoveRight } from "lucide-react"; import { MoveRight } from "lucide-react";
import { Listbox, Transition } from "@headlessui/react";
// hooks // hooks
import useToast from "hooks/use-toast";
// ui // ui
import { Icon } from "components/ui"; import { Icon } from "@/components/ui";
// helpers // helpers
import { copyTextToClipboard } from "helpers/string.helper"; import { copyTextToClipboard } from "@/helpers/string.helper";
// store // store
import { IPeekMode } from "store/issue_details"; import { useMobxStore } from "@/lib/mobx/store-provider";
import { RootStore } from "store/root"; import { IPeekMode } from "@/store/issue_details";
import { RootStore } from "@/store/root";
// lib // lib
import { useMobxStore } from "lib/mobx/store-provider"; import useToast from "hooks/use-toast";
// types // types
import { IIssue } from "types/issue"; import { IIssue } from "types/issue";

View File

@ -1,17 +1,17 @@
import React from "react"; import React from "react";
import { observer } from "mobx-react-lite";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
// mobx // mobx
import { observer } from "mobx-react-lite";
// lib // 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 { 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 // types
import { IIssue } from "types/issue"; import { IIssue } from "types/issue";

View File

@ -1,8 +1,8 @@
import { IssueReactions } from "components/issues/peek-overview";
import { RichReadOnlyEditor } from "@plane/rich-text-editor"; import { RichReadOnlyEditor } from "@plane/rich-text-editor";
import { IssueReactions } from "@/components/issues/peek-overview";
// types // types
import { IIssue } from "types/issue";
import useEditorSuggestions from "hooks/use-editor-suggestions"; import useEditorSuggestions from "hooks/use-editor-suggestions";
import { IIssue } from "types/issue";
type Props = { type Props = {
issueDetails: IIssue; issueDetails: IIssue;

View File

@ -1,13 +1,13 @@
import { useEffect } from "react"; import { useEffect } from "react";
import { useRouter } from "next/router";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { useRouter } from "next/router";
// lib // 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 { 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(() => { export const IssueEmojiReactions: React.FC = observer(() => {
// router // router

View File

@ -1,18 +1,18 @@
// hooks // hooks
import useToast from "hooks/use-toast";
// ui // ui
import { StateGroupIcon } from "@plane/ui"; import { StateGroupIcon } from "@plane/ui";
// icons // icons
import { Icon } from "components/ui"; import { Icon } from "@/components/ui";
// helpers // helpers
import { copyTextToClipboard, addSpaceIfCamelCase } from "helpers/string.helper"; import { issueGroupFilter, issuePriorityFilter } from "@/constants/data";
import { renderFullDate } from "helpers/date-time.helper"; import { renderFullDate } from "@/helpers/date-time.helper";
import { dueDateIconDetails } from "../board-views/block-due-date"; import { copyTextToClipboard, addSpaceIfCamelCase } from "@/helpers/string.helper";
// types // types
import { IIssue } from "types/issue"; import { IPeekMode } from "@/store/issue_details";
import { IPeekMode } from "store/issue_details";
// constants // 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 = { type Props = {
issueDetails: IIssue; issueDetails: IIssue;

View File

@ -1,5 +1,5 @@
import { IssueEmojiReactions, IssueVotes } from "components/issues/peek-overview"; import { IssueEmojiReactions, IssueVotes } from "@/components/issues/peek-overview";
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
export const IssueReactions: React.FC = () => { export const IssueReactions: React.FC = () => {
const { project: projectStore } = useMobxStore(); const { project: projectStore } = useMobxStore();

View File

@ -1,13 +1,13 @@
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import { observer } from "mobx-react-lite";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
// mobx // mobx
import { observer } from "mobx-react-lite";
// lib // lib
import { useMobxStore } from "lib/mobx/store-provider";
// ui
import { Tooltip } from "@plane/ui"; import { Tooltip } from "@plane/ui";
import { useMobxStore } from "@/lib/mobx/store-provider";
// ui
export const IssueVotes: React.FC = observer(() => { export const IssueVotes: React.FC = observer(() => {
const [isSubmitting, setIsSubmitting] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false);

View File

@ -1,15 +1,15 @@
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import { observer } from "mobx-react-lite";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
// mobx // mobx
import { observer } from "mobx-react-lite";
// headless ui // headless ui
import { Dialog, Transition } from "@headlessui/react"; import { Dialog, Transition } from "@headlessui/react";
// components // components
import { FullScreenPeekView, SidePeekView } from "components/issues/peek-overview"; import { FullScreenPeekView, SidePeekView } from "@/components/issues/peek-overview";
// lib // lib
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
export const IssuePeekOverview: React.FC = observer(() => { export const IssuePeekOverview: React.FC = observer(() => {
// states // states

View File

@ -1,13 +1,13 @@
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
// components // components
import { Loader } from "@plane/ui";
import { import {
PeekOverviewHeader, PeekOverviewHeader,
PeekOverviewIssueActivity, PeekOverviewIssueActivity,
PeekOverviewIssueDetails, PeekOverviewIssueDetails,
PeekOverviewIssueProperties, PeekOverviewIssueProperties,
} from "components/issues/peek-overview"; } from "@/components/issues/peek-overview";
import { Loader } from "@plane/ui";
import { IIssue } from "types/issue"; import { IIssue } from "types/issue";
type Props = { type Props = {

View File

@ -1,9 +1,9 @@
import { Fragment, useState, useRef } from "react"; import { Fragment, useState, useRef } from "react";
import Link from "next/link"; import Link from "next/link";
import { Check, ChevronLeft } from "lucide-react";
import { Popover, Transition } from "@headlessui/react"; import { Popover, Transition } from "@headlessui/react";
// hooks // hooks
import useOutSideClick from "hooks/use-outside-click"; import useOutSideClick from "hooks/use-outside-click";
import { Check, ChevronLeft } from "lucide-react";
type ItemOptionType = { type ItemOptionType = {
display: React.ReactNode; display: React.ReactNode;

View File

@ -4,10 +4,10 @@ import { Fragment } from "react";
import { Popover, Transition } from "@headlessui/react"; import { Popover, Transition } from "@headlessui/react";
// helper // helper
import { renderEmoji } from "helpers/emoji.helper"; import { Icon } from "@/components/ui";
import { renderEmoji } from "@/helpers/emoji.helper";
// icons // icons
import { Icon } from "components/ui";
const reactionEmojis = ["128077", "128078", "128516", "128165", "128533", "129505", "9992", "128064"]; const reactionEmojis = ["128077", "128078", "128516", "128165", "128533", "129505", "9992", "128064"];

View File

@ -1,11 +1,11 @@
import { observer } from "mobx-react-lite";
import Image from "next/image"; import Image from "next/image";
// mobx // 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 { Loader } from "@plane/ui";
import { SignInRoot, UserLoggedIn } from "@/components/accounts";
import { useMobxStore } from "@/lib/mobx/store-provider";
// components
// images // images
import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text-new.png"; import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text-new.png";

View File

@ -1,18 +1,18 @@
import { useEffect } from "react"; import { useEffect } from "react";
import { observer } from "mobx-react-lite";
import Image from "next/image"; import Image from "next/image";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { observer } from "mobx-react-lite";
// components // components
import { IssueListView } from "components/issues/board-views/list"; import { IssueCalendarView } from "@/components/issues/board-views/calendar";
import { IssueKanbanView } from "components/issues/board-views/kanban"; import { IssueGanttView } from "@/components/issues/board-views/gantt";
import { IssueCalendarView } from "components/issues/board-views/calendar"; import { IssueKanbanView } from "@/components/issues/board-views/kanban";
import { IssueSpreadsheetView } from "components/issues/board-views/spreadsheet"; import { IssueListView } from "@/components/issues/board-views/list";
import { IssueGanttView } from "components/issues/board-views/gantt"; import { IssueSpreadsheetView } from "@/components/issues/board-views/spreadsheet";
import { IssuePeekOverview } from "components/issues/peek-overview"; import { IssueAppliedFilters } from "@/components/issues/filters/applied-filters/root";
import { IssueAppliedFilters } from "components/issues/filters/applied-filters/root"; import { IssuePeekOverview } from "@/components/issues/peek-overview";
// mobx store // 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 // assets
import SomethingWentWrongImage from "public/something-went-wrong.svg"; import SomethingWentWrongImage from "public/something-went-wrong.svg";

View File

@ -2,7 +2,7 @@ import React, { createContext, useCallback, useReducer } from "react";
// uuid // uuid
import { v4 as uuid } from "uuid"; import { v4 as uuid } from "uuid";
// components // components
import ToastAlert from "components/ui/toast-alert"; import ToastAlert from "@/components/ui/toast-alert";
export const toastContext = createContext<ContextType>({} as ContextType); export const toastContext = createContext<ContextType>({} as ContextType);

View File

@ -1,5 +1,5 @@
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
const useEditorSuggestions = () => { const useEditorSuggestions = () => {
const { mentionsStore }: RootStore = useMobxStore(); const { mentionsStore }: RootStore = useMobxStore();

View File

@ -1,7 +1,7 @@
import { useCallback, useState } from "react"; import { useCallback, useState } from "react";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
// mobx store // mobx store
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
// types // types
import { IUser } from "types/user"; import { IUser } from "types/user";

View File

@ -1,5 +1,5 @@
import { useContext } from "react"; import { useContext } from "react";
import { toastContext } from "contexts/toast.context"; import { toastContext } from "@/contexts/toast.context";
const useToast = () => { const useToast = () => {
const toastContextData = useContext(toastContext); const toastContextData = useContext(toastContext);

View File

@ -4,7 +4,7 @@ import Image from "next/image";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import planeLogo from "public/plane-logo.svg"; import planeLogo from "public/plane-logo.svg";
// components // components
import IssueNavbar from "components/issues/navbar"; import IssueNavbar from "@/components/issues/navbar";
const ProjectLayout = ({ children }: { children: React.ReactNode }) => ( const ProjectLayout = ({ children }: { children: React.ReactNode }) => (
<div className="relative flex h-screen min-h-[500px] w-screen flex-col overflow-hidden"> <div className="relative flex h-screen min-h-[500px] w-screen flex-col overflow-hidden">

View File

@ -2,7 +2,7 @@ import { useEffect } from "react";
// js cookie // js cookie
import Cookie from "js-cookie"; import Cookie from "js-cookie";
// mobx store // mobx store
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "@/lib/mobx/store-provider";
const MobxStoreInit = () => { const MobxStoreInit = () => {
const { user: userStore } = useMobxStore(); const { user: userStore } = useMobxStore();

View File

@ -2,7 +2,7 @@
import { createContext, useContext } from "react"; import { createContext, useContext } from "react";
// mobx store // mobx store
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
let rootStore: RootStore = new RootStore(); let rootStore: RootStore = new RootStore();

View File

@ -4,11 +4,11 @@ import { useRouter } from "next/router";
import useSWR from "swr"; import useSWR from "swr";
/// layouts /// layouts
import ProjectLayout from "layouts/project-layout";
// components // components
import { ProjectDetailsView } from "components/views/project-details"; import { ProjectDetailsView } from "@/components/views/project-details";
// lib // 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 WorkspaceProjectPage = (props: any) => {
const SITE_TITLE = props?.project_settings?.project_details?.name || "Plane | Deploy"; const SITE_TITLE = props?.project_settings?.project_details?.name || "Plane | Deploy";

View File

@ -1,15 +1,15 @@
import Head from "next/head";
import type { AppProps } from "next/app"; import type { AppProps } from "next/app";
import Head from "next/head";
import { ThemeProvider } from "next-themes"; import { ThemeProvider } from "next-themes";
// styles // styles
import "styles/globals.css"; import "@/styles/globals.css";
// contexts // 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 // 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 // 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/"; const prefix = parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0") === 0 ? "/" : "/spaces/";

View File

@ -3,20 +3,20 @@ import Image from "next/image";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useTheme } from "next-themes"; import { useTheme } from "next-themes";
import { Lightbulb } from "lucide-react";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { Lightbulb } from "lucide-react";
// services // 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 { 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 // images
import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text-new.png";
import latestFeatures from "public/onboarding/onboarding-pages.svg"; import latestFeatures from "public/onboarding/onboarding-pages.svg";
import BluePlaneLogoWithoutText from "public/plane-logos/blue-without-text-new.png";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper";
type TResetPasswordFormValues = { type TResetPasswordFormValues = {
email: string; email: string;

View File

@ -1,13 +1,13 @@
import { useEffect } from "react"; import { useEffect } from "react";
import { observer } from "mobx-react-lite";
import { NextPage } from "next"; import { NextPage } from "next";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { observer } from "mobx-react-lite";
// components // components
import { LoginView } from "components/views"; import { LoginView } from "@/components/views";
// store // 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 Index: NextPage = observer(() => {
const router = useRouter(); const router = useRouter();

View File

@ -1,9 +1,9 @@
import React, { useEffect } from "react"; import React, { useEffect } from "react";
// mobx // mobx
import { observer } from "mobx-react-lite"; 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 // components
import { OnBoardingForm } from "components/accounts/onboarding-form";
const imagePrefix = Boolean(parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0")) ? "/spaces" : ""; const imagePrefix = Boolean(parseInt(process.env.NEXT_PUBLIC_DEPLOY_WITH_NGINX || "0")) ? "/spaces" : "";

View File

@ -1,7 +1,7 @@
// services // services
import APIService from "services/api.service"; import APIService from "@/services/api.service";
// helper // helper
import { API_BASE_URL } from "helpers/common.helper"; import { API_BASE_URL } from "@/helpers/common.helper";
// types // types
import { IAppConfig } from "types/app"; import { IAppConfig } from "types/app";

View File

@ -1,6 +1,6 @@
// services // services
import APIService from "services/api.service"; import APIService from "@/services/api.service";
import { API_BASE_URL } from "helpers/common.helper"; import { API_BASE_URL } from "@/helpers/common.helper";
import { IEmailCheckData, IEmailCheckResponse, ILoginTokenResponse, IPasswordSignInData } from "types/auth"; import { IEmailCheckData, IEmailCheckResponse, ILoginTokenResponse, IPasswordSignInData } from "types/auth";
export class AuthService extends APIService { export class AuthService extends APIService {

View File

@ -1,7 +1,7 @@
// services // services
import APIService from "services/api.service"; import APIService from "@/services/api.service";
// helpers // helpers
import { API_BASE_URL } from "helpers/common.helper"; import { API_BASE_URL } from "@/helpers/common.helper";
import axios from "axios"; import axios from "axios";
interface UnSplashImage { interface UnSplashImage {

View File

@ -1,6 +1,6 @@
// services // services
import APIService from "services/api.service"; import APIService from "@/services/api.service";
import { API_BASE_URL } from "helpers/common.helper"; import { API_BASE_URL } from "@/helpers/common.helper";
class IssueService extends APIService { class IssueService extends APIService {
constructor() { constructor() {

View File

@ -1,6 +1,6 @@
// services // services
import APIService from "services/api.service"; import APIService from "@/services/api.service";
import { API_BASE_URL } from "helpers/common.helper"; import { API_BASE_URL } from "@/helpers/common.helper";
class ProjectService extends APIService { class ProjectService extends APIService {
constructor() { constructor() {

View File

@ -1,7 +1,7 @@
// services // services
import APIService from "services/api.service"; import APIService from "@/services/api.service";
// helpers // helpers
import { API_BASE_URL } from "helpers/common.helper"; import { API_BASE_URL } from "@/helpers/common.helper";
// types // types
import { IUser } from "types/user"; import { IUser } from "types/user";

View File

@ -1,6 +1,6 @@
import { observable, action, computed, makeObservable, runInAction } from "mobx"; import { observable, action, computed, makeObservable, runInAction } from "mobx";
// services // services
import IssueService from "services/issue.service"; import IssueService from "@/services/issue.service";
// store // store
import { RootStore } from "./root"; import { RootStore } from "./root";
// types // types

View File

@ -3,7 +3,7 @@ import { v4 as uuidv4 } from "uuid";
// store // store
import { RootStore } from "./root"; import { RootStore } from "./root";
// services // services
import IssueService from "services/issue.service"; import IssueService from "@/services/issue.service";
import { IIssue, IVote } from "types/issue"; import { IIssue, IVote } from "types/issue";
export type IPeekMode = "side" | "modal" | "full"; export type IPeekMode = "side" | "modal" | "full";

View File

@ -1,5 +1,5 @@
// types // types
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
export interface IIssueFilterBaseStore { export interface IIssueFilterBaseStore {
// helper methods // helper methods

View File

@ -1,6 +1,6 @@
import { action, makeObservable, observable, runInAction, computed } from "mobx"; import { action, makeObservable, observable, runInAction, computed } from "mobx";
// types // types
import { RootStore } from "store/root"; import { RootStore } from "@/store/root";
import { IIssueFilterOptions, TIssueParams } from "./types"; import { IIssueFilterOptions, TIssueParams } from "./types";
import { handleIssueQueryParamsByLayout } from "./helpers"; import { handleIssueQueryParamsByLayout } from "./helpers";
import { IssueFilterBaseStore } from "./base-issue-filter.store"; import { IssueFilterBaseStore } from "./base-issue-filter.store";

View File

@ -1,7 +1,7 @@
// mobx // mobx
import { observable, action, makeObservable, runInAction } from "mobx"; import { observable, action, makeObservable, runInAction } from "mobx";
// service // service
import ProjectService from "services/project.service"; import ProjectService from "@/services/project.service";
import { TIssueBoardKeys } from "types/issue"; import { TIssueBoardKeys } from "types/issue";
// types // types
import { IWorkspace, IProject, IProjectSettings } from "types/project"; import { IWorkspace, IProject, IProjectSettings } from "types/project";

View File

@ -1,7 +1,7 @@
// mobx // mobx
import { observable, action, computed, makeObservable, runInAction } from "mobx"; import { observable, action, computed, makeObservable, runInAction } from "mobx";
// service // service
import { UserService } from "services/user.service"; import { UserService } from "@/services/user.service";
// types // types
import { IUser } from "types/user"; import { IUser } from "types/user";

View File

@ -4,6 +4,9 @@
"exclude": ["node_modules"], "exclude": ["node_modules"],
"compilerOptions": { "compilerOptions": {
"baseUrl": ".", "baseUrl": ".",
"jsx": "preserve" "jsx": "preserve",
"paths": {
"@/*": ["*"]
}
} }
} }

View File

@ -11,93 +11,42 @@ module.exports = {
}, },
}, },
rules: { rules: {
// "import/order": [ "import/order": [
// "error", "error",
// { {
// groups: ["builtin", "external", "internal", "parent", "sibling"], groups: ["builtin", "external", "internal", "parent", "sibling",],
// pathGroups: [ pathGroups: [
// { {
// pattern: "react", pattern: "react",
// group: "external", group: "external",
// position: "before", position: "before",
// }, },
// { {
// pattern: "@headlessui/**", pattern: "lucide-react",
// group: "external", group: "external",
// position: "after", position: "after",
// }, },
// { {
// pattern: "lucide-react", pattern: "@headlessui/**",
// group: "external", group: "external",
// position: "after", position: "after",
// }, },
// { {
// pattern: "@plane/ui", pattern: "@plane/**",
// group: "external", group: "external",
// position: "after", position: "after",
// }, },
// { {
// pattern: "components/**", pattern: "@/**",
// group: "internal", group: "internal",
// position: "before", }
// }, ],
// { pathGroupsExcludedImportTypes: ["builtin", "internal", "react"],
// pattern: "constants/**", alphabetize: {
// group: "internal", order: "asc",
// position: "before", caseInsensitive: true,
// }, },
// { },
// 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,
// },
// },
// ],
}, },
}; };

View File

@ -2,12 +2,12 @@ import React, { useState } from "react";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useTheme } from "next-themes"; import { useTheme } from "next-themes";
import { mutate } from "swr"; import { mutate } from "swr";
import { Dialog, Transition } from "@headlessui/react";
import { Trash2 } from "lucide-react"; import { Trash2 } from "lucide-react";
import { Dialog, Transition } from "@headlessui/react";
// hooks // hooks
// ui // ui
import { Button, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, TOAST_TYPE, setToast } from "@plane/ui";
import { useUser } from "hooks/store"; import { useUser } from "@/hooks/store";
type Props = { type Props = {
isOpen: boolean; isOpen: boolean;

View File

@ -2,11 +2,11 @@ import { observer } from "mobx-react-lite";
// ui // ui
import { TOAST_TYPE, setToast } from "@plane/ui"; import { TOAST_TYPE, setToast } from "@plane/ui";
// components // components
import { GitHubSignInButton, GoogleSignInButton } from "components/account"; import { GitHubSignInButton, GoogleSignInButton } from "@/components/account";
// hooks // hooks
import { useApplication } from "hooks/store"; import { useApplication } from "@/hooks/store";
// services // services
import { AuthService } from "services/auth.service"; import { AuthService } from "@/services/auth.service";
type Props = { type Props = {
handleSignInRedirection: () => Promise<void>; handleSignInRedirection: () => Promise<void>;

View File

@ -1,15 +1,15 @@
import React from "react"; import React from "react";
import { observer } from "mobx-react-lite";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { XCircle } from "lucide-react"; 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"; 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 = { type Props = {
onSubmit: (isPasswordAutoset: boolean) => void; onSubmit: (isPasswordAutoset: boolean) => void;

View File

@ -1,7 +1,7 @@
import { Fragment, useState } from "react"; import { Fragment, useState } from "react";
import { usePopper } from "react-popper"; import { usePopper } from "react-popper";
import { Popover } from "@headlessui/react";
import { X } from "lucide-react"; import { X } from "lucide-react";
import { Popover } from "@headlessui/react";
export const ForgotPasswordPopover = () => { export const ForgotPasswordPopover = () => {
// popper-js refs // popper-js refs

View File

@ -1,16 +1,16 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
// services // services
import { AuthService } from "services/auth.service";
// hooks // hooks
import { useEventTracker } from "hooks/store";
// ui // ui
import { Eye, EyeOff } from "lucide-react";
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
// helpers // 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 // icons
import { Eye, EyeOff } from "lucide-react"; import { useEventTracker } from "@/hooks/store";
import { PASSWORD_CREATE_SELECTED, PASSWORD_CREATE_SKIPPED } from "constants/event-tracker"; import { AuthService } from "@/services/auth.service";
type Props = { type Props = {
email: string; email: string;

View File

@ -3,19 +3,19 @@ import { observer } from "mobx-react-lite";
import Link from "next/link"; import Link from "next/link";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { Eye, EyeOff, XCircle } from "lucide-react"; import { Eye, EyeOff, XCircle } from "lucide-react";
import { IPasswordSignInData } from "@plane/types";
// services // services
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
import { ESignInSteps, ForgotPasswordPopover } from "components/account"; import { ESignInSteps, ForgotPasswordPopover } from "@/components/account";
import { FORGOT_PASSWORD, SIGN_IN_WITH_PASSWORD } from "constants/event-tracker"; import { FORGOT_PASSWORD, SIGN_IN_WITH_PASSWORD } from "@/constants/event-tracker";
import { checkEmailValidity } from "helpers/string.helper"; import { checkEmailValidity } from "@/helpers/string.helper";
import { useApplication, useEventTracker } from "hooks/store"; import { useApplication, useEventTracker } from "@/hooks/store";
import { AuthService } from "services/auth.service"; import { AuthService } from "@/services/auth.service";
// hooks // hooks
// components // components
// ui // ui
// helpers // helpers
// types // types
import { IPasswordSignInData } from "@plane/types";
// constants // constants
type Props = { type Props = {

View File

@ -8,11 +8,11 @@ import {
SignInPasswordForm, SignInPasswordForm,
OAuthOptions, OAuthOptions,
SignInOptionalSetPasswordForm, SignInOptionalSetPasswordForm,
} from "components/account"; } from "@/components/account";
import { LatestFeatureBlock } from "components/common"; import { LatestFeatureBlock } from "@/components/common";
import { NAVIGATE_TO_SIGNUP } from "constants/event-tracker"; import { NAVIGATE_TO_SIGNUP } from "@/constants/event-tracker";
import { useApplication, useEventTracker } from "hooks/store"; import { useApplication, useEventTracker } from "@/hooks/store";
import useSignInRedirection from "hooks/use-sign-in-redirection"; import useSignInRedirection from "@/hooks/use-sign-in-redirection";
// components // components
// constants // constants

View File

@ -1,21 +1,21 @@
import React, { useState } from "react"; import React, { useState } from "react";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { XCircle } from "lucide-react"; import { XCircle } from "lucide-react";
import { IEmailCheckData, IMagicSignInData } from "@plane/types";
// services // services
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
import { CODE_VERIFIED } from "constants/event-tracker"; import { CODE_VERIFIED } from "@/constants/event-tracker";
import { checkEmailValidity } from "helpers/string.helper"; import { checkEmailValidity } from "@/helpers/string.helper";
import { useEventTracker } from "hooks/store"; import { useEventTracker } from "@/hooks/store";
import useTimer from "hooks/use-timer"; import useTimer from "@/hooks/use-timer";
import { AuthService } from "services/auth.service"; import { AuthService } from "@/services/auth.service";
import { UserService } from "services/user.service"; import { UserService } from "@/services/user.service";
// hooks // hooks
// ui // ui
// helpers // helpers
// types // types
import { IEmailCheckData, IMagicSignInData } from "@plane/types";
// constants // constants
type Props = { type Props = {

View File

@ -2,14 +2,14 @@ import React from "react";
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { XCircle } from "lucide-react"; import { XCircle } from "lucide-react";
import { IEmailCheckData } from "@plane/types";
// services // services
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
import { checkEmailValidity } from "helpers/string.helper"; import { checkEmailValidity } from "@/helpers/string.helper";
import { AuthService } from "services/auth.service"; import { AuthService } from "@/services/auth.service";
// ui // ui
// helpers // helpers
// types // types
import { IEmailCheckData } from "@plane/types";
type Props = { type Props = {
onSubmit: () => void; onSubmit: () => void;

View File

@ -3,11 +3,11 @@ import { Controller, useForm } from "react-hook-form";
// services // services
import { Eye, EyeOff } from "lucide-react"; import { Eye, EyeOff } from "lucide-react";
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
import { ESignUpSteps } from "components/account"; import { ESignUpSteps } from "@/components/account";
import { PASSWORD_CREATE_SKIPPED, SETUP_PASSWORD } from "constants/event-tracker"; import { PASSWORD_CREATE_SKIPPED, SETUP_PASSWORD } from "@/constants/event-tracker";
import { checkEmailValidity } from "helpers/string.helper"; import { checkEmailValidity } from "@/helpers/string.helper";
import { useEventTracker } from "hooks/store"; import { useEventTracker } from "@/hooks/store";
import { AuthService } from "services/auth.service"; import { AuthService } from "@/services/auth.service";
// hooks // hooks
// ui // ui
// helpers // helpers

View File

@ -3,14 +3,14 @@ import { observer } from "mobx-react-lite";
import Link from "next/link"; import Link from "next/link";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { Eye, EyeOff, XCircle } from "lucide-react"; import { Eye, EyeOff, XCircle } from "lucide-react";
import { IPasswordSignInData } from "@plane/types";
// services // services
// ui // ui
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
// helpers // helpers
import { checkEmailValidity } from "helpers/string.helper"; import { checkEmailValidity } from "@/helpers/string.helper";
import { AuthService } from "services/auth.service"; import { AuthService } from "@/services/auth.service";
// types // types
import { IPasswordSignInData } from "@plane/types";
type Props = { type Props = {
onSubmit: () => Promise<void>; onSubmit: () => Promise<void>;

View File

@ -8,10 +8,10 @@ import {
SignUpOptionalSetPasswordForm, SignUpOptionalSetPasswordForm,
SignUpPasswordForm, SignUpPasswordForm,
SignUpUniqueCodeForm, SignUpUniqueCodeForm,
} from "components/account"; } from "@/components/account";
import { NAVIGATE_TO_SIGNIN } from "constants/event-tracker"; import { NAVIGATE_TO_SIGNIN } from "@/constants/event-tracker";
import { useApplication, useEventTracker } from "hooks/store"; import { useApplication, useEventTracker } from "@/hooks/store";
import useSignInRedirection from "hooks/use-sign-in-redirection"; import useSignInRedirection from "@/hooks/use-sign-in-redirection";
// components // components
// constants // constants

View File

@ -2,20 +2,20 @@ import React, { useState } from "react";
import Link from "next/link"; import Link from "next/link";
import { Controller, useForm } from "react-hook-form"; import { Controller, useForm } from "react-hook-form";
import { XCircle } from "lucide-react"; import { XCircle } from "lucide-react";
import { IEmailCheckData, IMagicSignInData } from "@plane/types";
// services // services
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
import { CODE_VERIFIED } from "constants/event-tracker"; import { CODE_VERIFIED } from "@/constants/event-tracker";
import { checkEmailValidity } from "helpers/string.helper"; import { checkEmailValidity } from "@/helpers/string.helper";
import { useEventTracker } from "hooks/store"; import { useEventTracker } from "@/hooks/store";
import useTimer from "hooks/use-timer"; import useTimer from "@/hooks/use-timer";
import { AuthService } from "services/auth.service"; import { AuthService } from "@/services/auth.service";
import { UserService } from "services/user.service"; import { UserService } from "@/services/user.service";
// hooks // hooks
// ui // ui
// helpers // helpers
// types // types
import { IEmailCheckData, IMagicSignInData } from "@plane/types";
// constants // constants
type Props = { type Props = {

View File

@ -2,16 +2,16 @@ import { observer } from "mobx-react-lite";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import useSWR from "swr"; import useSWR from "swr";
import { IAnalyticsParams } from "@plane/types";
// services // services
// components // components
import { CustomAnalyticsSelectBar, CustomAnalyticsMainContent, CustomAnalyticsSidebar } from "components/analytics"; import { CustomAnalyticsSelectBar, CustomAnalyticsMainContent, CustomAnalyticsSidebar } from "@/components/analytics";
// types // types
// fetch-keys // fetch-keys
import { ANALYTICS } from "constants/fetch-keys"; import { ANALYTICS } from "@/constants/fetch-keys";
import { cn } from "helpers/common.helper"; import { cn } from "@/helpers/common.helper";
import { useApplication } from "hooks/store"; import { useApplication } from "@/hooks/store";
import { AnalyticsService } from "services/analytics.service"; import { AnalyticsService } from "@/services/analytics.service";
import { IAnalyticsParams } from "@plane/types";
type Props = { type Props = {
additionalParams?: Partial<IAnalyticsParams>; additionalParams?: Partial<IAnalyticsParams>;

View File

@ -1,9 +1,9 @@
// nivo // nivo
import { BarTooltipProps } from "@nivo/bar"; 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 { IAnalyticsParams, IAnalyticsResponse } from "@plane/types";
import { DATE_KEYS } from "@/constants/analytics";
import { renderMonthAndYear } from "@/helpers/analytics.helper";
// types
type Props = { type Props = {
datum: BarTooltipProps<any>; datum: BarTooltipProps<any>;

View File

@ -1,14 +1,14 @@
// nivo // nivo
import { BarDatum } from "@nivo/bar"; import { BarDatum } from "@nivo/bar";
// components // components
import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types";
import { Tooltip } from "@plane/ui"; import { Tooltip } from "@plane/ui";
// ui // ui
import { BarGraph } from "components/ui"; import { BarGraph } from "@/components/ui";
// helpers // helpers
import { generateBarColor, generateDisplayName } from "helpers/analytics.helper"; import { generateBarColor, generateDisplayName } from "@/helpers/analytics.helper";
import { findStringWithMostCharacters } from "helpers/array.helper"; import { findStringWithMostCharacters } from "@/helpers/array.helper";
// types // types
import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types";
import { CustomTooltip } from "./custom-tooltip"; import { CustomTooltip } from "./custom-tooltip";
type Props = { type Props = {

View File

@ -1,15 +1,15 @@
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { mutate } from "swr"; import { mutate } from "swr";
import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types";
// components // components
import { Button, Loader } from "@plane/ui"; import { Button, Loader } from "@plane/ui";
import { AnalyticsGraph, AnalyticsTable } from "components/analytics"; import { AnalyticsGraph, AnalyticsTable } from "@/components/analytics";
// ui // ui
// helpers // helpers
import { ANALYTICS } from "constants/fetch-keys"; import { ANALYTICS } from "@/constants/fetch-keys";
import { convertResponseToBarGraphData } from "helpers/analytics.helper"; import { convertResponseToBarGraphData } from "@/helpers/analytics.helper";
// types // types
import { IAnalyticsParams, IAnalyticsResponse } from "@plane/types";
// fetch-keys // fetch-keys
type Props = { type Props = {

View File

@ -1,11 +1,11 @@
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
import { Control, Controller, UseFormSetValue } from "react-hook-form"; import { Control, Controller, UseFormSetValue } from "react-hook-form";
import { IAnalyticsParams } from "@plane/types";
// hooks // hooks
import { SelectProject, SelectSegment, SelectXAxis, SelectYAxis } from "components/analytics"; import { SelectProject, SelectSegment, SelectXAxis, SelectYAxis } from "@/components/analytics";
import { useProject } from "hooks/store"; import { useProject } from "@/hooks/store";
// components // components
// types // types
import { IAnalyticsParams } from "@plane/types";
type Props = { type Props = {
control: Control<IAnalyticsParams, any>; control: Control<IAnalyticsParams, any>;

View File

@ -1,7 +1,7 @@
import { observer } from "mobx-react-lite"; import { observer } from "mobx-react-lite";
// hooks // hooks
import { CustomSearchSelect } from "@plane/ui"; import { CustomSearchSelect } from "@plane/ui";
import { useProject } from "hooks/store"; import { useProject } from "@/hooks/store";
// ui // ui
type Props = { type Props = {

Some files were not shown because too many files have changed in this diff Show More