forked from github/plane
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 {
|
import type {
|
||||||
IProjectViewProps,
|
IProjectViewProps,
|
||||||
IUser,
|
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 {
|
import type {
|
||||||
IProjectMember,
|
IProjectMember,
|
||||||
IUser,
|
IUser,
|
||||||
|
@ -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}
|
||||||
|
@ -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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@ -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";
|
||||||
|
@ -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: "",
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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>;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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",
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
@ -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 = {
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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 }} />
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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 {
|
||||||
|
@ -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(() => {
|
||||||
|
@ -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");
|
||||||
|
@ -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: "",
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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 = {
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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 = {
|
||||||
|
@ -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;
|
||||||
|
@ -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"];
|
||||||
|
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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">
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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";
|
||||||
|
@ -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/";
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
@ -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" : "";
|
||||||
|
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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 {
|
||||||
|
@ -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() {
|
||||||
|
@ -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() {
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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";
|
||||||
|
@ -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
|
||||||
|
@ -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";
|
||||||
|
@ -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";
|
||||||
|
@ -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";
|
||||||
|
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
"exclude": ["node_modules"],
|
"exclude": ["node_modules"],
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"jsx": "preserve"
|
"jsx": "preserve",
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["*"]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
125
web/.eslintrc.js
125
web/.eslintrc.js
@ -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,
|
|
||||||
// },
|
|
||||||
// },
|
|
||||||
// ],
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -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;
|
||||||
|
@ -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>;
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
@ -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 = {
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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 = {
|
||||||
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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>;
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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 = {
|
||||||
|
@ -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>;
|
||||||
|
@ -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>;
|
||||||
|
@ -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 = {
|
||||||
|
@ -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 = {
|
||||||
|
@ -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>;
|
||||||
|
@ -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
Loading…
Reference in New Issue
Block a user