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

@ -1,5 +1 @@
export * from "./access";
export * from "./date";
export * from "./members";
export * from "./project-display-filters";
export * from "./root";

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,21 +1,16 @@
"use client";
import { X } from "lucide-react";
// i18n
// plane imports
import { useTranslation } from "@plane/i18n";
// types
import { TProjectAppliedDisplayFilterKeys, TProjectFilters } from "@plane/types";
// ui
import { EHeaderVariant, Header, Tag, Tooltip } from "@plane/ui";
// components
import { replaceUnderscoreIfSnakeCase } from "@plane/utils";
import {
AppliedAccessFilters,
AppliedDateFilters,
AppliedMembersFilters,
AppliedProjectDisplayFilters,
} from "@/components/project";
// helpers
// local imports
import { AppliedAccessFilters } from "./access";
import { AppliedDateFilters } from "./date";
import { AppliedMembersFilters } from "./members";
import { AppliedProjectDisplayFilters } from "./project-display-filters";
type Props = {
appliedFilters: TProjectFilters;

View file

@ -5,13 +5,18 @@ import { EUserPermissionsLevel, EUserPermissions, PROJECT_TRACKER_ELEMENTS } fro
import { useTranslation } from "@plane/i18n";
import { ContentWrapper } from "@plane/ui";
// components
import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state";
import { ProjectCard } from "@/components/project";
import { ProjectsLoader } from "@/components/ui";
import { ComicBoxButton } from "@/components/empty-state/comic-box-button";
import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root";
import { ProjectsLoader } from "@/components/ui/loader/projects-loader";
import { captureClick } from "@/helpers/event-tracker.helper";
// hooks
import { useCommandPalette, useProject, useProjectFilter, useUserPermissions } from "@/hooks/store";
import { useCommandPalette } from "@/hooks/store/use-command-palette"
import { useProject } from "@/hooks/store/use-project"
import { useProjectFilter } from "@/hooks/store/use-project-filter"
import { useUserPermissions } from "@/hooks/store/user";
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
// local imports
import { ProjectCard } from "./card";
type TProjectCardListProps = {
totalProjectIds?: string[];

View file

@ -24,11 +24,16 @@ import {
import { copyUrlToClipboard, cn, getFileURL, renderFormattedDate } from "@plane/utils";
// components
import { Logo } from "@/components/common/logo";
import { ArchiveRestoreProjectModal, DeleteProjectModal, JoinProjectModal } from "@/components/project";
// hooks
import { useMember, useProject, useUserPermissions } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useProject } from "@/hooks/store/use-project"
import { useUserPermissions } from "@/hooks/store/user";
import { useAppRouter } from "@/hooks/use-app-router";
import { usePlatformOS } from "@/hooks/use-platform-os";
// local imports
import { DeleteProjectModal } from "./delete-project-modal";
import { JoinProjectModal } from "./join-project-modal";
import { ArchiveRestoreProjectModal } from "./settings/archive-project/archive-restore-modal";
type Props = {
project: IProject;

View file

@ -11,7 +11,8 @@ import { IUserLite } from "@plane/types";
// ui
import { Button } from "@plane/ui";
// hooks
import { useProject, useUser } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project"
import { useUser } from "@/hooks/store/user";
type Props = {
data: Partial<IUserLite>;

View file

@ -10,7 +10,7 @@ import { IProject } from "@plane/types";
import { CustomEmojiIconPicker, EmojiIconPickerTypes, Logo } from "@plane/ui";
import { convertHexEmojiToDecimal, getFileURL, getTabIndex } from "@plane/utils";
// components
import { ImagePickerPopover } from "@/components/core";
import { ImagePickerPopover } from "@/components/core/image-picker-popover";
// helpers
// plane web imports
import { ProjectTemplateSelect } from "@/plane-web/components/projects/create/template-select";

View file

@ -13,7 +13,7 @@ import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
// constants
// hooks
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
import { useAppRouter } from "@/hooks/use-app-router";
type DeleteProjectModal = {

View file

@ -4,8 +4,9 @@ import { observer } from "mobx-react";
import { NETWORK_CHOICES } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
// components
import { FilterHeader, FilterOption } from "@/components/issues";
import { ProjectNetworkIcon } from "@/components/project";
import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters";
// local imports
import { ProjectNetworkIcon } from "../../project-network-icon";
type Props = {
appliedFilters: string[] | null;

View file

@ -4,8 +4,8 @@ import { observer } from "mobx-react";
import { PROJECT_CREATED_AT_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

@ -1,5 +1 @@
export * from "./access";
export * from "./created-at";
export * from "./lead";
export * from "./members";
export * from "./root";

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

@ -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,12 +1,17 @@
import { useState } from "react";
import { observer } from "mobx-react";
import { Search, X } from "lucide-react";
import { TProjectDisplayFilters, TProjectFilters } from "@plane/types";
// plane imports
import type { TProjectDisplayFilters, TProjectFilters } from "@plane/types";
// components
import { FilterOption } from "@/components/issues";
import { FilterAccess, FilterCreatedDate, FilterLead, FilterMembers } from "@/components/project";
import { FilterOption } from "@/components/issues/issue-layouts/filters";
// hooks
import { usePlatformOS } from "@/hooks/use-platform-os";
// types
// local imports
import { FilterAccess } from "./access";
import { FilterCreatedDate } from "./created-at";
import { FilterLead } from "./lead";
import { FilterMembers } from "./members";
type Props = {
displayFilters: TProjectDisplayFilters;

View file

@ -1,2 +0,0 @@
export * from "./filters";
export * from "./order-by";

View file

@ -2,18 +2,18 @@ import { useCallback } from "react";
import { observer } from "mobx-react";
import { useParams } from "next/navigation";
import { ListFilter } from "lucide-react";
// i18n
// plane imports
import { useTranslation } from "@plane/i18n";
// plane types
import { TProjectFilters } from "@plane/types";
import { cn, calculateTotalFilters } from "@plane/utils";
// plane utils
// components
import { FiltersDropdown } from "@/components/issues";
import { ProjectFiltersSelection, ProjectOrderByDropdown } from "@/components/project";
// helpers
import { FiltersDropdown } from "@/components/issues/issue-layouts/filters";
// hooks
import { useMember, useProjectFilter } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useProjectFilter } from "@/hooks/store/use-project-filter";
// local imports
import { ProjectOrderByDropdown } from "./dropdowns/order-by";
import { ProjectFiltersSelection } from "./dropdowns/filters";
type Props = {
filterMenuButton?: React.ReactNode;

View file

@ -5,9 +5,8 @@ import { Controller, useForm } from "react-hook-form";
import { Info, Lock } from "lucide-react";
import { NETWORK_CHOICES, PROJECT_TRACKER_ELEMENTS, PROJECT_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
// plane types
// plane imports
import { IProject, IWorkspace } from "@plane/types";
// plane ui
import {
Button,
CustomSelect,
@ -21,17 +20,18 @@ import {
} from "@plane/ui";
import { renderFormattedDate, convertHexEmojiToDecimal, getFileURL } from "@plane/utils";
// components
import { Logo } from "@/components/common";
import { ImagePickerPopover } from "@/components/core";
import { Logo } from "@/components/common/logo";
import { ImagePickerPopover } from "@/components/core/image-picker-popover";
import { TimezoneSelect } from "@/components/global";
import { ProjectNetworkIcon } from "@/components/project";
// helpers
// hooks
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useProject } from "@/hooks/store";
// hooks
import { useProject } from "@/hooks/store/use-project";
import { usePlatformOS } from "@/hooks/use-platform-os";
// services
import { ProjectService } from "@/services/project";
// local imports
import { ProjectNetworkIcon } from "./project-network-icon";
export interface IProjectDetailsForm {
project: IProject;
@ -91,7 +91,7 @@ export const ProjectDetailsForm: FC<IProjectDetailsForm> = (props) => {
const handleUpdateChange = async (payload: Partial<IProject>) => {
if (!workspaceSlug || !project) return;
return updateProject(workspaceSlug.toString(), project.id, payload)
.then((res) => {
.then(() => {
captureSuccess({
eventName: PROJECT_TRACKER_EVENTS.update,
payload: {

View file

@ -9,10 +9,10 @@ import { useTranslation } from "@plane/i18n";
// ui
import { Breadcrumbs, Button, Header } from "@plane/ui";
// components
import { BreadcrumbLink } from "@/components/common";
import { captureClick } from "@/helpers/event-tracker.helper";
import { BreadcrumbLink } from "@/components/common/breadcrumb-link";
// hooks
import { useCommandPalette, useUserPermissions } from "@/hooks/store";
import { useCommandPalette } from "@/hooks/store/use-command-palette"
import { useUserPermissions } from "@/hooks/store/user";
// plane web constants
// components
import HeaderFilters from "./filters";

View file

@ -1,24 +0,0 @@
export * from "./applied-filters";
export * from "./dropdowns";
export * from "./publish-project";
export * from "./settings";
export * from "./card-list";
export * from "./card";
export * from "./create-project-modal";
export * from "./project-feature-update";
export * from "./delete-project-modal";
export * from "./form-loader";
export * from "./form";
export * from "./join-project-modal";
export * from "./leave-project-modal";
export * from "./member-select";
export * from "./integration-card";
export * from "./member-list";
export * from "./member-list-item";
export * from "./project-settings-member-defaults";
export * from "./send-project-invitation-modal";
export * from "./confirm-project-member-remove";
export * from "./multi-select-modal";
export * from "./search-projects";
export * from "./project-network-icon";
export * from "@/plane-web/components/projects/create/root";

View file

@ -8,7 +8,8 @@ import type { IProject } from "@plane/types";
// ui
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";
import { useAppRouter } from "@/hooks/use-app-router";
// type

View file

@ -15,7 +15,7 @@ import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui";
// constants
// hooks
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useUserPermissions } from "@/hooks/store";
import { useUserPermissions } from "@/hooks/store/user";
import { useAppRouter } from "@/hooks/use-app-router";
type FormData = {

View file

@ -4,16 +4,18 @@ import { observer } from "mobx-react";
// plane imports
import { MEMBER_TRACKER_EVENTS } from "@plane/constants";
import { TOAST_TYPE, Table, setToast } from "@plane/ui";
// components
import { ConfirmProjectMemberRemove } from "@/components/project";
// hooks
// helpers
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useMember, useUser, useUserPermissions } from "@/hooks/store";
// hooks
import { useMember } from "@/hooks/store/use-member"
import { useUser, useUserPermissions } from "@/hooks/store/user";
import { useAppRouter } from "@/hooks/use-app-router";
// plane web imports
import { useProjectColumns } from "@/plane-web/components/projects/settings/useProjectColumns";
// store
import { IProjectMemberDetails } from "@/store/member/base-project-member.store";
// local imports
import { ConfirmProjectMemberRemove } from "./confirm-project-member-remove";
type Props = {
memberDetails: (IProjectMemberDetails | null)[];
@ -69,7 +71,7 @@ export const ProjectMemberListItem: React.FC<Props> = observer((props) => {
await removeMemberFromProject(workspaceSlug.toString(), projectId.toString(), memberId).catch((err) =>
setToast({
type: TOAST_TYPE.ERROR,
title: "You cant remove the member from this project yet.",
title: "You can't remove the member from this project yet.",
message: err?.error || "Something went wrong. Please try again.",
})
);

View file

@ -8,10 +8,13 @@ import { EUserPermissions, EUserPermissionsLevel, MEMBER_TRACKER_ELEMENTS } from
import { useTranslation } from "@plane/i18n";
import { Button } from "@plane/ui";
// components
import { ProjectMemberListItem, SendProjectInvitationModal } from "@/components/project";
import { MembersSettingsLoader } from "@/components/ui";
import { MembersSettingsLoader } from "@/components/ui/loader/settings/members";
// hooks
import { useMember, useUserPermissions } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useUserPermissions } from "@/hooks/store/user";
// local imports
import { ProjectMemberListItem } from "./member-list-item";
import { SendProjectInvitationModal } from "./send-project-invitation-modal";
type TProjectMemberListProps = {
projectId: string;

View file

@ -10,7 +10,7 @@ import { Avatar, CustomSearchSelect } from "@plane/ui";
// helpers
import { getFileURL } from "@plane/utils";
// hooks
import { useMember } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member";
type Props = {
value: any;

View file

@ -8,11 +8,11 @@ import { useTranslation } from "@plane/i18n";
import { Button, Checkbox, EModalPosition, EModalWidth, ModalCore } from "@plane/ui";
// components
import { cn } from "@plane/utils";
import { Logo } from "@/components/common";
import { SimpleEmptyState } from "@/components/empty-state";
import { Logo } from "@/components/common/logo";
import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root";
// helpers
// hooks
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path";
type Props = {

View file

@ -7,10 +7,10 @@ import { useTranslation } from "@plane/i18n";
// ui
import { Button, getButtonStyling, Row } from "@plane/ui";
// components
import { Logo } from "@/components/common";
import { ProjectFeaturesList } from "@/components/project/settings";
import { Logo } from "@/components/common/logo";
import { ProjectFeaturesList } from "@/components/project/settings/features-list";
// hooks
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
type Props = {
workspaceSlug: string;

View file

@ -9,12 +9,13 @@ import { EUserPermissions, EUserPermissionsLevel } 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";
import { useProject } from "@/hooks/store/use-project"
import { useUserPermissions } from "@/hooks/store/user";
// local imports
import { MemberSelect } from "./member-select";
const defaultValues: Partial<IProject> = {
project_lead: null,

View file

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

View file

@ -13,7 +13,7 @@ import { Button, Loader, ToggleSwitch, TOAST_TYPE, setToast, CustomSelect, Modal
// helpers
import { copyTextToClipboard } from "@plane/utils";
// hooks
import { useProjectPublish } from "@/hooks/store";
import { useProjectPublish } from "@/hooks/store/use-project-publish";
type Props = {
isOpen: boolean;

View file

@ -3,18 +3,21 @@
import { useCallback, useEffect } from "react";
import { observer } from "mobx-react";
import { useParams, usePathname } from "next/navigation";
// i18n
// plane imports
import { useTranslation } from "@plane/i18n";
import { TProjectAppliedDisplayFilterKeys, TProjectFilters } from "@plane/types";
// components
import { calculateTotalFilters } from "@plane/utils";
// components
import { PageHead } from "@/components/core/page-title";
import { ProjectAppliedFiltersList, ProjectCardList } from "@/components/project";
// helpers
// hooks
import { useProject, useProjectFilter, useWorkspace } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project"
import { useProjectFilter } from "@/hooks/store/use-project-filter"
import { useWorkspace } from "@/hooks/store/use-workspace";
// local imports
import { ProjectAppliedFiltersList } from "./applied-filters";
import { ProjectCardList } from "./card-list";
const Root = observer(() => {
export const ProjectRoot = observer(() => {
const { currentWorkspace } = useWorkspace();
const { workspaceSlug } = useParams();
const pathname = usePathname();
@ -94,5 +97,3 @@ const Root = observer(() => {
</>
);
});
export default Root;

View file

@ -10,7 +10,7 @@ import { useTranslation } from "@plane/i18n";
// helpers
import { cn } from "@plane/utils";
// hooks
import { useProjectFilter } from "@/hooks/store";
import { useProjectFilter } from "@/hooks/store/use-project-filter";
export const ProjectSearch: FC = observer(() => {
// i18n

View file

@ -13,7 +13,8 @@ import { Avatar, Button, CustomSelect, CustomSearchSelect, TOAST_TYPE, setToast
import { getFileURL } from "@plane/utils";
// hooks
import { captureError, captureSuccess } from "@/helpers/event-tracker.helper";
import { useMember, useUserPermissions } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useUserPermissions } from "@/hooks/store/user";
type Props = {
isOpen: boolean;

View file

@ -5,7 +5,7 @@ import { Dialog, Transition } from "@headlessui/react";
// ui
import { Button, TOAST_TYPE, setToast } from "@plane/ui";
// hooks
import { useProject } from "@/hooks/store";
import { useProject } from "@/hooks/store/use-project";
import { useAppRouter } from "@/hooks/use-app-router";
type Props = {

View file

@ -1,2 +0,0 @@
export * from "./selection";
export * from "./archive-restore-modal";

View file

@ -2,17 +2,20 @@
import { FC } from "react";
import { observer } from "mobx-react";
// plane imports
import { PROJECT_TRACKER_ELEMENTS, PROJECT_TRACKER_EVENTS } from "@plane/constants";
import { useTranslation } from "@plane/i18n";
import { IProject } from "@plane/types";
import { ToggleSwitch, Tooltip, setPromiseToast } from "@plane/ui";
// hooks
import { SettingsHeading } from "@/components/settings";
// components
import { SettingsHeading } from "@/components/settings/heading";
// helpers
import { captureSuccess } from "@/helpers/event-tracker.helper";
import { useProject, useUser } from "@/hooks/store";
// plane web components
import { UpgradeBadge } from "@/plane-web/components/workspace";
// plane web constants
// hooks
import { useProject } from "@/hooks/store/use-project"
import { useUser } from "@/hooks/store/user";
// plane web imports
import { UpgradeBadge } from "@/plane-web/components/workspace/upgrade-badge";
import { PROJECT_FEATURES_LIST } from "@/plane-web/constants/project/settings";
type Props = {

View file

@ -1,3 +0,0 @@
export * from "./delete-project-section";
export * from "./features-list";
export * from "./archive-project";

View file

@ -9,7 +9,8 @@ import { EUserProjectRoles, IUser, IWorkspaceMember, TProjectMembership } from "
import { CustomMenu, CustomSelect, TOAST_TYPE, setToast } from "@plane/ui";
import { getFileURL } from "@plane/utils";
// hooks
import { useMember, useUser, useUserPermissions } from "@/hooks/store";
import { useMember } from "@/hooks/store/use-member"
import { useUser, useUserPermissions } from "@/hooks/store/user";
export interface RowData extends Pick<TProjectMembership, "original_role"> {
member: IWorkspaceMember;