refactor: remove barrel exports from web app (#7577)

* refactor: remove barrel exports from some compoennt modules

* refactor: remove barrel exports from issue components

* refactor: remove barrel exports from page components

* chore: update type improts

* refactor: remove barrel exports from cycle components

* refactor: remove barrel exports from dropdown components

* refactor: remove barrel exports from ce  components

* refactor: remove barrel exports from some more components

* refactor: remove barrel exports from profile and sidebar components

* chore: update type imports

* refactor: remove barrel exports from store hooks

* chore: dynamically load sticky editor

* fix: lint

* chore: revert sticky dynamic import

* refactor: remove barrel exports from ce issue components

* refactor: remove barrel exports from ce issue components

* refactor: remove barrel exports from ce issue components

---------

Co-authored-by: sriramveeraghanta <veeraghanta.sriram@gmail.com>
This commit is contained in:
Aaryan Khandelwal 2025-08-15 13:10:26 +05:30 committed by GitHub
parent 9cf564caae
commit 3391e8580c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
1103 changed files with 3036 additions and 3286 deletions

View file

@ -4,7 +4,7 @@ import useSWR from "swr";
import { useTranslation } from "@plane/i18n";
import { IWorkspaceMemberInvitation } from "@plane/types";
// components
import { LogoSpinner } from "@/components/common";
import { LogoSpinner } from "@/components/common/logo-spinner";
import { WorkspaceLogo } from "@/components/workspace/logo";
// helpers
import { EAuthModes, EAuthSteps } from "@/helpers/authentication.helper";

View file

@ -11,8 +11,6 @@ import GithubLightLogo from "/public/logos/github-black.png";
import GithubDarkLogo from "/public/logos/github-dark.svg";
import GitlabLogo from "/public/logos/gitlab-logo.svg";
import GoogleLogo from "/public/logos/google-logo.svg";
// components
import { AuthHeader, AuthBanner, TermsAndConditions } from "@/components/account";
// helpers
import {
EAuthModes,
@ -23,8 +21,11 @@ import {
authErrorHandler,
} from "@/helpers/authentication.helper";
// hooks
import { useInstance } from "@/hooks/store";
// services
import { useInstance } from "@/hooks/store/use-instance";
// local imports
import { TermsAndConditions } from "../terms-and-conditions";
import { AuthBanner } from "./auth-banner";
import { AuthHeader } from "./auth-header";
import { AuthFormRoot } from "./form-root";
type TAuthRoot = {

View file

@ -1,2 +0,0 @@
export * from "./container";
export * from "./header";

View file

@ -18,7 +18,8 @@ import useTimer from "@/hooks/use-timer";
// services
import { AuthService } from "@/services/auth.service";
// local components
import { FormContainer, AuthFormHeader } from "./common";
import { FormContainer } from "./common/container";
import { AuthFormHeader } from "./common/header";
type TForgotPasswordFormValues = {
email: string;

View file

@ -1,14 +1 @@
export * from "./auth-root";
export * from "./auth-header";
export * from "./auth-banner";
export * from "./email";
export * from "./forgot-password-popover";
export * from "./password";
export * from "./unique-code";
export * from "./common";
export * from "./forgot-password";
export * from "./reset-password";
export * from "./set-password";

View file

@ -11,7 +11,7 @@ import { useTranslation } from "@plane/i18n";
import { Button, Input, PasswordStrengthIndicator, Spinner } from "@plane/ui";
import { getPasswordStrength } from "@plane/utils";
// components
import { ForgotPasswordPopover } from "@/components/account";
import { ForgotPasswordPopover } from "@/components/account/auth-forms/forgot-password-popover";
// constants
// helpers
import { EAuthModes, EAuthSteps } from "@/helpers/authentication.helper";

View file

@ -11,7 +11,6 @@ import { useTranslation } from "@plane/i18n";
import { Button, Input, PasswordStrengthIndicator } from "@plane/ui";
// components
import { getPasswordStrength } from "@plane/utils";
import { AuthBanner, FormContainer, AuthFormHeader } from "@/components/account";
// helpers
import {
EAuthenticationErrorCodes,
@ -19,7 +18,12 @@ import {
TAuthErrorInfo,
authErrorHandler,
} from "@/helpers/authentication.helper";
// services
import { AuthService } from "@/services/auth.service";
// local imports
import { AuthBanner } from "./auth-banner";
import { FormContainer } from "./common/container";
import { AuthFormHeader } from "./common/header";
type TResetPasswordFormValues = {
email: string;

View file

@ -14,12 +14,13 @@ import { getPasswordStrength } from "@plane/utils";
// helpers
import { captureError, captureSuccess, captureView } from "@/helpers/event-tracker.helper";
// hooks
import { useUser } from "@/hooks/store";
import { useUser } from "@/hooks/store/user";
import { useAppRouter } from "@/hooks/use-app-router";
// services
import { AuthService } from "@/services/auth.service";
// local components
import { AuthFormHeader, FormContainer } from "..";
import { FormContainer } from "./common/container";
import { AuthFormHeader } from "./common/header";
type TResetPasswordFormValues = {
email: string;

View file

@ -9,7 +9,7 @@ import { useTranslation } from "@plane/i18n";
import { Button, TOAST_TYPE, setToast } from "@plane/ui";
// hooks
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useUser } from "@/hooks/store";
import { useUser } from "@/hooks/store/user";
import { useAppRouter } from "@/hooks/use-app-router";
type Props = {

View file

@ -1,3 +0,0 @@
export * from "./auth-forms";
export * from "./deactivate-account-modal";
export * from "./terms-and-conditions";

View file

@ -1,7 +1,7 @@
// plane web components
import { observer } from "mobx-react";
// hooks
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
import { useAnalytics } from "@/hooks/store/use-analytics";
// components
import DurationDropdown from "./select/duration";

View file

@ -1 +0,0 @@
export * from "./overview/root";

View file

@ -3,7 +3,7 @@ import { Briefcase } from "lucide-react";
import { Logo } from "@plane/ui";
import { cn } from "@plane/utils";
// plane web hooks
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
type Props = {
project: {

View file

@ -6,7 +6,8 @@ import useSWR from "swr";
import { useTranslation } from "@plane/i18n";
import { Loader } from "@plane/ui";
// plane web hooks
import { useAnalytics, useProject } from "@/hooks/store";
import { useAnalytics } from "@/hooks/store/use-analytics"
import { useProject } from "@/hooks/store/use-project";
// plane web components
import AnalyticsSectionWrapper from "../analytics-section-wrapper";
import ActiveProjectItem from "./active-project-item";

View file

@ -5,7 +5,7 @@ import { Briefcase } from "lucide-react";
// plane package imports
import { CustomSearchSelect, Logo } from "@plane/ui";
// hooks
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
type Props = {
value: string[] | undefined;

View file

@ -8,7 +8,7 @@ import { ChartYAxisMetric } from "@plane/types";
// plane package imports
import { CustomSelect } from "@plane/ui";
// hooks
import { useProjectEstimates } from "@/hooks/store";
import { useProjectEstimates } from "@/hooks/store/estimates";
// plane web constants
type Props = {
value: ChartYAxisMetric;

View file

@ -5,7 +5,7 @@ import { Tab } from "@headlessui/react";
import { ICycle, IModule, IProject } from "@plane/types";
import { Spinner } from "@plane/ui";
// hooks
import { useAnalytics } from "@/hooks/store";
import { useAnalytics } from "@/hooks/store/use-analytics";
// plane web components
import TotalInsights from "../../total-insights";
import CreatedVsResolved from "../created-vs-resolved";

View file

@ -4,7 +4,7 @@ import { observer } from "mobx-react";
import { createPortal } from "react-dom";
import { ICycle, IModule, IProject } from "@plane/types";
import { cn } from "@plane/utils";
import { useAnalytics } from "@/hooks/store";
import { useAnalytics } from "@/hooks/store/use-analytics";
// plane web components
import { WorkItemsModalMainContent } from "./content";
import { WorkItemsModalHeader } from "./header";

View file

@ -20,7 +20,7 @@ import { TBarItem, TChart, TChartDatum, ChartXAxisProperty, ChartYAxisMetric } f
import { Button } from "@plane/ui";
import { generateExtendedColors, parseChartData } from "@/components/chart/utils";
// hooks
import { useProjectState } from "@/hooks/store";
import { useProjectState } from "@/hooks/store/use-project-state";
import { useAnalytics } from "@/hooks/store/use-analytics";
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
import { AnalyticsService } from "@/services/analytics.service";

View file

@ -1,4 +0,0 @@
export * from "./modal";
export * from "./delete-token-modal";
export * from "./empty-state";
export * from "./token-list-item";

View file

@ -2,20 +2,19 @@
import React, { useState } from "react";
import { mutate } from "swr";
// types
// plane imports
import { PROFILE_SETTINGS_TRACKER_EVENTS } from "@plane/constants";
import { APITokenService } from "@plane/services";
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
// constants
import { API_TOKENS_LIST } from "@/constants/fetch-keys";
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
// helpers
// services
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
// local imports
import { CreateApiTokenForm } from "./form";
import { GeneratedTokenDetails } from "./generated-token-details";
type Props = {
isOpen: boolean;

View file

@ -11,7 +11,7 @@ import { IApiToken } from "@plane/types";
import { Button, CustomSelect, Input, TextArea, ToggleSwitch, TOAST_TYPE, setToast } from "@plane/ui";
import { cn, renderFormattedDate, renderFormattedTime } from "@plane/utils";
// components
import { DateDropdown } from "@/components/dropdowns";
import { DateDropdown } from "@/components/dropdowns/date";
// helpers
type Props = {
handleClose: () => void;

View file

@ -1,3 +0,0 @@
export * from "./create-token-modal";
export * from "./form";
export * from "./generated-token-details";

View file

@ -2,16 +2,15 @@
import { useState } from "react";
import { XCircle } from "lucide-react";
// plane imports
import { PROFILE_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants";
import { IApiToken } from "@plane/types";
// components
import { Tooltip } from "@plane/ui";
import { renderFormattedDate, calculateTimeAgo, renderFormattedTime } from "@plane/utils";
import { DeleteApiTokenModal } from "@/components/api-token";
// components
import { DeleteApiTokenModal } from "@/components/api-token/delete-token-modal";
// hooks
import { usePlatformOS } from "@/hooks/use-platform-os";
// ui
// helpers
// types
type Props = {
token: IApiToken;

View file

@ -5,7 +5,7 @@ import { useParams, usePathname } from "next/navigation";
// types
import { IProject } from "@plane/types";
// hooks
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
const ARCHIVES_TAB_LIST: {
key: string;

View file

@ -1,6 +1,6 @@
"use client";
import React from "react";
import { AuthRoot } from "@/components/account";
import { AuthRoot } from "@/components/account/auth-forms/auth-root";
import { EAuthModes } from "@/helpers/authentication.helper";
import { AuthFooter } from "./footer";
import { AuthHeader } from "./header";

View file

@ -8,7 +8,7 @@ import { useTranslation } from "@plane/i18n";
import { PlaneLockup } from "@plane/ui";
import { PageHead } from "@/components/core/page-title";
import { EAuthModes } from "@/helpers/authentication.helper";
import { useInstance } from "@/hooks/store";
import { useInstance } from "@/hooks/store/use-instance";
const authContentMap = {
[EAuthModes.SIGN_IN]: {

View file

@ -1,5 +0,0 @@
export * from "./project";
export * from "./workspace";
export * from "./not-authorized-view";
export * from "./header";
export * from "./auth-base";

View file

@ -1 +0,0 @@
export * from "./join-project";

View file

@ -6,7 +6,8 @@ import { ClipboardList } from "lucide-react";
// plane imports
import { Button } from "@plane/ui";
// hooks
import { useProject, useUserPermissions } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project"
import { useUserPermissions } from "@/hooks/store/user";
// assets
import Unauthorized from "@/public/auth/unauthorized.svg";

View file

@ -1 +0,0 @@
export * from "./not-a-member";

View file

@ -21,7 +21,8 @@ import { SelectMonthModal } from "@/components/automation";
// constants
// hooks
import { captureElementAndEvent } from "@/helpers/event-tracker.helper";
import { useProject, useUserPermissions } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project"
import { useUserPermissions } from "@/hooks/store/user";
type Props = {
handleChange: (formData: Partial<IProject>) => Promise<void>;

View file

@ -23,7 +23,9 @@ import { SelectMonthModal } from "@/components/automation";
// constants
// hooks
import { captureElementAndEvent } from "@/helpers/event-tracker.helper";
import { useProject, useProjectState, useUserPermissions } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project"
import { useProjectState } from "@/hooks/store/use-project-state"
import { useUserPermissions } from "@/hooks/store/user";
type Props = {
handleChange: (formData: Partial<IProject>) => Promise<void>;

View file

@ -5,7 +5,8 @@ import { FileText, GithubIcon, MessageSquare, Rocket } from "lucide-react";
// ui
import { DiscordIcon } from "@plane/ui";
// hooks
import { useCommandPalette, useTransient } from "@/hooks/store";
import { useCommandPalette } from "@/hooks/store/use-command-palette"
import { useTransient } from "@/hooks/store/use-transient";
type Props = {
closePalette: () => void;

View file

@ -10,7 +10,9 @@ import { DoubleCircleIcon, TOAST_TYPE, setToast } from "@plane/ui";
// helpers
import { copyTextToClipboard } from "@plane/utils";
// hooks
import { useCommandPalette, useIssueDetail, useUser } from "@/hooks/store";
import { useCommandPalette } from "@/hooks/store/use-command-palette"
import { useIssueDetail } from "@/hooks/store/use-issue-detail"
import { useUser } from "@/hooks/store/user";
type Props = {
closePalette: () => void;

View file

@ -11,7 +11,8 @@ import { Avatar } from "@plane/ui";
// helpers
import { getFileURL } from "@plane/utils";
// hooks
import { useIssueDetail, useMember } from "@/hooks/store";
import { useIssueDetail } from "@/hooks/store/use-issue-detail"
import { useMember } from "@/hooks/store/use-member";
type Props = { closePalette: () => void; issue: TIssue };

View file

@ -10,7 +10,7 @@ import { ISSUE_PRIORITIES } from "@plane/constants";
import { EIssueServiceType, TIssue, TIssuePriorities } from "@plane/types";
// mobx store
import { PriorityIcon } from "@plane/ui";
import { useIssueDetail } from "@/hooks/store";
import { useIssueDetail } from "@/hooks/store/use-issue-detail";
// ui
// types
// constants

View file

@ -5,7 +5,7 @@ import { useParams } from "next/navigation";
// plane imports
import { EIssueServiceType, TIssue } from "@plane/types";
// store hooks
import { useIssueDetail } from "@/hooks/store";
import { useIssueDetail } from "@/hooks/store/use-issue-detail";
// plane web imports
import { ChangeWorkItemStateList } from "@/plane-web/components/command-palette/actions/work-item-actions";

View file

@ -11,7 +11,7 @@ import {
} from "@plane/constants";
import { DiceIcon } from "@plane/ui";
// hooks
import { useCommandPalette } from "@/hooks/store";
import { useCommandPalette } from "@/hooks/store/use-command-palette";
// ui
type Props = {

View file

@ -10,7 +10,7 @@ import { THEME_OPTIONS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { TOAST_TYPE, setToast } from "@plane/ui";
// hooks
import { useUserProfile } from "@/hooks/store";
import { useUserProfile } from "@/hooks/store/user";
type Props = {
closePalette: () => void;

View file

@ -9,7 +9,7 @@ import { useTranslation } from "@plane/i18n";
// components
import { SettingIcon } from "@/components/icons";
// hooks
import { useUserPermissions } from "@/hooks/store";
import { useUserPermissions } from "@/hooks/store/user";
import { useAppRouter } from "@/hooks/use-app-router";
// plane wev constants
// plane web helpers

View file

@ -31,17 +31,20 @@ import {
CommandPaletteThemeActions,
CommandPaletteWorkspaceSettingsActions,
} from "@/components/command-palette";
import { SimpleEmptyState } from "@/components/empty-state";
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// helpers
// hooks
import { captureClick } from "@/helpers/event-tracker.helper";
import { useCommandPalette, useIssueDetail, useProject, useUser, useUserPermissions } from "@/hooks/store";
import { useCommandPalette } from "@/hooks/store/use-command-palette";
import { useIssueDetail } from "@/hooks/store/use-issue-detail";
import { useProject } from "@/hooks/store/use-project";
import { useUser, useUserPermissions } from "@/hooks/store/user";
import { useAppRouter } from "@/hooks/use-app-router";
import useDebounce from "@/hooks/use-debounce";
import { usePlatformOS } from "@/hooks/use-platform-os";
// plane web components
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
import { IssueIdentifier } from "@/plane-web/components/issues";
import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier";
// plane web services
import { WorkspaceService } from "@/plane-web/services";

View file

@ -13,7 +13,10 @@ import { CommandModal, ShortcutsModal } from "@/components/command-palette";
// helpers
// hooks
import { captureClick } from "@/helpers/event-tracker.helper";
import { useUser, useAppTheme, useCommandPalette, useUserPermissions, useIssueDetail } from "@/hooks/store";
import { useUser, useUserPermissions } from "@/hooks/store/user"
import { useAppTheme } from "@/hooks/store/use-app-theme"
import { useCommandPalette } from "@/hooks/store/use-command-palette"
import { useIssueDetail } from "@/hooks/store/use-issue-detail";
import { usePlatformOS } from "@/hooks/use-platform-os";
// plane web components
import {

View file

@ -7,7 +7,7 @@ import type { EditorRefApi } from "@plane/editor";
import type { TCommentsOperations, TIssueComment } from "@plane/types";
import { isCommentEmpty } from "@plane/utils";
// components
import { LiteTextEditor } from "@/components/editor";
import { LiteTextEditor } from "@/components/editor/lite-text";
type Props = {
activityOperations: TCommentsOperations;

View file

@ -1,19 +1,15 @@
import { FC, useRef, useState } from "react";
import { observer } from "mobx-react";
import { useForm, Controller } from "react-hook-form";
// plane constants
// plane imports
import { EIssueCommentAccessSpecifier } from "@plane/constants";
// plane editor
import { EditorRefApi } from "@plane/editor";
// plane types
import { TIssueComment, TCommentsOperations } from "@plane/types";
import type { EditorRefApi } from "@plane/editor";
import type { TIssueComment, TCommentsOperations } from "@plane/types";
import { cn, isCommentEmpty } from "@plane/utils";
// components
import { LiteTextEditor } from "@/components/editor";
// constants
// helpers
import { LiteTextEditor } from "@/components/editor/lite-text";
// hooks
import { useWorkspace } from "@/hooks/store";
import { useWorkspace } from "@/hooks/store/use-workspace";
// services
import { FileService } from "@/services/file.service";

View file

@ -2,14 +2,14 @@
import { FC } from "react";
import { observer } from "mobx-react";
// Plane
// plane imports
import { TCommentsOperations, TIssueComment } from "@plane/types";
import { Tooltip } from "@plane/ui";
// components
import { cn } from "@plane/utils";
import { ReactionSelector } from "@/components/issues";
// helpers
import { renderEmoji } from "@/helpers/emoji.helper";
// local imports
import { ReactionSelector } from "../issues/issue-detail/reactions";
export type TProps = {
comment: TIssueComment;

View file

@ -10,7 +10,7 @@ import type { TIssueComment, TCommentsOperations } from "@plane/types";
import { CustomMenu, TContextMenuItem } from "@plane/ui";
import { cn } from "@plane/utils";
// hooks
import { useUser } from "@/hooks/store";
import { useUser } from "@/hooks/store/user";
type TCommentCard = {
activityOperations: TCommentsOperations;

View file

@ -1 +0,0 @@
export * from "./activity-item";

View file

@ -4,7 +4,8 @@ import Link from "next/link";
// types
import { TWorkspaceBaseActivity } from "@plane/types";
// store hooks
import { useMember, useWorkspace } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useWorkspace } from "@/hooks/store/use-workspace";
type TUser = {
activity: TWorkspaceBaseActivity;

View file

@ -1,2 +0,0 @@
export * from "./date";
export * from "./members";

View file

@ -7,7 +7,7 @@ import { Avatar } from "@plane/ui";
// helpers
import { getFileURL } from "@plane/utils";
// types
import { useMember } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member";
type Props = {
handleRemove: (val: string) => void;

View file

@ -1,11 +1,11 @@
import React, { useState } from "react";
import { observer } from "mobx-react";
// plane constants
// plane imports
import { DATE_BEFORE_FILTER_OPTIONS } from "@plane/constants";
import { isInDateFormat } from "@plane/utils";
import { DateFilterModal } from "@/components/core";
import { FilterHeader, FilterOption } from "@/components/issues";
// helpers
// components
import { DateFilterModal } from "@/components/core/filters/date-filter-modal";
import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters";
type Props = {
appliedFilters: string[] | null;

View file

@ -7,10 +7,11 @@ import { observer } from "mobx-react";
import { Avatar, Loader } from "@plane/ui";
// components
import { getFileURL } from "@plane/utils";
import { FilterHeader, FilterOption } from "@/components/issues";
import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters";
// helpers
// hooks
import { useMember, useUser } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useUser } from "@/hooks/store/user";
type Props = {
appliedFilters: string[] | null;

View file

@ -1,2 +0,0 @@
export * from "./created-at";
export * from "./created-by";

View file

@ -1,10 +0,0 @@
export * from "./empty-state";
export * from "./latest-feature-block";
export * from "./breadcrumb-link";
export * from "./logo-spinner";
export * from "./logo";
export * from "./pro-icon";
export * from "./count-chip";
export * from "./activity";
export * from "./switcher-label";
export * from "./page-access-icon";

View file

@ -24,7 +24,7 @@ import { IIssueActivity } from "@plane/types";
import { Tooltip, BlockedIcon, BlockerIcon, RelatedIcon, LayersIcon, DiceIcon, Intake, EpicIcon } from "@plane/ui";
import { renderFormattedDate, generateWorkItemLink, capitalizeFirstLetter } from "@plane/utils";
// helpers
import { useLabel } from "@/hooks/store";
import { useLabel } from "@/hooks/store/use-label";
import { usePlatformOS } from "@/hooks/use-platform-os";
// types

View file

@ -5,7 +5,7 @@ import { TDescriptionVersion } from "@plane/types";
import { Avatar, CustomMenu } from "@plane/ui";
import { calculateTimeAgo, getFileURL } from "@plane/utils";
// hooks
import { useMember } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member";
type Props = {
onClick: (versionId: string) => void;

View file

@ -6,7 +6,7 @@ import { TDescriptionVersion } from "@plane/types";
import { CustomMenu } from "@plane/ui";
import { calculateTimeAgo } from "@plane/utils";
// hooks
import { useMember } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member";
// local imports
import { DescriptionVersionsDropdownItem } from "./dropdown-item";
import { TDescriptionVersionEntityInformation } from "./root";

View file

@ -19,9 +19,10 @@ import {
} from "@plane/ui";
import { calculateTimeAgo, cn, copyTextToClipboard, getFileURL } from "@plane/utils";
// components
import { RichTextEditor } from "@/components/editor";
import { RichTextEditor } from "@/components/editor/rich-text";
// hooks
import { useMember, useWorkspace } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member";
import { useWorkspace } from "@/hooks/store/use-workspace";
type Props = {
activeVersionDescription: string | undefined;

View file

@ -1,2 +0,0 @@
export * from "./date-filter-modal";
export * from "./date-filter-select";

View file

@ -1,10 +0,0 @@
export * from "./filters";
export * from "./modals";
export * from "./multiple-select";
export * from "./sidebar";
export * from "./activity";
export * from "./theme";
export * from "./image-picker-popover";
export * from "./page-title";
export * from "./app-header";
export * from "./content-wrapper";

View file

@ -3,7 +3,7 @@ import { Combobox } from "@headlessui/react";
// hooks
import { ISearchIssueResponse } from "@plane/types";
// plane web hooks
import { IssueIdentifier } from "@/plane-web/components/issues";
import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier";
interface Props {
issue: ISearchIssueResponse;

View file

@ -11,9 +11,9 @@ import { useTranslation } from "@plane/i18n";
import { EIssuesStoreType, ISearchIssueResponse, IUser } from "@plane/types";
import { Button, Loader, TOAST_TYPE, setToast } from "@plane/ui";
// components
import { SimpleEmptyState } from "@/components/empty-state";
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// hooks
import { useIssues } from "@/hooks/store";
import { useIssues } from "@/hooks/store/use-issues";
import useDebounce from "@/hooks/use-debounce";
// services
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";

View file

@ -15,7 +15,7 @@ import { generateWorkItemLink, getTabIndex } from "@plane/utils";
import useDebounce from "@/hooks/use-debounce";
import { usePlatformOS } from "@/hooks/use-platform-os";
// plane web components
import { IssueIdentifier } from "@/plane-web/components/issues";
import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier";
// services
import { ProjectService } from "@/services/project";
// components

View file

@ -10,7 +10,7 @@ import { Popover, Transition } from "@headlessui/react";
import type { EditorRefApi } from "@plane/editor";
import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
// components
import { RichTextEditor } from "@/components/editor";
import { RichTextEditor } from "@/components/editor/rich-text";
// services
import { AIService } from "@/services/ai.service";
const aiService = new AIService();

View file

@ -1,6 +0,0 @@
export * from "./bulk-delete-issues-modal";
export * from "./existing-issues-list-modal";
export * from "./gpt-assistant-popover";
export * from "./user-image-upload-modal";
export * from "./workspace-image-upload-modal";
export * from "./issue-search-modal-empty-state";

View file

@ -3,7 +3,7 @@ import React from "react";
import { useTranslation } from "@plane/i18n";
import { ISearchIssueResponse } from "@plane/types";
// components
import { SimpleEmptyState } from "@/components/empty-state";
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
interface EmptyStateProps {

View file

@ -12,7 +12,7 @@ import { Button, TOAST_TYPE, setToast } from "@plane/ui";
import { getAssetIdFromUrl, getFileURL, checkURLValidity } from "@plane/utils";
// helpers
// hooks
import { useWorkspace } from "@/hooks/store";
import { useWorkspace } from "@/hooks/store/use-workspace";
// services
import { FileService } from "@/services/file.service";

View file

@ -1,2 +0,0 @@
export * from "./single-progress-stats";
export * from "./sidebar-menu-hamburger-toggle";

View file

@ -2,7 +2,7 @@
import { observer } from "mobx-react";
import { PanelRight } from "lucide-react";
import { useAppTheme } from "@/hooks/store";
import { useAppTheme } from "@/hooks/store/use-app-theme";
export const SidebarHamburgerToggle = observer(() => {
// store hooks

View file

@ -11,7 +11,7 @@ import { IUserTheme } from "@plane/types";
import { Button, InputColorPicker, setPromiseToast } from "@plane/ui";
// hooks
import { captureElementAndEvent } from "@/helpers/event-tracker.helper";
import { useUserProfile } from "@/hooks/store";
import { useUserProfile } from "@/hooks/store/user";
type TCustomThemeSelector = {
applyThemeChange: (theme: Partial<IUserTheme>) => void;

View file

@ -1,3 +0,0 @@
export * from "./color-picker-input";
export * from "./custom-theme-selector";
export * from "./theme-switch";

View file

@ -13,17 +13,18 @@ import { EIssuesStoreType, ICycle, IIssueFilterOptions } from "@plane/types";
import { Tooltip, Loader, PriorityIcon, Avatar } from "@plane/ui";
import { cn, renderFormattedDate, renderFormattedDateWithoutYear, getFileURL } from "@plane/utils";
// components
import { SingleProgressStats } from "@/components/core";
import { StateDropdown } from "@/components/dropdowns";
import { SimpleEmptyState } from "@/components/empty-state";
import { SingleProgressStats } from "@/components/core/sidebar/single-progress-stats";
import { StateDropdown } from "@/components/dropdowns/state/dropdown";
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// helpers
// hooks
import { useIssueDetail, useIssues } from "@/hooks/store";
import { useIssueDetail } from "@/hooks/store/use-issue-detail";
import { useIssues } from "@/hooks/store/use-issues";
import { useIntersectionObserver } from "@/hooks/use-intersection-observer";
import useLocalStorage from "@/hooks/use-local-storage";
// plane web components
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
import { IssueIdentifier } from "@/plane-web/components/issues";
import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier";
// store
import { ActiveCycleIssueDetails } from "@/store/issue/cycle";

View file

@ -1,3 +0,0 @@
export * from "./cycle-stats";
export * from "./productivity";
export * from "./progress";

View file

@ -7,9 +7,9 @@ import { ICycle, TCycleEstimateType } from "@plane/types";
import { Loader } from "@plane/ui";
// components
import ProgressChart from "@/components/core/sidebar/progress-chart";
import { SimpleEmptyState } from "@/components/empty-state";
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// constants
import { useCycle } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle";
// plane web constants
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
import { EstimateTypeDropdown } from "../dropdowns/estimate-type-dropdown";

View file

@ -8,9 +8,9 @@ import { useTranslation } from "@plane/i18n";
import { ICycle, IIssueFilterOptions } from "@plane/types";
import { LinearProgressIndicator, Loader } from "@plane/ui";
// components
import { SimpleEmptyState } from "@/components/empty-state";
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// hooks
import { useProjectState } from "@/hooks/store";
import { useProjectState } from "@/hooks/store/use-project-state";
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
export type ActiveCycleProgressProps = {

View file

@ -5,7 +5,8 @@ import useSWR from "swr";
import { EIssueFilterType } from "@plane/constants";
import { EIssuesStoreType, IIssueFilterOptions } from "@plane/types";
import { CYCLE_ISSUES_WITH_PARAMS } from "@/constants/fetch-keys";
import { useCycle, useIssues } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle"
import { useIssues } from "@/hooks/store/use-issues";
interface IActiveCycleDetails {
workspaceSlug: string;

View file

@ -1,5 +1 @@
export * from "./root";
export * from "./issue-progress";
export * from "./progress-stats";
export * from "./sidebar-header";
export * from "./sidebar-details";

View file

@ -7,18 +7,18 @@ import { observer } from "mobx-react";
import { useSearchParams } from "next/navigation";
import { ChevronUp, ChevronDown } from "lucide-react";
import { Disclosure, Transition } from "@headlessui/react";
// plane imports
import { EIssueFilterType } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { EIssuesStoreType, ICycle, IIssueFilterOptions, TCyclePlotType, TProgressSnapshot } from "@plane/types";
// components
import { getDate } from "@plane/utils";
import { CycleProgressStats } from "@/components/cycles";
// constants
// helpers
// hooks
import { useIssues, useCycle } from "@/hooks/store";
import { useIssues } from "@/hooks/store/use-issues"
import { useCycle } from "@/hooks/store/use-cycle";
// plane web components
import { SidebarChartRoot } from "@/plane-web/components/cycles";
// local imports
import { CycleProgressStats } from "./progress-stats";
type TCycleAnalyticsProgress = {
workspaceSlug: string;

View file

@ -4,6 +4,7 @@ import { FC } from "react";
import { observer } from "mobx-react";
import Image from "next/image";
import { Tab } from "@headlessui/react";
// plane imports
import { useTranslation } from "@plane/i18n";
import {
IIssueFilterOptions,
@ -16,10 +17,9 @@ import {
import { Avatar, StateGroupIcon } from "@plane/ui";
import { cn, getFileURL } from "@plane/utils";
// components
import { SingleProgressStats } from "@/components/core";
// helpers
import { SingleProgressStats } from "@/components/core/sidebar/single-progress-stats";
// hooks
import { useProjectState } from "@/hooks/store";
import { useProjectState } from "@/hooks/store/use-project-state";
import useLocalStorage from "@/hooks/use-local-storage";
// public
import emptyLabel from "@/public/empty-state/empty_label.svg";

View file

@ -2,12 +2,13 @@
import React from "react";
import { observer } from "mobx-react";
// ui
// plane imports
import { Loader } from "@plane/ui";
// components
import { CycleAnalyticsProgress, CycleSidebarHeader, CycleSidebarDetails } from "@/components/cycles";
// hooks
// local imports
import useCyclesDetails from "../active-cycle/use-cycles-details";
import { CycleAnalyticsProgress } from "./issue-progress";
import { CycleSidebarDetails } from "./sidebar-details";
import { CycleSidebarHeader } from "./sidebar-header";
type Props = {
handleClose: () => void;

View file

@ -12,7 +12,8 @@ import { Avatar, AvatarGroup, TextArea } from "@plane/ui";
// helpers
import { getFileURL } from "@plane/utils";
// hooks
import { useMember, useProjectEstimates } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useProjectEstimates } from "@/hooks/store/estimates";
// plane web constants
type Props = {

View file

@ -17,10 +17,11 @@ import { ICycle } from "@plane/types";
import { setToast, TOAST_TYPE } from "@plane/ui";
import { getDate, renderFormattedPayloadDate } from "@plane/utils";
// components
import { DateRangeDropdown } from "@/components/dropdowns";
import { DateRangeDropdown } from "@/components/dropdowns/date-range";
// hooks
import { captureElementAndEvent } from "@/helpers/event-tracker.helper";
import { useCycle, useUserPermissions } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle"
import { useUserPermissions } from "@/hooks/store/user";
import { useTimeZoneConverter } from "@/hooks/use-timezone-converter";
// services
import { CycleService } from "@/services/cycle.service";

View file

@ -1,3 +1 @@
export * from "./date";
export * from "./root";
export * from "./status";

View file

@ -1,18 +1,16 @@
import { observer } from "mobx-react";
import { X } from "lucide-react";
// plane imports
import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { TCycleFilters } from "@plane/types";
// hooks
import { Tag } from "@plane/ui";
import { replaceUnderscoreIfSnakeCase } from "@plane/utils";
import { AppliedDateFilters, AppliedStatusFilters } from "@/components/cycles";
import { useUserPermissions } from "@/hooks/store";
// components
// helpers
// types
// constants
// hooks
import { useUserPermissions } from "@/hooks/store/user";
// local imports
import { AppliedDateFilters } from "./date";
import { AppliedStatusFilters } from "./status";
type Props = {
appliedFilters: TCycleFilters;

View file

@ -10,11 +10,11 @@ import type { TCycleFilters } from "@plane/types";
import { cn, calculateTotalFilters } from "@plane/utils";
// components
import { ArchiveTabsList } from "@/components/archives";
import { CycleFiltersSelection } from "@/components/cycles";
import { FiltersDropdown } from "@/components/issues";
// helpers
import { FiltersDropdown } from "@/components/issues/issue-layouts/filters";
// hooks
import { useCycleFilter } from "@/hooks/store";
import { useCycleFilter } from "@/hooks/store/use-cycle-filter";
// local imports
import { CycleFiltersSelection } from "../dropdowns";
export const ArchivedCyclesHeader: FC = observer(() => {
// router

View file

@ -1,4 +1 @@
export * from "./root";
export * from "./view";
export * from "./header";
export * from "./modal";

View file

@ -7,7 +7,7 @@ import { CYCLE_TRACKER_EVENTS } from "@plane/constants";
import { Button, TOAST_TYPE, setToast } from "@plane/ui";
// hooks
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useCycle } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle";
import { useAppRouter } from "@/hooks/use-app-router";
type Props = {

View file

@ -5,15 +5,17 @@ import useSWR from "swr";
// plane imports
import { useTranslation } from "@plane/i18n";
import { TCycleFilters } from "@plane/types";
// components
import { calculateTotalFilters } from "@plane/utils";
import { ArchivedCyclesView, CycleAppliedFiltersList } from "@/components/cycles";
import { DetailedEmptyState } from "@/components/empty-state";
import { CycleModuleListLayout } from "@/components/ui";
// helpers
// components
import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root";
import { CycleModuleListLayoutLoader } from "@/components/ui/loader/cycle-module-list-loader";
// hooks
import { useCycle, useCycleFilter } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle"
import { useCycleFilter } from "@/hooks/store/use-cycle-filter";
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
// local imports
import { CycleAppliedFiltersList } from "../applied-filters";
import { ArchivedCyclesView } from "./view";
export const ArchivedCycleLayoutRoot: React.FC = observer(() => {
// router
@ -51,7 +53,7 @@ export const ArchivedCycleLayoutRoot: React.FC = observer(() => {
if (!workspaceSlug || !projectId) return <></>;
if (loader || !currentProjectArchivedCycleIds) {
return <CycleModuleListLayout />;
return <CycleModuleListLayoutLoader />;
}
return (

View file

@ -2,11 +2,12 @@ import { FC } from "react";
import { observer } from "mobx-react";
import Image from "next/image";
// components
import { CyclesList } from "@/components/cycles";
import { CyclesList } from "@/components/cycles/list";
// ui
import { CycleModuleListLayout } from "@/components/ui";
import { CycleModuleListLayoutLoader } from "@/components/ui/loader/cycle-module-list-loader";
// hooks
import { useCycle, useCycleFilter } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle"
import { useCycleFilter } from "@/hooks/store/use-cycle-filter";
// assets
import AllFiltersImage from "@/public/empty-state/cycle/all-filters.svg";
import NameFilterImage from "@/public/empty-state/cycle/name-filter.svg";
@ -24,7 +25,7 @@ export const ArchivedCyclesView: FC<IArchivedCyclesView> = observer((props) => {
// derived values
const filteredArchivedCycleIds = getFilteredArchivedCycleIds(projectId);
if (loader || !filteredArchivedCycleIds) return <CycleModuleListLayout />;
if (loader || !filteredArchivedCycleIds) return <CycleModuleListLayoutLoader />;
if (filteredArchivedCycleIds.length === 0)
return (

View file

@ -3,10 +3,10 @@ import { observer } from "mobx-react";
import { usePathname, useSearchParams } from "next/navigation";
// hooks
import { generateQueryParams } from "@plane/utils";
import { useCycle } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle";
import { useAppRouter } from "@/hooks/use-app-router";
// components
import { CycleDetailsSidebar } from "./";
import { CycleDetailsSidebar } from "./analytics-sidebar";
type Props = {
projectId?: string;

View file

@ -9,11 +9,11 @@ import { useTranslation } from "@plane/i18n";
import { TCycleFilters } from "@plane/types";
import { cn, calculateTotalFilters } from "@plane/utils";
// components
import { CycleFiltersSelection } from "@/components/cycles";
import { FiltersDropdown } from "@/components/issues";
// helpers
import { FiltersDropdown } from "@/components/issues/issue-layouts/filters";
// hooks
import { useCycleFilter } from "@/hooks/store";
import { useCycleFilter } from "@/hooks/store/use-cycle-filter";
// local imports
import { CycleFiltersSelection } from "./dropdowns";
type Props = {
projectId: string;

View file

@ -3,11 +3,12 @@ import { observer } from "mobx-react";
import Image from "next/image";
// components
import { useTranslation } from "@plane/i18n";
import { CyclesList } from "@/components/cycles";
import { CyclesList } from "@/components/cycles/list";
// ui
import { CycleModuleListLayout } from "@/components/ui";
import { CycleModuleListLayoutLoader } from "@/components/ui/loader/cycle-module-list-loader";
// hooks
import { useCycle, useCycleFilter } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle"
import { useCycleFilter } from "@/hooks/store/use-cycle-filter";
// assets
import AllFiltersImage from "@/public/empty-state/cycle/all-filters.svg";
import NameFilterImage from "@/public/empty-state/cycle/name-filter.svg";
@ -30,7 +31,7 @@ export const CyclesView: FC<ICyclesView> = observer((props) => {
(cycleId) => cycleId !== currentProjectActiveCycleId
);
if (loader || !filteredCycleIds) return <CycleModuleListLayout />;
if (loader || !filteredCycleIds) return <CycleModuleListLayoutLoader />;
if (filteredCycleIds.length === 0 && filteredCompletedCycleIds?.length === 0)
return (

View file

@ -12,7 +12,7 @@ import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui";
// helpers
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
// hooks
import { useCycle } from "@/hooks/store";
import { useCycle } from "@/hooks/store/use-cycle";
import { useAppRouter } from "@/hooks/use-app-router";
interface ICycleDelete {

View file

@ -2,8 +2,10 @@ import React from "react";
import { observer } from "mobx-react";
import { EEstimateSystem, TCycleEstimateType } from "@plane/types";
import { CustomSelect } from "@plane/ui";
import { useCycle, useProjectEstimates } from "@/hooks/store";
import { cycleEstimateOptions } from "../analytics-sidebar";
import { useCycle } from "@/hooks/store/use-cycle"
import { useProjectEstimates } from "@/hooks/store/estimates";
// local imports
import { cycleEstimateOptions } from "../analytics-sidebar/issue-progress";
type TProps = {
value: TCycleEstimateType;

View file

@ -1,13 +1,11 @@
import React, { useState } from "react";
import { observer } from "mobx-react";
// constants
// plane imports
import { DATE_AFTER_FILTER_OPTIONS } from "@plane/constants";
// components
import { isInDateFormat } from "@plane/utils";
import { DateFilterModal } from "@/components/core";
import { FilterHeader, FilterOption } from "@/components/issues";
// helpers
// components
import { DateFilterModal } from "@/components/core/filters/date-filter-modal";
import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters";
type Props = {
appliedFilters: string[] | null;

View file

@ -1,11 +1,14 @@
import { useState } from "react";
import { observer } from "mobx-react";
import { Search, X } from "lucide-react";
// plane imports
import { TCycleFilters, TCycleGroups } from "@plane/types";
// components
import { FilterEndDate, FilterStartDate, FilterStatus } from "@/components/cycles";
// hooks
import { usePlatformOS } from "@/hooks/use-platform-os";
// types
// local imports
import { FilterEndDate } from "./end-date";
import { FilterStartDate } from "./start-date";
import { FilterStatus } from "./status";
type Props = {
filters: TCycleFilters;

View file

@ -4,8 +4,8 @@ import { observer } from "mobx-react";
import { DATE_AFTER_FILTER_OPTIONS } from "@plane/constants";
// components
import { isInDateFormat } from "@plane/utils";
import { DateFilterModal } from "@/components/core";
import { FilterHeader, FilterOption } from "@/components/issues";
import { DateFilterModal } from "@/components/core/filters/date-filter-modal";
import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters";
// helpers

View file

@ -4,7 +4,7 @@ import { CYCLE_STATUS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { TCycleGroups } from "@plane/types";
// components
import { FilterHeader, FilterOption } from "@/components/issues";
import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters";
// types
// constants

View file

@ -11,7 +11,8 @@ import { ICycle } from "@plane/types";
import { Button, Input, TextArea } from "@plane/ui";
import { getDate, renderFormattedPayloadDate, getTabIndex } from "@plane/utils";
// components
import { DateRangeDropdown, ProjectDropdown } from "@/components/dropdowns";
import { DateRangeDropdown } from "@/components/dropdowns/date-range";
import { ProjectDropdown } from "@/components/dropdowns/project/dropdown";
// hooks
import { useUser } from "@/hooks/store/user/user-user";

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