mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
fix: eslint fixes and file formatting
This commit is contained in:
parent
473dfc7a5b
commit
53ddef1cd5
2
packages/types/src/project/projects.d.ts
vendored
2
packages/types/src/project/projects.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
import { EUserProjectRoles } from "constants/project";
|
||||
import { EUserProjectRoles } from "@/constants/project";
|
||||
import type {
|
||||
IProjectViewProps,
|
||||
IUser,
|
||||
|
2
packages/types/src/workspace.d.ts
vendored
2
packages/types/src/workspace.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
import { EUserWorkspaceRoles } from "constants/workspace";
|
||||
import { EUserWorkspaceRoles } from "@/constants/workspace";
|
||||
import type {
|
||||
IProjectMember,
|
||||
IUser,
|
||||
|
@ -49,7 +49,9 @@ export const Tooltip: React.FC<ITooltipProps> = ({
|
||||
hoverCloseDelay={closeDelay}
|
||||
content={
|
||||
<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>}
|
||||
{tooltipContent}
|
||||
|
@ -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,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
@ -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";
|
||||
|
@ -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: "",
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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<void>;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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",
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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 }) => (
|
||||
<span className="h-2.5 w-2.5 rounded-full" style={{ backgroundColor: color }} />
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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(() => {
|
||||
|
@ -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");
|
||||
|
@ -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> = {
|
||||
comment_html: "",
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 = {
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
|
@ -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"];
|
||||
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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<ContextType>({} as ContextType);
|
||||
|
||||
|
@ -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();
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 }) => (
|
||||
<div className="relative flex h-screen min-h-[500px] w-screen flex-col overflow-hidden">
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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/";
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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" : "";
|
||||
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
@ -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";
|
||||
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -1,5 +1,5 @@
|
||||
// types
|
||||
import { RootStore } from "store/root";
|
||||
import { RootStore } from "@/store/root";
|
||||
|
||||
export interface IIssueFilterBaseStore {
|
||||
// helper methods
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
|
@ -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";
|
||||
|
||||
|
@ -4,6 +4,9 @@
|
||||
"exclude": ["node_modules"],
|
||||
"compilerOptions": {
|
||||
"baseUrl": ".",
|
||||
"jsx": "preserve"
|
||||
"jsx": "preserve",
|
||||
"paths": {
|
||||
"@/*": ["*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
125
web/.eslintrc.js
125
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,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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<void>;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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 = {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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<void>;
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 = {
|
||||
|
@ -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<IAnalyticsParams>;
|
||||
|
@ -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<any>;
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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<IAnalyticsParams, any>;
|
||||
|
@ -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 = {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user