mirror of
https://github.com/makeplane/plane
synced 2025-08-07 19:59:33 +00:00
Compare commits
1 Commits
fix-lint
...
fix-moved-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f8b62ec1c |
@@ -35,3 +35,4 @@ export * from "./settings";
|
||||
export * from "./icon";
|
||||
export * from "./estimates";
|
||||
export * from "./analytics";
|
||||
export * from "./fetch-keys";
|
||||
|
||||
@@ -4,12 +4,16 @@ import { observer } from "mobx-react";
|
||||
import { useParams, usePathname } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
// components
|
||||
import { PROFILE_VIEWER_TAB, PROFILE_ADMINS_TAB, EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
||||
import {
|
||||
PROFILE_VIEWER_TAB,
|
||||
PROFILE_ADMINS_TAB,
|
||||
EUserPermissions,
|
||||
EUserPermissionsLevel,
|
||||
USER_PROFILE_PROJECT_SEGREGATION,
|
||||
} from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
import { AppHeader, ContentWrapper } from "@/components/core";
|
||||
import { ProfileSidebar } from "@/components/profile";
|
||||
// constants
|
||||
import { USER_PROFILE_PROJECT_SEGREGATION } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useUserPermissions } from "@/hooks/store";
|
||||
import useSize from "@/hooks/use-window-size";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
// types
|
||||
import { GROUP_CHOICES } from "@plane/constants";
|
||||
import { GROUP_CHOICES, USER_PROFILE_DATA } from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
import { IUserStateDistribution, TStateGroups } from "@plane/types";
|
||||
// components
|
||||
@@ -16,8 +16,6 @@ import {
|
||||
ProfileStats,
|
||||
ProfileWorkload,
|
||||
} from "@/components/profile";
|
||||
// constants
|
||||
import { USER_PROFILE_DATA } from "@/constants/fetch-keys";
|
||||
// services
|
||||
import { UserService } from "@/services/user.service";
|
||||
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
import { observer } from "mobx-react";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
// constants
|
||||
import { ISSUE_DETAILS } from "@plane/constants";
|
||||
// ui
|
||||
import { ArchiveIcon, Breadcrumbs, LayersIcon, Header } from "@plane/ui";
|
||||
// components
|
||||
import { BreadcrumbLink } from "@/components/common";
|
||||
import { IssueDetailQuickActions } from "@/components/issues";
|
||||
// constants
|
||||
import { ISSUE_DETAILS } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useProject } from "@/hooks/store";
|
||||
// plane web
|
||||
|
||||
@@ -2,15 +2,14 @@
|
||||
import { observer } from "mobx-react";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
// constants
|
||||
import { EUserPermissions, EUserPermissionsLevel, APP_INTEGRATIONS } from "@plane/constants";
|
||||
// components
|
||||
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
||||
import { NotAuthorizedView } from "@/components/auth-screens";
|
||||
import { PageHead } from "@/components/core";
|
||||
import { SingleIntegrationCard } from "@/components/integration";
|
||||
import { SettingsContentWrapper } from "@/components/settings";
|
||||
import { IntegrationAndImportExportBanner, IntegrationsSettingsLoader } from "@/components/ui";
|
||||
// constants
|
||||
import { APP_INTEGRATIONS } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useUserPermissions, useWorkspace } from "@/hooks/store";
|
||||
// services
|
||||
|
||||
@@ -4,6 +4,7 @@ import React, { useState } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import useSWR from "swr";
|
||||
// plane imports
|
||||
import { API_TOKENS_LIST } from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
// component
|
||||
import { APITokenService } from "@plane/services";
|
||||
@@ -12,7 +13,6 @@ import { PageHead } from "@/components/core";
|
||||
import { DetailedEmptyState } from "@/components/empty-state";
|
||||
import { SettingsHeading } from "@/components/settings";
|
||||
import { APITokenSettingsLoader } from "@/components/ui";
|
||||
import { API_TOKENS_LIST } from "@/constants/fetch-keys";
|
||||
// store hooks
|
||||
import { useWorkspace } from "@/hooks/store";
|
||||
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
|
||||
|
||||
@@ -9,7 +9,7 @@ import { useTheme } from "next-themes";
|
||||
import useSWR, { mutate } from "swr";
|
||||
import { CheckCircle2 } from "lucide-react";
|
||||
// plane imports
|
||||
import { ROLE, MEMBER_ACCEPTED, EUserPermissions } from "@plane/constants";
|
||||
import { ROLE, MEMBER_ACCEPTED, EUserPermissions, USER_WORKSPACES_LIST } from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
// types
|
||||
import type { IWorkspaceMemberInvitation } from "@plane/types";
|
||||
@@ -19,7 +19,6 @@ import { truncateText, getUserRole } from "@plane/utils";
|
||||
// components
|
||||
import { EmptyState } from "@/components/common";
|
||||
import { WorkspaceLogo } from "@/components/workspace/logo";
|
||||
import { USER_WORKSPACES_LIST } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
// hooks
|
||||
import { useEventTracker, useUser, useUserProfile, useWorkspace } from "@/hooks/store";
|
||||
|
||||
@@ -4,15 +4,13 @@ import { useEffect, useState } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import useSWR from "swr";
|
||||
// types
|
||||
import { USER_ONBOARDING_COMPLETED } from "@plane/constants";
|
||||
import { USER_ONBOARDING_COMPLETED, USER_WORKSPACES_LIST } from "@plane/constants";
|
||||
import { TOnboardingSteps, TUserProfile } from "@plane/types";
|
||||
// ui
|
||||
import { TOAST_TYPE, setToast } from "@plane/ui";
|
||||
// components
|
||||
import { LogoSpinner } from "@/components/common";
|
||||
import { InviteMembers, CreateOrJoinWorkspaces, ProfileSetup } from "@/components/onboarding";
|
||||
// constants
|
||||
import { USER_WORKSPACES_LIST } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
import { EPageTypes } from "@/helpers/authentication.helper";
|
||||
// hooks
|
||||
|
||||
@@ -5,11 +5,11 @@ import { observer } from "mobx-react";
|
||||
import { useSearchParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
import { Boxes, Check, Share2, Star, User2, X } from "lucide-react";
|
||||
// constants
|
||||
import { WORKSPACE_INVITATION } from "@plane/constants";
|
||||
// components
|
||||
import { LogoSpinner } from "@/components/common";
|
||||
import { EmptySpace, EmptySpaceItem } from "@/components/ui/empty-space";
|
||||
// constants
|
||||
import { WORKSPACE_INVITATION } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
import { EPageTypes } from "@/helpers/authentication.helper";
|
||||
// hooks
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
|
||||
import { useState, FC } from "react";
|
||||
import { mutate } from "swr";
|
||||
// types
|
||||
// constants
|
||||
import { API_TOKENS_LIST } from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
import { APITokenService } from "@plane/services";
|
||||
import { IApiToken } from "@plane/types";
|
||||
// ui
|
||||
import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui";
|
||||
// fetch-keys
|
||||
import { API_TOKENS_LIST } from "@/constants/fetch-keys";
|
||||
|
||||
type Props = {
|
||||
isOpen: boolean;
|
||||
|
||||
@@ -2,16 +2,17 @@
|
||||
|
||||
import React, { useState } from "react";
|
||||
import { mutate } from "swr";
|
||||
// types
|
||||
// constants
|
||||
import { API_TOKENS_LIST } from "@plane/constants";
|
||||
// services
|
||||
import { APITokenService } from "@plane/services";
|
||||
// types
|
||||
import { IApiToken } from "@plane/types";
|
||||
// ui
|
||||
import { EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui";
|
||||
import { renderFormattedDate, csvDownload } from "@plane/utils";
|
||||
// components
|
||||
import { CreateApiTokenForm, GeneratedTokenDetails } from "@/components/api-token";
|
||||
// fetch-keys
|
||||
import { API_TOKENS_LIST } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
// services
|
||||
|
||||
|
||||
@@ -2,9 +2,8 @@ import { useCallback } from "react";
|
||||
import isEqual from "lodash/isEqual";
|
||||
import { useRouter } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
import { EIssueFilterType, EIssuesStoreType } from "@plane/constants";
|
||||
import { EIssueFilterType, EIssuesStoreType, CYCLE_ISSUES_WITH_PARAMS } from "@plane/constants";
|
||||
import { IIssueFilterOptions } from "@plane/types";
|
||||
import { CYCLE_ISSUES_WITH_PARAMS } from "@/constants/fetch-keys";
|
||||
import { useCycle, useIssues } from "@/hooks/store";
|
||||
|
||||
interface IActiveCycleDetails {
|
||||
|
||||
@@ -4,7 +4,7 @@ import { useState } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { useParams, useSearchParams } from "next/navigation";
|
||||
import { mutate } from "swr";
|
||||
import { EXPORT_SERVICES_LIST } from "@/constants/fetch-keys";
|
||||
import { EXPORT_SERVICES_LIST } from "@plane/constants";
|
||||
import { ExportForm } from "./export-form";
|
||||
import { PrevExports } from "./prev-exports";
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@ import { useEffect, useState } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import useSWR, { mutate } from "swr";
|
||||
import { MoveLeft, MoveRight, RefreshCw } from "lucide-react";
|
||||
import { EXPORT_SERVICES_LIST } from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
import { IExportData } from "@plane/types";
|
||||
import { Table } from "@plane/ui";
|
||||
import { EXPORT_SERVICES_LIST } from "@/constants/fetch-keys";
|
||||
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
|
||||
import { IntegrationService } from "@/services/integrations";
|
||||
import { DetailedEmptyState } from "../empty-state";
|
||||
|
||||
@@ -9,15 +9,12 @@ import { mutate } from "swr";
|
||||
// headless ui
|
||||
import { AlertTriangle } from "lucide-react";
|
||||
import { Dialog, Transition } from "@headlessui/react";
|
||||
// services
|
||||
// constants
|
||||
import { IMPORTER_SERVICES_LIST } from "@plane/constants";
|
||||
import { IUser, IImporterService } from "@plane/types";
|
||||
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
|
||||
import { IMPORTER_SERVICES_LIST } from "@/constants/fetch-keys";
|
||||
// services
|
||||
import { IntegrationService } from "@/services/integrations/integration.service";
|
||||
// ui
|
||||
// icons
|
||||
// types
|
||||
// fetch-keys
|
||||
|
||||
type Props = {
|
||||
isOpen: boolean;
|
||||
|
||||
@@ -7,13 +7,12 @@ import { useParams } from "next/navigation";
|
||||
// react-hook-form
|
||||
import { UseFormSetValue } from "react-hook-form";
|
||||
import useSWR from "swr";
|
||||
// services
|
||||
// constants
|
||||
import { GITHUB_REPOSITORY_INFO } from "@plane/constants";
|
||||
// ui
|
||||
import { Button, Loader } from "@plane/ui";
|
||||
// types
|
||||
import { IUserDetails, TFormValues, TIntegrationSteps } from "@/components/integration";
|
||||
// fetch-keys
|
||||
import { GITHUB_REPOSITORY_INFO } from "@/constants/fetch-keys";
|
||||
import { GithubIntegrationService } from "@/services/integrations";
|
||||
|
||||
type Props = {
|
||||
|
||||
@@ -7,6 +7,8 @@ import { useParams, useSearchParams } from "next/navigation";
|
||||
import { useForm } from "react-hook-form";
|
||||
import useSWR, { mutate } from "swr";
|
||||
import { ArrowLeft, Check, List, Settings, UploadCloud, Users } from "lucide-react";
|
||||
// constants
|
||||
import { APP_INTEGRATIONS, IMPORTER_SERVICES_LIST, WORKSPACE_INTEGRATIONS } from "@plane/constants";
|
||||
// types
|
||||
import { IGithubRepoCollaborator, IGithubServiceImportFormData } from "@plane/types";
|
||||
// ui
|
||||
@@ -19,8 +21,6 @@ import {
|
||||
GithubImportUsers,
|
||||
GithubImportConfirm,
|
||||
} from "@/components/integration";
|
||||
// fetch keys
|
||||
import { APP_INTEGRATIONS, IMPORTER_SERVICES_LIST, WORKSPACE_INTEGRATIONS } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useAppRouter } from "@/hooks/use-app-router";
|
||||
// images
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
// constants
|
||||
import { WORKSPACE_MEMBERS } from "@plane/constants";
|
||||
// plane types
|
||||
import { IGithubRepoCollaborator } from "@plane/types";
|
||||
// plane ui
|
||||
import { Avatar, CustomSelect, CustomSearchSelect, Input } from "@plane/ui";
|
||||
// constants
|
||||
import { getFileURL } from "@plane/utils";
|
||||
import { WORKSPACE_MEMBERS } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
// plane web services
|
||||
import { WorkspaceService } from "@/plane-web/services";
|
||||
|
||||
@@ -9,7 +9,7 @@ import useSWR, { mutate } from "swr";
|
||||
// icons
|
||||
import { RefreshCw } from "lucide-react";
|
||||
// plane imports
|
||||
import { IMPORTERS_LIST } from "@plane/constants";
|
||||
import { IMPORTERS_LIST, IMPORTER_SERVICES_LIST } from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
// types
|
||||
import { IImporterService } from "@plane/types";
|
||||
@@ -18,8 +18,7 @@ import { Button } from "@plane/ui";
|
||||
// components
|
||||
import { DeleteImportModal, GithubImporterRoot, JiraImporterRoot, SingleImport } from "@/components/integration";
|
||||
import { ImportExportSettingsLoader } from "@/components/ui";
|
||||
// constants
|
||||
import { IMPORTER_SERVICES_LIST } from "@/constants/fetch-keys";
|
||||
|
||||
// hooks
|
||||
import { useUser } from "@/hooks/store";
|
||||
// assets
|
||||
|
||||
@@ -4,13 +4,13 @@ import { FC } from "react";
|
||||
import { useParams } from "next/navigation";
|
||||
import { useFormContext, useFieldArray, Controller } from "react-hook-form";
|
||||
import useSWR from "swr";
|
||||
// constants
|
||||
import { WORKSPACE_MEMBERS } from "@plane/constants";
|
||||
// plane types
|
||||
import { IJiraImporterForm } from "@plane/types";
|
||||
// plane ui
|
||||
import { Avatar, CustomSelect, CustomSearchSelect, Input, ToggleSwitch } from "@plane/ui";
|
||||
// constants
|
||||
import { getFileURL } from "@plane/utils";
|
||||
import { WORKSPACE_MEMBERS } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
// plane web services
|
||||
import { WorkspaceService } from "@/plane-web/services";
|
||||
|
||||
@@ -8,13 +8,13 @@ import { useParams } from "next/navigation";
|
||||
// swr
|
||||
import { useFormContext, Controller } from "react-hook-form";
|
||||
import useSWR from "swr";
|
||||
import { JIRA_IMPORTER_DETAIL } from "@plane/constants";
|
||||
import { IJiraImporterForm, IJiraMetadata } from "@plane/types";
|
||||
|
||||
// react hook form
|
||||
|
||||
// services
|
||||
import { ToggleSwitch, Spinner } from "@plane/ui";
|
||||
import { JIRA_IMPORTER_DETAIL } from "@/constants/fetch-keys";
|
||||
import { JiraImporterService } from "@/services/integrations";
|
||||
|
||||
// fetch keys
|
||||
|
||||
@@ -8,12 +8,12 @@ import { FormProvider, useForm } from "react-hook-form";
|
||||
import { mutate } from "swr";
|
||||
// icons
|
||||
import { ArrowLeft, Check, List, Settings, Users } from "lucide-react";
|
||||
// constants
|
||||
import { IMPORTER_SERVICES_LIST } from "@plane/constants";
|
||||
// types
|
||||
import { IJiraImporterForm } from "@plane/types";
|
||||
// ui
|
||||
import { Button } from "@plane/ui";
|
||||
// fetch keys
|
||||
import { IMPORTER_SERVICES_LIST } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useAppRouter } from "@/hooks/use-app-router";
|
||||
// assets
|
||||
|
||||
@@ -6,12 +6,11 @@ import Image from "next/image";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR, { mutate } from "swr";
|
||||
import { CheckCircle } from "lucide-react";
|
||||
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
||||
// constants
|
||||
import { EUserPermissions, EUserPermissionsLevel, WORKSPACE_INTEGRATIONS } from "@plane/constants";
|
||||
import { IAppIntegration, IWorkspaceIntegration } from "@plane/types";
|
||||
// ui
|
||||
import { Button, Loader, Tooltip, TOAST_TYPE, setToast } from "@plane/ui";
|
||||
// constants
|
||||
import { WORKSPACE_INTEGRATIONS } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useInstance, useUserPermissions } from "@/hooks/store";
|
||||
import useIntegrationPopup from "@/hooks/use-integration-popup";
|
||||
|
||||
@@ -4,12 +4,12 @@ import { useState, useEffect } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR, { mutate } from "swr";
|
||||
// constants
|
||||
import { SLACK_CHANNEL_INFO } from "@plane/constants";
|
||||
// types
|
||||
import { IWorkspaceIntegration, ISlackIntegration } from "@plane/types";
|
||||
// ui
|
||||
import { Loader } from "@plane/ui";
|
||||
// fetch-keys
|
||||
import { SLACK_CHANNEL_INFO } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useInstance } from "@/hooks/store";
|
||||
import useIntegrationPopup from "@/hooks/use-integration-popup";
|
||||
|
||||
@@ -4,13 +4,13 @@ import Link from "next/link";
|
||||
import useSWR from "swr";
|
||||
// icons
|
||||
import { History, MessageSquare } from "lucide-react";
|
||||
// constants
|
||||
import { USER_ACTIVITY } from "@plane/constants";
|
||||
import { calculateTimeAgo, getFileURL } from "@plane/utils";
|
||||
// hooks
|
||||
import { ActivityIcon, ActivityMessage, IssueLink } from "@/components/core";
|
||||
import { ActivityIcon, ActivityMessage } from "@/components/core";
|
||||
import { RichTextReadOnlyEditor } from "@/components/editor/rich-text-editor/rich-text-read-only-editor";
|
||||
import { ActivitySettingsLoader } from "@/components/ui";
|
||||
// constants
|
||||
import { USER_ACTIVITY } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
// hooks
|
||||
import { useUser } from "@/hooks/store";
|
||||
|
||||
@@ -2,7 +2,7 @@ import { useEffect } from "react";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
// services
|
||||
import { USER_PROFILE_ACTIVITY } from "@/constants/fetch-keys";
|
||||
import { USER_PROFILE_ACTIVITY } from "@plane/constants";
|
||||
import { UserService } from "@/services/user.service";
|
||||
// components
|
||||
import { ActivityList } from "./activity-list";
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
import { observer } from "mobx-react";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR from "swr";
|
||||
// constants
|
||||
import { USER_PROFILE_ACTIVITY } from "@plane/constants";
|
||||
// ui
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
import { Loader, Card } from "@plane/ui";
|
||||
@@ -10,9 +12,6 @@ import { calculateTimeAgo, getFileURL } from "@plane/utils";
|
||||
// components
|
||||
import { ActivityMessage, IssueLink } from "@/components/core";
|
||||
import { ProfileEmptyState } from "@/components/ui";
|
||||
// constants
|
||||
import { USER_PROFILE_ACTIVITY } from "@/constants/fetch-keys";
|
||||
// helpers
|
||||
// hooks
|
||||
import { useUser } from "@/hooks/store";
|
||||
// assets
|
||||
@@ -63,7 +62,9 @@ export const ProfileActivity = observer(() => {
|
||||
<div className="-mt-1 w-4/5 break-words">
|
||||
<p className="inline text-sm text-custom-text-200">
|
||||
<span className="font-medium text-custom-text-100">
|
||||
{currentUser?.id === activity.actor_detail?.id ? "You" : activity.actor_detail?.display_name}{" "}
|
||||
{currentUser?.id === activity.actor_detail?.id
|
||||
? "You"
|
||||
: activity.actor_detail?.display_name}{" "}
|
||||
</span>
|
||||
{activity.field ? (
|
||||
<ActivityMessage activity={activity} showIssue />
|
||||
|
||||
@@ -4,13 +4,13 @@ import React from "react";
|
||||
import Image from "next/image";
|
||||
import { useParams } from "next/navigation";
|
||||
import useSWR, { mutate } from "swr";
|
||||
// constants
|
||||
import { PROJECT_GITHUB_REPOSITORY } from "@plane/constants";
|
||||
import { IWorkspaceIntegration } from "@plane/types";
|
||||
// ui
|
||||
import { TOAST_TYPE, setToast } from "@plane/ui";
|
||||
// components
|
||||
import { SelectRepository, SelectChannel } from "@/components/integration";
|
||||
// constants
|
||||
import { PROJECT_GITHUB_REPOSITORY } from "@/constants/fetch-keys";
|
||||
// icons
|
||||
import GithubLogo from "@/public/logos/github-square.png";
|
||||
import SlackLogo from "@/public/services/slack.png";
|
||||
|
||||
@@ -5,14 +5,12 @@ import { observer } from "mobx-react";
|
||||
import { Controller, useForm } from "react-hook-form";
|
||||
import useSWR from "swr";
|
||||
// plane imports
|
||||
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
|
||||
import { EUserPermissions, EUserPermissionsLevel, PROJECT_MEMBERS } from "@plane/constants";
|
||||
import { useTranslation } from "@plane/i18n";
|
||||
import { IProject, IUserLite, IWorkspace } from "@plane/types";
|
||||
import { Loader, TOAST_TYPE, ToggleSwitch, setToast } from "@plane/ui";
|
||||
// components
|
||||
import { MemberSelect } from "@/components/project";
|
||||
// constants
|
||||
import { PROJECT_MEMBERS } from "@/constants/fetch-keys";
|
||||
// hooks
|
||||
import { useProject, useUserPermissions } from "@/hooks/store";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user