diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx index cd91d1c28..aaa7f6e51 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx @@ -4,9 +4,10 @@ import { observer } from "mobx-react"; // plane imports import { SIDEBAR_WIDTH } from "@plane/constants"; import { useLocalStorage } from "@plane/hooks"; +// components +import { ResizableSidebar } from "@/components/sidebar/resizable-sidebar"; // hooks -import { ResizableSidebar } from "@/components/sidebar"; -import { useAppTheme } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; import { useAppRail } from "@/hooks/use-app-rail"; // local imports import { ExtendedAppSidebar } from "./extended-sidebar"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/header.tsx index 92ed6b736..6215ec328 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/header.tsx @@ -4,9 +4,9 @@ import { useTranslation } from "@plane/i18n"; // ui import { Breadcrumbs, ContrastIcon, Header } from "@plane/ui"; // components -import { BreadcrumbLink } from "@/components/common"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; // plane web components -import { UpgradeBadge } from "@/plane-web/components/workspace"; +import { UpgradeBadge } from "@/plane-web/components/workspace/upgrade-badge"; export const WorkspaceActiveCycleHeader = observer(() => { const { t } = useTranslation(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/layout.tsx index cfe3ed842..1ee1b3c3d 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/layout.tsx @@ -1,6 +1,9 @@ "use client"; -import { AppHeader, ContentWrapper } from "@/components/core"; +// components +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; +// local imports import { WorkspaceActiveCycleHeader } from "./header"; export default function WorkspaceActiveCycleLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/page.tsx index f1b389383..3b3e82c8f 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/active-cycles/page.tsx @@ -2,9 +2,9 @@ import { observer } from "mobx-react"; // components -import { PageHead } from "@/components/core"; +import { PageHead } from "@/components/core/page-title"; // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane web components import { WorkspaceActiveCyclesRoot } from "@/plane-web/components/active-cycles"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/layout.tsx index 3a531a7b2..29d4a54e6 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/layout.tsx @@ -1,6 +1,7 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { WorkspaceAnalyticsHeader } from "./header"; export default function WorkspaceAnalyticsTabLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx index 829ebdec7..f75edf89e 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/analytics/[tabId]/page.tsx @@ -9,11 +9,15 @@ import { useTranslation } from "@plane/i18n"; import { type TabItem, Tabs } from "@plane/ui"; // components import AnalyticsFilterActions from "@/components/analytics/analytics-filter-actions"; -import { PageHead } from "@/components/core"; -import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; +import { PageHead } from "@/components/core/page-title"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useProject, useUserPermissions, useWorkspace } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; +import { useProject } from "@/hooks/store/use-project"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import { getAnalyticsTabs } from "@/plane-web/components/analytics/tabs"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx index 2899b0621..0e030e214 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/header.tsx @@ -6,10 +6,11 @@ import { useParams } from "next/navigation"; import { EProjectFeatureKey } from "@plane/constants"; import { Breadcrumbs, Header } from "@plane/ui"; // components -import { BreadcrumbLink } from "@/components/common"; -import { IssueDetailQuickActions } from "@/components/issues"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; +import { IssueDetailQuickActions } from "@/components/issues/issue-detail/issue-detail-quick-actions"; // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/layout.tsx index d2ccb109b..f4cac6177 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectIssueDetailsHeader } from "./header"; export default function ProjectIssueDetailsLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/page.tsx index 63c6aa2b7..48e40685f 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/browse/[workItem]/page.tsx @@ -10,11 +10,13 @@ import { useTranslation } from "@plane/i18n"; import { EIssueServiceType } from "@plane/types"; import { Loader } from "@plane/ui"; // components -import { EmptyState } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { IssueDetailRoot } from "@/components/issues"; +import { EmptyState } from "@/components/common/empty-state"; +import { PageHead } from "@/components/core/page-title"; +import { IssueDetailRoot } from "@/components/issues/issue-detail"; // hooks -import { useAppTheme, useIssueDetail, useProject } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useProject } from "@/hooks/store/use-project"; // assets import { useAppRouter } from "@/hooks/use-app-router"; import { useWorkItemProperties } from "@/plane-web/hooks/use-issue-properties"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx index 84f60e9fc..5190dc74f 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/header.tsx @@ -9,11 +9,14 @@ import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType } from "@plane/types"; import { Breadcrumbs, Button, Header } from "@plane/ui"; // components -import { BreadcrumbLink, CountChip } from "@/components/common"; -import { CreateUpdateIssueModal } from "@/components/issues"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; +import { CountChip } from "@/components/common/count-chip"; +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; // hooks -import { useProject, useUserPermissions, useWorkspaceDraftIssues } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user" +import { useWorkspaceDraftIssues } from "@/hooks/store/workspace-draft"; export const WorkspaceDraftHeader = observer(() => { // state diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/layout.tsx index a5a647bfd..7629f6ed3 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/layout.tsx @@ -1,6 +1,9 @@ "use client"; -import { AppHeader, ContentWrapper } from "@/components/core"; +// components +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; +// local imports import { WorkspaceDraftHeader } from "./header"; export default function WorkspaceDraftLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/page.tsx index f94fc872a..93c9b79ce 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/drafts/page.tsx @@ -2,7 +2,7 @@ import { useParams } from "next/navigation"; // components -import { PageHead } from "@/components/core"; +import { PageHead } from "@/components/core/page-title"; import { WorkspaceDraftIssuesRoot } from "@/components/issues/workspace-draft"; const WorkspaceDraftPage = () => { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx index ac3e3262a..b8e4cbd03 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-project-sidebar.tsx @@ -10,10 +10,12 @@ import { useTranslation } from "@plane/i18n"; import { setToast, TOAST_TYPE, Tooltip } from "@plane/ui"; import { copyUrlToClipboard, orderJoinedProjects } from "@plane/utils"; // components -import { CreateProjectModal } from "@/components/project"; -import { SidebarProjectsListItem } from "@/components/workspace"; +import { CreateProjectModal } from "@/components/project/create-project-modal"; +import { SidebarProjectsListItem } from "@/components/workspace/sidebar/projects-list-item"; // hooks -import { useAppTheme, useProject, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; import { TProject } from "@/plane-web/types"; import { ExtendedSidebarWrapper } from "./extended-sidebar-wrapper"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx index 6af0e0b24..e6f2d92d3 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/extended-sidebar.tsx @@ -7,9 +7,10 @@ import { useParams } from "next/navigation"; import { WORKSPACE_SIDEBAR_DYNAMIC_NAVIGATION_ITEMS_LINKS } from "@plane/constants"; import { EUserWorkspaceRoles } from "@plane/types"; // hooks -import { useAppTheme, useWorkspace } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane-web imports -import { ExtendedSidebarItem } from "@/plane-web/components/workspace/sidebar"; +import { ExtendedSidebarItem } from "@/plane-web/components/workspace/sidebar/extended-sidebar-item"; import { ExtendedSidebarWrapper } from "./extended-sidebar-wrapper"; export const ExtendedAppSidebar = observer(() => { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx index 0664a945c..938b45854 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/header.tsx @@ -12,7 +12,7 @@ import { GITHUB_REDIRECTED_TRACKER_EVENT, HEADER_GITHUB_ICON } from "@plane/cons import { useTranslation } from "@plane/i18n"; import { Breadcrumbs, Button, Header } from "@plane/ui"; // components -import { BreadcrumbLink } from "@/components/common"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; // constants // hooks import { captureElementAndEvent } from "@/helpers/event-tracker.helper"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/layout.tsx index 35408c491..3b4866849 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/layout.tsx @@ -1,7 +1,7 @@ "use client"; import { CommandPalette } from "@/components/command-palette"; -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; // plane web components import { WorkspaceAuthWrapper } from "@/plane-web/layouts/workspace-wrapper"; import { ProjectAppSidebar } from "./_sidebar"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/layout.tsx index e3d730363..f8fd3a0f4 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/layout.tsx @@ -1,7 +1,7 @@ "use client"; // components -import { NotificationsSidebarRoot } from "@/components/workspace-notifications"; +import { NotificationsSidebarRoot } from "@/components/workspace-notifications/sidebar"; export default function ProjectInboxIssuesLayout({ children }: { children: React.ReactNode }) { return ( diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/page.tsx index 415ea8fbf..4521cf436 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/notifications/page.tsx @@ -5,10 +5,10 @@ import { useParams } from "next/navigation"; // plane imports import { useTranslation } from "@plane/i18n"; // components -import { PageHead } from "@/components/core"; +import { PageHead } from "@/components/core/page-title"; import { NotificationsRoot } from "@/components/workspace-notifications"; // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; const WorkspaceDashboardPage = observer(() => { const { workspaceSlug } = useParams(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/page.tsx index 7a808decd..446a965ae 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/page.tsx @@ -3,10 +3,12 @@ import { observer } from "mobx-react"; // components import { useTranslation } from "@plane/i18n"; -import { PageHead, AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; +import { PageHead } from "@/components/core/page-title"; import { WorkspaceHomeView } from "@/components/home"; // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; // local components import { WorkspaceDashboardHeader } from "./header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/[profileViewId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/[profileViewId]/page.tsx index b6c1a22f0..aac7ed459 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/[profileViewId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/[profileViewId]/page.tsx @@ -3,7 +3,7 @@ import React from "react"; import { useParams } from "next/navigation"; // components -import { PageHead } from "@/components/core"; +import { PageHead } from "@/components/core/page-title"; import { ProfileIssuesPage } from "@/components/profile/profile-issues"; const ProfilePageHeader = { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/activity/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/activity/page.tsx index 3ad14bd96..31c96cd43 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/activity/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/activity/page.tsx @@ -2,16 +2,16 @@ import { useState } from "react"; import { observer } from "mobx-react"; -// ui +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/ui"; // components -import { PageHead } from "@/components/core"; -import { DownloadActivityButton, WorkspaceActivityListPage } from "@/components/profile"; +import { PageHead } from "@/components/core/page-title"; +import { DownloadActivityButton } from "@/components/profile/activity/download-button"; +import { WorkspaceActivityListPage } from "@/components/profile/activity/workspace-activity-list"; // hooks -import { useUserPermissions } from "@/hooks/store"; -// plane-web constants +import { useUserPermissions } from "@/hooks/store/user"; const PER_PAGE = 100; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/header.tsx index ec0c0d86d..a256bb6f9 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/header.tsx @@ -13,9 +13,10 @@ import { Breadcrumbs, Header, CustomMenu, UserActivityIcon } from "@plane/ui"; import { cn } from "@plane/utils"; // components import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; -import { ProfileIssuesFilter } from "@/components/profile"; +import { ProfileIssuesFilter } from "@/components/profile/profile-issues-filter"; // hooks -import { useAppTheme, useUser, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useUser, useUserPermissions } from "@/hooks/store/user"; type TUserProfileHeader = { userProjectsData: IUserProfileProjectSegregation | undefined; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/layout.tsx index fb223f2dd..f89314059 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/layout.tsx @@ -6,12 +6,13 @@ import useSWR from "swr"; // components import { PROFILE_VIEWER_TAB, PROFILE_ADMINS_TAB, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { AppHeader, ContentWrapper } from "@/components/core"; -import { ProfileSidebar } from "@/components/profile"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; +import { ProfileSidebar } from "@/components/profile/sidebar"; // constants import { USER_PROFILE_PROJECT_SEGREGATION } from "@/constants/fetch-keys"; // hooks -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; import useSize from "@/hooks/use-window-size"; // local components import { UserService } from "@/services/user.service"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx index ac7e04303..dd5976894 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx @@ -22,11 +22,11 @@ import { import { CustomMenu } from "@plane/ui"; // components import { isIssueFilterActive } from "@plane/utils"; -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown, IssueLayoutIcon } from "@/components/issues"; - -// helpers +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues/issue-layouts/filters"; +import { IssueLayoutIcon } from "@/components/issues/issue-layouts/layout-icon"; // hooks -import { useIssues, useLabel } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label"; export const ProfileIssuesMobileHeader = observer(() => { // plane i18n diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/page.tsx index 0db37129c..eeb6998c9 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/profile/[userId]/page.tsx @@ -2,26 +2,22 @@ import { useParams } from "next/navigation"; import useSWR from "swr"; -// types +// plane imports import { GROUP_CHOICES } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IUserStateDistribution, TStateGroups } from "@plane/types"; -// components import { ContentWrapper } from "@plane/ui"; -import { PageHead } from "@/components/core"; -import { - ProfileActivity, - ProfilePriorityDistribution, - ProfileStateDistribution, - ProfileStats, - ProfileWorkload, -} from "@/components/profile"; +// components +import { PageHead } from "@/components/core/page-title"; +import { ProfileActivity } from "@/components/profile/overview/activity"; +import { ProfilePriorityDistribution } from "@/components/profile/overview/priority-distribution"; +import { ProfileStateDistribution } from "@/components/profile/overview/state-distribution"; +import { ProfileStats } from "@/components/profile/overview/stats"; +import { ProfileWorkload } from "@/components/profile/overview/workload"; // constants import { USER_PROFILE_DATA } from "@/constants/fetch-keys"; // services import { UserService } from "@/services/user.service"; - -// services const userService = new UserService(); export default function ProfileOverviewPage() { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/layout.tsx index 5da3018b3..c46c53173 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectArchivesHeader } from "../header"; export default function ProjectArchiveCyclesLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx index b7f59441f..9894b9ca6 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/cycles/page.tsx @@ -3,10 +3,11 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components -import { PageHead } from "@/components/core"; -import { ArchivedCycleLayoutRoot, ArchivedCyclesHeader } from "@/components/cycles"; +import { PageHead } from "@/components/core/page-title"; +import { ArchivedCycleLayoutRoot } from "@/components/cycles/archived-cycles"; +import { ArchivedCyclesHeader } from "@/components/cycles/archived-cycles/header"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; const ProjectArchivedCyclesPage = observer(() => { // router diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx index 40f407d6a..a2ed6db4b 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/header.tsx @@ -7,13 +7,14 @@ import { EIssuesStoreType } from "@plane/types"; // ui import { ArchiveIcon, Breadcrumbs, Tooltip, Header, ContrastIcon, DiceIcon, LayersIcon } from "@plane/ui"; // components -import { BreadcrumbLink } from "@/components/common"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; // hooks -import { useIssues, useProject } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web -import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs/project"; type TProps = { activeTab: "issues" | "cycles" | "modules"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx index 80ecbbf67..fb1522581 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/[archivedIssueId]/page.tsx @@ -6,11 +6,12 @@ import useSWR from "swr"; // ui import { Loader } from "@plane/ui"; // components -import { PageHead } from "@/components/core"; -import { IssueDetailRoot } from "@/components/issues"; +import { PageHead } from "@/components/core/page-title"; +import { IssueDetailRoot } from "@/components/issues/issue-detail"; // constants // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useProject } from "@/hooks/store/use-project"; const ArchivedIssueDetailsPage = observer(() => { // router diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/header.tsx index 14f62397d..c2e0e9c42 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/header.tsx @@ -6,14 +6,14 @@ import useSWR from "swr"; // ui import { ArchiveIcon, Breadcrumbs, LayersIcon, Header } from "@plane/ui"; // components -import { BreadcrumbLink } from "@/components/common"; -import { IssueDetailQuickActions } from "@/components/issues"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; +import { IssueDetailQuickActions } from "@/components/issues/issue-detail/issue-detail-quick-actions"; // constants import { ISSUE_DETAILS } from "@/constants/fetch-keys"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; // plane web -import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs/project"; // services import { IssueService } from "@/services/issue"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/layout.tsx index 10e6cc582..74eb8949d 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(detail)/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectArchivedIssueDetailsHeader } from "./header"; export default function ProjectArchivedIssueDetailLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/layout.tsx index eb2df313d..321ab8a62 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectArchivesHeader } from "../../header"; export default function ProjectArchiveIssuesLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx index a52b3596f..ceb24bf3c 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/issues/(list)/page.tsx @@ -3,10 +3,11 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components -import { PageHead } from "@/components/core"; -import { ArchivedIssueLayoutRoot, ArchivedIssuesHeader } from "@/components/issues"; +import { PageHead } from "@/components/core/page-title"; +import { ArchivedIssuesHeader } from "@/components/issues/archived-issues-header"; +import { ArchivedIssueLayoutRoot } from "@/components/issues/issue-layouts/roots/archived-issue-layout-root"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; const ProjectArchivedIssuesPage = observer(() => { // router diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/layout.tsx index c1e48db7c..ee72018ac 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectArchivesHeader } from "../header"; export default function ProjectArchiveModulesLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/page.tsx index 5c1d55d3e..1edb13e23 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/archives/modules/page.tsx @@ -3,10 +3,10 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components -import { PageHead } from "@/components/core"; +import { PageHead } from "@/components/core/page-title"; import { ArchivedModuleLayoutRoot, ArchivedModulesHeader } from "@/components/modules"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; const ProjectArchivedModulesPage = observer(() => { // router diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx index b26a063ec..5bc6149e4 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx @@ -2,16 +2,17 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// components +// plane imports import { cn } from "@plane/utils"; -import { EmptyState } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { CycleDetailsSidebar } from "@/components/cycles"; +// components +import { EmptyState } from "@/components/common/empty-state"; +import { PageHead } from "@/components/core/page-title"; import useCyclesDetails from "@/components/cycles/active-cycle/use-cycles-details"; -import { CycleLayoutRoot } from "@/components/issues/issue-layouts"; -// helpers +import { CycleDetailsSidebar } from "@/components/cycles/analytics-sidebar"; +import { CycleLayoutRoot } from "@/components/issues/issue-layouts/roots/cycle-layout-root"; // hooks -import { useCycle, useProject } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle" +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; import useLocalStorage from "@/hooks/use-local-storage"; // assets diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx index 8cadaea82..09b41721f 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/header.tsx @@ -28,26 +28,24 @@ import { Breadcrumbs, Button, ContrastIcon, BreadcrumbNavigationSearchDropdown, import { cn, isIssueFilterActive } from "@plane/utils"; // components import { WorkItemsModal } from "@/components/analytics/work-items/modal"; -import { SwitcherLabel } from "@/components/common"; -import { CycleQuickActions } from "@/components/cycles"; +import { SwitcherLabel } from "@/components/common/switcher-label"; +import { CycleQuickActions } from "@/components/cycles/quick-actions"; import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection, MobileLayoutSelection, -} from "@/components/issues"; +} from "@/components/issues/issue-layouts/filters"; // hooks -import { - useCommandPalette, - useCycle, - useIssues, - useLabel, - useMember, - useProject, - useProjectState, - useUserPermissions, -} from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; +import { useCycle } from "@/hooks/store/use-cycle"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useLabel } from "@/hooks/store/use-label"; +import { useMember } from "@/hooks/store/use-member"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import useLocalStorage from "@/hooks/use-local-storage"; // plane web imports diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/layout.tsx index 196665754..40872f0b4 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { CycleIssuesHeader } from "./header"; import { CycleIssuesMobileHeader } from "./mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx index 2d07bccd9..5110cd870 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx @@ -18,10 +18,15 @@ import { CustomMenu } from "@plane/ui"; import { isIssueFilterActive } from "@plane/utils"; // components import { WorkItemsModal } from "@/components/analytics/work-items/modal"; -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown, IssueLayoutIcon } from "@/components/issues"; -// helpers +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues/issue-layouts/filters"; +import { IssueLayoutIcon } from "@/components/issues/issue-layouts/layout-icon"; // hooks -import { useIssues, useCycle, useProjectState, useLabel, useMember, useProject } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useLabel } from "@/hooks/store/use-label"; +import { useMember } from "@/hooks/store/use-member"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; export const CycleIssuesMobileHeader = () => { // i18n diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx index fe9503787..39a2e699a 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/header.tsx @@ -8,9 +8,11 @@ import { EProjectFeatureKey, EUserPermissions, EUserPermissionsLevel, CYCLE_TRAC import { useTranslation } from "@plane/i18n"; import { Breadcrumbs, Button, Header } from "@plane/ui"; // components -import { CyclesViewHeader } from "@/components/cycles"; +import { CyclesViewHeader } from "@/components/cycles/cycles-view-header"; // hooks -import { useCommandPalette, useProject, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // plane web import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/layout.tsx index 76cbf685f..a3caddf30 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { CyclesListHeader } from "./header"; import { CyclesListMobileHeader } from "./mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/mobile-header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/mobile-header.tsx index 05b7d5315..eee1e58cf 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/mobile-header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/mobile-header.tsx @@ -7,7 +7,8 @@ import { GanttChartSquare, LayoutGrid, List, type LucideIcon } from "lucide-reac import { TCycleLayoutOptions } from "@plane/types"; import { CustomMenu } from "@plane/ui"; // hooks -import { useCycleFilter, useProject } from "@/hooks/store"; +import { useCycleFilter } from "@/hooks/store/use-cycle-filter" +import { useProject } from "@/hooks/store/use-project"; const CYCLE_VIEW_LAYOUTS: { key: TCycleLayoutOptions; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/page.tsx index 81a10e63f..4783a2823 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(list)/page.tsx @@ -11,12 +11,17 @@ import { EUserProjectRoles, TCycleFilters } from "@plane/types"; import { Header, EHeaderVariant } from "@plane/ui"; import { calculateTotalFilters } from "@plane/utils"; import { PageHead } from "@/components/core/page-title"; -import { CyclesView, CycleCreateUpdateModal, CycleAppliedFiltersList } from "@/components/cycles"; -import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; -import { CycleModuleListLayout } from "@/components/ui"; -// helpers +import { CycleAppliedFiltersList } from "@/components/cycles/applied-filters"; +import { CyclesView } from "@/components/cycles/cycles-view"; +import { CycleCreateUpdateModal } from "@/components/cycles/modal"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { CycleModuleListLayoutLoader } from "@/components/ui/loader/cycle-module-list-loader"; // hooks -import { useCycle, useProject, useCycleFilter, useUserPermissions } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; +import { useCycleFilter } from "@/hooks/store/use-cycle-filter"; +import { useProject } from "@/hooks/store/use-project"; +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; @@ -76,7 +81,7 @@ const ProjectCyclesPage = observer(() => { ); - if (loader) return ; + if (loader) return ; return ( <> diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx index d58c19ad7..4969a0a51 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx @@ -19,14 +19,23 @@ import { import { Breadcrumbs, LayersIcon, Tooltip } from "@plane/ui"; // components import { isIssueFilterActive } from "@plane/utils"; -import { BreadcrumbLink } from "@/components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; +import { + DisplayFiltersSelection, + FiltersDropdown, + FilterSelection, + LayoutSelection, +} from "@/components/issues/issue-layouts/filters"; // helpers // hooks -import { useIssues, useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useMember } from "@/hooks/store/use-member" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web -import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs"; +import { ProjectBreadcrumb } from "@/plane-web/components/breadcrumbs/project"; // FIXME: Deprecated. Remove it export const ProjectDraftIssueHeader: FC = observer(() => { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/layout.tsx index f3068816e..ec6cdc1dd 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectDraftIssueHeader } from "./header"; export default function ProjectDraftIssuesLayou({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/page.tsx index d233cb17a..ce91afb61 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/page.tsx @@ -4,10 +4,10 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { X, PenSquare } from "lucide-react"; // components -import { PageHead } from "@/components/core"; +import { PageHead } from "@/components/core/page-title"; import { DraftIssueLayoutRoot } from "@/components/issues/issue-layouts/roots/draft-issue-layout-root"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; const ProjectDraftIssuesPage = observer(() => { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/layout.tsx index e4cde6cbb..4f9c5af7e 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectInboxHeader } from "@/plane-web/components/projects/settings/intake"; export default function ProjectInboxIssuesLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/page.tsx index 1e6e2c542..f8ba5b6ce 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/intake/page.tsx @@ -1,16 +1,17 @@ "use client"; import { observer } from "mobx-react"; import { useParams, useSearchParams } from "next/navigation"; +// plane imports import { EUserPermissionsLevel } from "@plane/constants"; -// components import { useTranslation } from "@plane/i18n"; import { EUserProjectRoles, EInboxIssueCurrentTab } from "@plane/types"; -import { PageHead } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; +// components +import { PageHead } from "@/components/core/page-title"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { InboxIssueRoot } from "@/components/inbox"; -// helpers // 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"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(detail)/[issueId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(detail)/[issueId]/page.tsx index cee22b0cf..22728d5e3 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(detail)/[issueId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(detail)/[issueId]/page.tsx @@ -7,7 +7,8 @@ import { useTheme } from "next-themes"; import useSWR from "swr"; import { useTranslation } from "@plane/i18n"; // components -import { EmptyState, LogoSpinner } from "@/components/common"; +import { EmptyState } from "@/components/common/empty-state"; +import { LogoSpinner } from "@/components/common/logo-spinner"; // hooks import { useAppRouter } from "@/hooks/use-app-router"; // assets diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/header.tsx index c3aacaebb..8a2e9a71a 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/header.tsx @@ -1,3 +1,3 @@ -import { IssuesHeader } from "@/plane-web/components/issues"; +import { IssuesHeader } from "@/plane-web/components/issues/header"; export const ProjectIssuesHeader = () => ; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/layout.tsx index 5b5c3048c..c2df9c4e5 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ProjectIssuesHeader } from "./header"; import { ProjectIssuesMobileHeader } from "./mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx index 25fa8fc80..7359f6dcc 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx @@ -3,8 +3,7 @@ import { useCallback, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// icons -import { Calendar, ChevronDown, Kanban, List } from "lucide-react"; +import { ChevronDown } from "lucide-react"; // plane imports import { EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; @@ -23,19 +22,17 @@ import { FilterSelection, FiltersDropdown, MobileLayoutSelection, -} from "@/components/issues/issue-layouts"; -// helpers +} from "@/components/issues/issue-layouts/filters"; // hooks -import { useIssues, useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useMember } from "@/hooks/store/use-member" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state"; export const ProjectIssuesMobileHeader = observer(() => { // i18n const { t } = useTranslation(); - const layouts = [ - { key: "list", titleTranslationKey: "issue.layouts.list", icon: List }, - { key: "kanban", titleTranslationKey: "issue.layouts.kanban", icon: Kanban }, - { key: "calendar", titleTranslationKey: "issue.layouts.calendar", icon: Calendar }, - ]; const [analyticsModal, setAnalyticsModal] = useState(false); const { workspaceSlug, projectId } = useParams() as { workspaceSlug: string; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/page.tsx index 6b83f367b..63162e102 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/page.tsx @@ -6,10 +6,10 @@ import { useParams } from "next/navigation"; // i18n import { useTranslation } from "@plane/i18n"; // components -import { PageHead } from "@/components/core"; -import { ProjectLayoutRoot } from "@/components/issues"; +import { PageHead } from "@/components/core/page-title"; +import { ProjectLayoutRoot } from "@/components/issues/issue-layouts/roots/project-layout-root"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; const ProjectIssuesPage = observer(() => { const { projectId } = useParams(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx index db3171307..889c25845 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx @@ -5,13 +5,14 @@ import { useParams } from "next/navigation"; import useSWR from "swr"; // components import { cn } from "@plane/utils"; -import { EmptyState } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { ModuleLayoutRoot } from "@/components/issues"; +import { EmptyState } from "@/components/common/empty-state"; +import { PageHead } from "@/components/core/page-title"; +import { ModuleLayoutRoot } from "@/components/issues/issue-layouts/roots/module-layout-root"; import { ModuleAnalyticsSidebar } from "@/components/modules"; // helpers // hooks -import { useModule, useProject } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module" +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; import useLocalStorage from "@/hooks/use-local-storage"; // assets diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx index 67dc8801c..310f2a0bf 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/header.tsx @@ -26,33 +26,31 @@ import { Breadcrumbs, Button, DiceIcon, Header, BreadcrumbNavigationSearchDropdo import { cn, isIssueFilterActive } from "@plane/utils"; // components import { WorkItemsModal } from "@/components/analytics/work-items/modal"; -import { SwitcherLabel } from "@/components/common"; +import { SwitcherLabel } from "@/components/common/switcher-label"; import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection, MobileLayoutSelection, -} from "@/components/issues"; +} from "@/components/issues/issue-layouts/filters"; // helpers import { ModuleQuickActions } from "@/components/modules"; // hooks -import { - useLabel, - useMember, - useModule, - useProject, - useProjectState, - useIssues, - useCommandPalette, - useUserPermissions, -} from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useLabel } from "@/hooks/store/use-label"; +import { useMember } from "@/hooks/store/use-member"; +import { useModule } from "@/hooks/store/use-module"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { useIssuesActions } from "@/hooks/use-issues-actions"; import useLocalStorage from "@/hooks/use-local-storage"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web -import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs"; +import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; export const ModuleIssuesHeader: React.FC = observer(() => { // refs diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/layout.tsx index bd409af05..e976c7353 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ModuleIssuesHeader } from "./header"; import { ModuleIssuesMobileHeader } from "./mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx index 66d89dab0..a10667e9e 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx @@ -19,15 +19,15 @@ import { CustomMenu } from "@plane/ui"; import { isIssueFilterActive } from "@plane/utils"; // components import { WorkItemsModal } from "@/components/analytics/work-items/modal"; -import { - DisplayFiltersSelection, - FilterSelection, - FiltersDropdown, - IssueLayoutIcon, -} from "@/components/issues/issue-layouts"; -// helpers +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues/issue-layouts/filters"; +import { IssueLayoutIcon } from "@/components/issues/issue-layouts/layout-icon"; // hooks -import { useIssues, useLabel, useMember, useModule, useProject, useProjectState } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useMember } from "@/hooks/store/use-member" +import { useModule } from "@/hooks/store/use-module" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state"; export const ModuleIssuesMobileHeader = observer(() => { const [analyticsModal, setAnalyticsModal] = useState(false); diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx index 81acf8c68..a0e1375f2 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/header.tsx @@ -10,10 +10,12 @@ import { Breadcrumbs, Button, Header } from "@plane/ui"; // components import { ModuleViewHeader } from "@/components/modules"; // hooks -import { useCommandPalette, useProject, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // plane web -import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs"; +import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; // constants export const ModulesListHeader: React.FC = observer(() => { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/layout.tsx index 12ebf41e0..269cf9455 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/layout.tsx @@ -1,7 +1,8 @@ "use client"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { ModulesListHeader } from "./header"; import { ModulesListMobileHeader } from "./mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/mobile-header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/mobile-header.tsx index 629dca36a..7a76d6345 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/mobile-header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/mobile-header.tsx @@ -6,7 +6,8 @@ import { MODULE_VIEW_LAYOUTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { CustomMenu, Row } from "@plane/ui"; import { ModuleLayoutIcon } from "@/components/modules"; -import { useModuleFilter, useProject } from "@/hooks/store"; +import { useModuleFilter } from "@/hooks/store/use-module-filter" +import { useProject } from "@/hooks/store/use-project"; export const ModulesListMobileHeader = observer(() => { const { currentProjectDetails } = useProject(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/page.tsx index f00c7b223..fca530980 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(list)/page.tsx @@ -10,11 +10,13 @@ import { EUserProjectRoles, TModuleFilters } from "@plane/types"; // components import { calculateTotalFilters } from "@plane/utils"; import { PageHead } from "@/components/core/page-title"; -import { DetailedEmptyState } from "@/components/empty-state"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { ModuleAppliedFiltersList, ModulesListView } from "@/components/modules"; // helpers // hooks -import { useModuleFilter, useProject, useUserPermissions } from "@/hooks/store"; +import { useModuleFilter } from "@/hooks/store/use-module-filter" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx index 8566b04d2..ff4f10a70 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/[pageId]/page.tsx @@ -12,13 +12,14 @@ import { getButtonStyling } from "@plane/ui"; // plane utils import { cn } from "@plane/utils"; // components -import { LogoSpinner } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { IssuePeekOverview } from "@/components/issues"; -import { PageRoot, TPageRootConfig, TPageRootHandlers } from "@/components/pages"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { PageHead } from "@/components/core/page-title"; +import { IssuePeekOverview } from "@/components/issues/peek-overview"; +import { PageRoot, TPageRootConfig, TPageRootHandlers } from "@/components/pages/editor/page-root"; // hooks import { useEditorConfig } from "@/hooks/editor"; -import { useEditorAsset, useWorkspace } from "@/hooks/store"; +import { useEditorAsset } from "@/hooks/store/use-editor-asset" +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane web hooks import { EPageStoreType, usePage, usePageStore } from "@/plane-web/hooks/store"; // plane web services diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx index 4292e67ea..99af7075b 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/header.tsx @@ -9,11 +9,12 @@ import { ICustomSearchSelectOption } from "@plane/types"; import { Breadcrumbs, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui"; // components import { getPageName } from "@plane/utils"; -import { PageAccessIcon, SwitcherIcon, SwitcherLabel } from "@/components/common"; +import { PageAccessIcon } from "@/components/common/page-access-icon"; +import { SwitcherIcon, SwitcherLabel } from "@/components/common/switcher-label"; import { PageHeaderActions } from "@/components/pages/header/actions"; // helpers // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; // plane web components import { useAppRouter } from "@/hooks/use-app-router"; import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/layout.tsx index dacd61388..a9147e0fe 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(detail)/layout.tsx @@ -3,7 +3,8 @@ // component import { useParams } from "next/navigation"; import useSWR from "swr"; -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; // plane web hooks import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; // local components diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx index a9c029852..ba3314eb8 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/header.tsx @@ -17,9 +17,9 @@ import { Breadcrumbs, Button, Header, setToast, TOAST_TYPE } from "@plane/ui"; // helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; // plane web -import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs"; +import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; // plane web hooks import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/layout.tsx index 8b1bdd828..a74a9797b 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/layout.tsx @@ -2,7 +2,8 @@ import { ReactNode } from "react"; // components -import { ContentWrapper, AppHeader } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; // local components import { PagesListHeader } from "./header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/page.tsx index 58b69809b..9042dd787 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/pages/(list)/page.tsx @@ -7,11 +7,13 @@ import { EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EUserProjectRoles, TPageNavigationTabs } from "@plane/types"; // components -import { PageHead } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; -import { PagesListRoot, PagesListView } from "@/components/pages"; +import { PageHead } from "@/components/core/page-title"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { PagesListRoot } from "@/components/pages/list/root"; +import { PagesListView } from "@/components/pages/pages-list-view"; // 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"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; // plane web hooks diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx index 2f3a17542..c143487cc 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx @@ -27,24 +27,27 @@ import { import { Breadcrumbs, Button, Tooltip, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui"; // components import { isIssueFilterActive } from "@plane/utils"; -import { SwitcherIcon, SwitcherLabel } from "@/components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, LayoutSelection } from "@/components/issues"; -// constants -import { ViewQuickActions } from "@/components/views"; -// hooks +import { SwitcherIcon, SwitcherLabel } from "@/components/common/switcher-label"; import { - useCommandPalette, - useIssues, - useLabel, - useMember, - useProject, - useProjectState, - useProjectView, - useUserPermissions, -} from "@/hooks/store"; + DisplayFiltersSelection, + FiltersDropdown, + FilterSelection, + LayoutSelection, +} from "@/components/issues/issue-layouts/filters"; +// constants +import { ViewQuickActions } from "@/components/views/quick-actions"; +// hooks +import { useCommandPalette } from "@/hooks/store/use-command-palette"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useLabel } from "@/hooks/store/use-label"; +import { useMember } from "@/hooks/store/use-member"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; +import { useProjectView } from "@/hooks/store/use-project-view"; +import { useUserPermissions } from "@/hooks/store/user"; // plane web import { useAppRouter } from "@/hooks/use-app-router"; -import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs"; +import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; export const ProjectViewIssuesHeader: React.FC = observer(() => { // refs diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/page.tsx index 45c16260a..08e7ef748 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/page.tsx @@ -4,11 +4,12 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; // components -import { EmptyState } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { ProjectViewLayoutRoot } from "@/components/issues"; +import { EmptyState } from "@/components/common/empty-state"; +import { PageHead } from "@/components/core/page-title"; +import { ProjectViewLayoutRoot } from "@/components/issues/issue-layouts/roots/project-view-layout-root"; // hooks -import { useProject, useProjectView } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useProjectView } from "@/hooks/store/use-project-view"; // assets import { useAppRouter } from "@/hooks/use-app-router"; import emptyView from "@/public/empty-state/view.svg"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/layout.tsx index 92cbb7326..af6e57d49 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/layout.tsx @@ -1,6 +1,7 @@ "use client"; -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; // local components import { ProjectViewIssuesHeader } from "./[viewId]/header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx index d9b2cb8ef..f411485da 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/header.tsx @@ -6,11 +6,12 @@ import { useParams } from "next/navigation"; import { EProjectFeatureKey, PROJECT_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; import { Breadcrumbs, Button, Header } from "@plane/ui"; // components -import { ViewListHeader } from "@/components/views"; +import { ViewListHeader } from "@/components/views/view-list-header"; // hooks -import { useCommandPalette, useProject } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project"; // plane web -import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs"; +import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; export const ProjectViewsHeader = observer(() => { const { workspaceSlug, projectId } = useParams() as { workspaceSlug: string; projectId: string }; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/layout.tsx index 3143612c2..d96c8256a 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/layout.tsx @@ -1,6 +1,7 @@ "use client"; -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; // local components import { ProjectViewsHeader } from "./header"; import { ViewMobileHeader } from "./mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx index 608ed5dff..256d5f786 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx @@ -5,11 +5,12 @@ import { observer } from "mobx-react"; import { ChevronDown, ListFilter } from "lucide-react"; // components import { Row } from "@plane/ui"; -import { FiltersDropdown } from "@/components/issues/issue-layouts"; +import { FiltersDropdown } from "@/components/issues/issue-layouts/filters"; import { ViewFiltersSelection } from "@/components/views/filters/filter-selection"; import { ViewOrderByDropdown } from "@/components/views/filters/order-by"; // hooks -import { useMember, useProjectView } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useProjectView } from "@/hooks/store/use-project-view"; export const ViewMobileHeader = observer(() => { // store hooks diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/page.tsx index 67895bcb9..490ffb4b9 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/page.tsx @@ -10,13 +10,15 @@ import { EUserProjectRoles, EViewAccess, TViewFilterProps } from "@plane/types"; import { Header, EHeaderVariant } from "@plane/ui"; import { calculateTotalFilters } from "@plane/utils"; import { PageHead } from "@/components/core/page-title"; -import { DetailedEmptyState } from "@/components/empty-state"; -import { ProjectViewsList } from "@/components/views"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { ViewAppliedFiltersList } from "@/components/views/applied-filters"; +import { ProjectViewsList } from "@/components/views/views-list"; // constants // helpers // hooks -import { useProject, useProjectView, useUserPermissions } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useProjectView } from "@/hooks/store/use-project-view" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/archives/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/archives/layout.tsx index a308e1978..d8429ef30 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/archives/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(detail)/archives/layout.tsx @@ -2,7 +2,8 @@ import { ReactNode } from "react"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; // local components import { ProjectsListHeader } from "@/plane-web/components/projects/header"; import { ProjectsListMobileHeader } from "@/plane-web/components/projects/mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(list)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(list)/layout.tsx index a308e1978..d8429ef30 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(list)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/projects/(list)/layout.tsx @@ -2,7 +2,8 @@ import { ReactNode } from "react"; // components -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; // local components import { ProjectsListHeader } from "@/plane-web/components/projects/header"; import { ProjectsListMobileHeader } from "@/plane-web/components/projects/mobile-header"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/sidebar.tsx index b5dbec81c..2fd3218c0 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/sidebar.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/sidebar.tsx @@ -5,14 +5,17 @@ import { observer } from "mobx-react"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useOutsideClickDetector } from "@plane/hooks"; // components -import { AppSidebarToggleButton } from "@/components/sidebar"; -import { SidebarDropdown, SidebarProjectsList, SidebarQuickActions } from "@/components/workspace"; +import { AppSidebarToggleButton } from "@/components/sidebar/sidebar-toggle-button"; +import { SidebarDropdown } from "@/components/workspace/sidebar/dropdown"; import { SidebarFavoritesMenu } from "@/components/workspace/sidebar/favorites/favorites-menu"; import { HelpMenu } from "@/components/workspace/sidebar/help-menu"; +import { SidebarProjectsList } from "@/components/workspace/sidebar/projects-list"; +import { SidebarQuickActions } from "@/components/workspace/sidebar/quick-actions"; import { SidebarMenuItems } from "@/components/workspace/sidebar/sidebar-menu-items"; // hooks -import { useAppTheme, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; import { useFavorite } from "@/hooks/store/use-favorite"; +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRail } from "@/hooks/use-app-rail"; import useSize from "@/hooks/use-window-size"; // plane web components diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx index 7f7f9c96f..1b4b1a236 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/header.tsx @@ -1,16 +1,14 @@ "use client"; import { observer } from "mobx-react"; -// ui import { useParams } from "next/navigation"; +// plane imports import { Breadcrumbs, Button, Header, RecentStickyIcon } from "@plane/ui"; // components -import { BreadcrumbLink } from "@/components/common"; - -// hooks +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; import { StickySearch } from "@/components/stickies/modal/search"; import { useStickyOperations } from "@/components/stickies/sticky/use-operations"; -// plane-web +// hooks import { useSticky } from "@/hooks/use-stickies"; export const WorkspaceStickyHeader = observer(() => { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/layout.tsx index b1d7e6b92..d2abcd3f6 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/layout.tsx @@ -1,6 +1,7 @@ "use client"; -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { WorkspaceStickyHeader } from "./header"; export default function WorkspaceStickiesLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/page.tsx index 48c2cc374..198985929 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/stickies/page.tsx @@ -1,8 +1,8 @@ "use client"; // components -import { PageHead } from "@/components/core"; -import { StickiesInfinite } from "@/components/stickies"; +import { PageHead } from "@/components/core/page-title"; +import { StickiesInfinite } from "@/components/stickies/layout/stickies-infinite"; export default function WorkspaceStickiesPage() { return ( diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/[globalViewId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/[globalViewId]/page.tsx index 0d62cd4a2..8f4cb196e 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/[globalViewId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/[globalViewId]/page.tsx @@ -6,11 +6,11 @@ import { useParams } from "next/navigation"; // plane imports import { DEFAULT_GLOBAL_VIEWS_LIST } from "@plane/constants"; // components -import { PageHead } from "@/components/core"; -import { AllIssueLayoutRoot, GlobalViewsAppliedFiltersRoot } from "@/components/issues"; -// constants +import { PageHead } from "@/components/core/page-title"; +import { GlobalViewsAppliedFiltersRoot } from "@/components/issues/issue-layouts/filters"; +import { AllIssueLayoutRoot } from "@/components/issues/issue-layouts/roots/all-issue-layout-root"; // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; const GlobalViewIssuesPage = observer(() => { // router diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx index 2778ffbf3..1c50844c8 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/header.tsx @@ -23,15 +23,17 @@ import { import { Breadcrumbs, Button, Header, BreadcrumbNavigationSearchDropdown } from "@plane/ui"; import { isIssueFilterActive } from "@plane/utils"; // components -import { BreadcrumbLink, SwitcherLabel } from "@/components/common"; -import { DisplayFiltersSelection, FiltersDropdown, FilterSelection } from "@/components/issues"; -import { - CreateUpdateWorkspaceViewModal, - WorkspaceViewQuickActions, - DefaultWorkspaceViewQuickActions, -} from "@/components/workspace"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; +import { SwitcherLabel } from "@/components/common/switcher-label"; +import { DisplayFiltersSelection, FiltersDropdown, FilterSelection } from "@/components/issues/issue-layouts/filters"; +import { DefaultWorkspaceViewQuickActions } from "@/components/workspace/views/default-view-quick-action"; +import { CreateUpdateWorkspaceViewModal } from "@/components/workspace/views/modal"; +import { WorkspaceViewQuickActions } from "@/components/workspace/views/quick-action"; // hooks -import { useLabel, useMember, useIssues, useGlobalView } from "@/hooks/store"; +import { useGlobalView } from "@/hooks/store/use-global-view"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useLabel } from "@/hooks/store/use-label"; +import { useMember } from "@/hooks/store/use-member"; import { useAppRouter } from "@/hooks/use-app-router"; import { GlobalViewLayoutSelection } from "@/plane-web/components/views/helper"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/layout.tsx index a40d9318c..6f3dbe1b9 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/layout.tsx @@ -1,6 +1,7 @@ "use client"; -import { AppHeader, ContentWrapper } from "@/components/core"; +import { AppHeader } from "@/components/core/app-header"; +import { ContentWrapper } from "@/components/core/content-wrapper"; import { GlobalIssuesHeader } from "./header"; export default function GlobalIssuesLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx index 87d0cfc58..5a3969a22 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(projects)/workspace-views/page.tsx @@ -2,19 +2,17 @@ import React, { useState } from "react"; import { observer } from "mobx-react"; -// icons import { Search } from "lucide-react"; // plane imports import { DEFAULT_GLOBAL_VIEWS_LIST } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -// ui import { Input } from "@plane/ui"; // components -import { PageHead } from "@/components/core"; -import { GlobalDefaultViewListItem, GlobalViewsList } from "@/components/workspace"; -// constants +import { PageHead } from "@/components/core/page-title"; +import { GlobalDefaultViewListItem } from "@/components/workspace/views/default-view-list-item"; +import { GlobalViewsList } from "@/components/workspace/views/views-list"; // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; const WorkspaceViewsPage = observer(() => { const [query, setQuery] = useState(""); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/layout.tsx index 593a1b093..a87d4d267 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/layout.tsx @@ -1,9 +1,9 @@ "use client"; import { CommandPalette } from "@/components/command-palette"; -import { ContentWrapper } from "@/components/core"; -import { SettingsHeader } from "@/components/settings"; -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { ContentWrapper } from "@/components/core/content-wrapper"; +import { SettingsHeader } from "@/components/settings/header"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; import { WorkspaceAuthWrapper } from "@/plane-web/layouts/workspace-wrapper"; export default function SettingsLayout({ children }: { children: React.ReactNode }) { diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/billing/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/billing/page.tsx index 028647669..6c8950b4c 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/billing/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/billing/page.tsx @@ -3,13 +3,14 @@ import { observer } from "mobx-react"; // component import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; // hooks -import { SettingsContentWrapper } from "@/components/settings"; -import { useUserPermissions, useWorkspace } from "@/hooks/store"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; // plane web components -import { BillingRoot } from "@/plane-web/components/workspace"; +import { BillingRoot } from "@/plane-web/components/workspace/billing"; const BillingSettingsPage = observer(() => { // store hooks diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/exports/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/exports/page.tsx index 62aabb10e..b0ba8774a 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/exports/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/exports/page.tsx @@ -5,14 +5,15 @@ import { observer } from "mobx-react"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { cn } from "@plane/utils"; -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; import ExportGuide from "@/components/exporter/guide"; // helpers // hooks import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; import SettingsHeading from "@/components/settings/heading"; -import { useUserPermissions, useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; const ExportsPage = observer(() => { // store hooks diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/imports/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/imports/page.tsx index 10d1a76e6..2838e2226 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/imports/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/imports/page.tsx @@ -3,12 +3,14 @@ import { observer } from "mobx-react"; // components import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; import IntegrationGuide from "@/components/integration/guide"; // hooks -import { SettingsContentWrapper, SettingsHeading } from "@/components/settings"; -import { useUserPermissions, useWorkspace } from "@/hooks/store"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { SettingsHeading } from "@/components/settings/heading"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; const ImportsPage = observer(() => { // router diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/integrations/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/integrations/page.tsx index 335631a2e..bb9d8f3d3 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/integrations/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/integrations/page.tsx @@ -4,15 +4,17 @@ import { useParams } from "next/navigation"; import useSWR from "swr"; // components import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; import { SingleIntegrationCard } from "@/components/integration"; -import { SettingsContentWrapper } from "@/components/settings"; -import { IntegrationAndImportExportBanner, IntegrationsSettingsLoader } from "@/components/ui"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { IntegrationAndImportExportBanner } from "@/components/ui/integration-and-import-export-banner"; +import { IntegrationsSettingsLoader } from "@/components/ui/loader/settings/integration"; // constants import { APP_INTEGRATIONS } from "@/constants/fetch-keys"; // hooks -import { useUserPermissions, useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; // services import { IntegrationService } from "@/services/integrations"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/layout.tsx index 011659090..6db9ea99b 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/layout.tsx @@ -7,11 +7,11 @@ import { usePathname } from "next/navigation"; import { WORKSPACE_SETTINGS_ACCESS } from "@plane/constants"; import { EUserWorkspaceRoles } from "@plane/types"; // components -import { NotAuthorizedView } from "@/components/auth-screens"; -import { SettingsMobileNav } from "@/components/settings"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; import { getWorkspaceActivePath, pathnameToAccessKey } from "@/components/settings/helper"; +import { SettingsMobileNav } from "@/components/settings/mobile"; // hooks -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; // local components import { WorkspaceSettingsSidebar } from "./sidebar"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/members/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/members/page.tsx index e05eb30f0..065d8c5e7 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/members/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/members/page.tsx @@ -17,18 +17,20 @@ import { IWorkspaceBulkInviteFormData } from "@plane/types"; import { Button, TOAST_TYPE, setToast } from "@plane/ui"; import { cn } from "@plane/utils"; // components -import { NotAuthorizedView } from "@/components/auth-screens"; -import { CountChip } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { SettingsContentWrapper } from "@/components/settings"; -import { WorkspaceMembersList } from "@/components/workspace"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { CountChip } from "@/components/common/count-chip"; +import { PageHead } from "@/components/core/page-title"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { WorkspaceMembersList } from "@/components/workspace/settings/members-list"; // helpers -// hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useMember, useUserPermissions, useWorkspace } from "@/hooks/store"; +// hooks +import { useMember } from "@/hooks/store/use-member"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; // plane web components -import { BillingActionsButton } from "@/plane-web/components/workspace/billing"; -import { SendWorkspaceInvitationModal } from "@/plane-web/components/workspace/members"; +import { BillingActionsButton } from "@/plane-web/components/workspace/billing/billing-actions-button"; +import { SendWorkspaceInvitationModal } from "@/plane-web/components/workspace/members/invite-modal"; const WorkspaceMembersSettingsPage = observer(() => { // states diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/mobile-header-tabs.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/mobile-header-tabs.tsx index 272862597..9e7c24982 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/mobile-header-tabs.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/mobile-header-tabs.tsx @@ -3,7 +3,7 @@ import { useParams, usePathname } from "next/navigation"; import { WORKSPACE_SETTINGS_LINKS, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // hooks -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // plane web helpers import { shouldRenderSettingLink } from "@/plane-web/helpers/workspace.helper"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/page.tsx index 736c34810..12fcdca8f 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/page.tsx @@ -1,13 +1,14 @@ "use client"; import { observer } from "mobx-react"; -// components +// plane imports import { useTranslation } from "@plane/i18n"; -import { PageHead } from "@/components/core"; -import { SettingsContentWrapper } from "@/components/settings"; -import { WorkspaceDetails } from "@/components/workspace"; +// components +import { PageHead } from "@/components/core/page-title"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { WorkspaceDetails } from "@/components/workspace/settings/workspace-details"; // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; const WorkspaceSettingsPage = observer(() => { // store hooks diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/sidebar.tsx index 08ad0f72f..09a4de1d5 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/sidebar.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/sidebar.tsx @@ -8,7 +8,7 @@ import { WORKSPACE_SETTINGS_CATEGORY, } from "@plane/constants"; import { EUserWorkspaceRoles } from "@plane/types"; -import { SettingsSidebar } from "@/components/settings"; +import { SettingsSidebar } from "@/components/settings/sidebar"; import { useUserPermissions } from "@/hooks/store/user"; import { shouldRenderSettingLink } from "@/plane-web/helpers/workspace.helper"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/[webhookId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/[webhookId]/page.tsx index c6a7d3f5a..0bf1acdc9 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/[webhookId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/[webhookId]/page.tsx @@ -9,13 +9,15 @@ import { IWebhook } from "@plane/types"; // ui import { TOAST_TYPE, setToast } from "@plane/ui"; // components -import { LogoSpinner } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { SettingsContentWrapper } from "@/components/settings"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { PageHead } from "@/components/core/page-title"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; import { DeleteWebhookModal, WebhookDeleteSection, WebhookForm } from "@/components/web-hooks"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useUserPermissions, useWebhook, useWorkspace } from "@/hooks/store"; +import { useWebhook } from "@/hooks/store/use-webhook"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; const WebhookDetailsPage = observer(() => { // states diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx index 511ab96d9..06be0fd85 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/(workspace)/webhooks/page.tsx @@ -8,15 +8,18 @@ import useSWR from "swr"; import { EUserPermissions, EUserPermissionsLevel, WORKSPACE_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // components -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; -import { SettingsContentWrapper, SettingsHeading } from "@/components/settings"; -import { WebhookSettingsLoader } from "@/components/ui"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { SettingsHeading } from "@/components/settings/heading"; +import { WebhookSettingsLoader } from "@/components/ui/loader/settings/web-hook"; import { WebhooksList, CreateWebhookModal } from "@/components/web-hooks"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useUserPermissions, useWebhook, useWorkspace } from "@/hooks/store"; +import { useWebhook } from "@/hooks/store/use-webhook"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; const WebhooksListPage = observer(() => { diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/activity/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/activity/page.tsx index fe64d6b22..8d4f8b133 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/activity/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/activity/page.tsx @@ -6,11 +6,11 @@ import { useTranslation } from "@plane/i18n"; // ui import { Button } from "@plane/ui"; // components -import { PageHead } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; -import { ProfileActivityListPage } from "@/components/profile"; +import { PageHead } from "@/components/core/page-title"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { ProfileActivityListPage } from "@/components/profile/activity/profile-activity-list"; // hooks -import { SettingsHeading } from "@/components/settings"; +import { SettingsHeading } from "@/components/settings/heading"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; const PER_PAGE = 100; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/api-tokens/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/api-tokens/page.tsx index ecbc2f9aa..d37711e38 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/api-tokens/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/api-tokens/page.tsx @@ -8,17 +8,17 @@ import { PROFILE_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // component import { APITokenService } from "@plane/services"; -import { ApiTokenListItem, CreateApiTokenModal } from "@/components/api-token"; -import { PageHead } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; -import { SettingsHeading } from "@/components/settings"; -import { APITokenSettingsLoader } from "@/components/ui"; +import { CreateApiTokenModal } from "@/components/api-token/modal/create-token-modal"; +import { ApiTokenListItem } from "@/components/api-token/token-list-item"; +import { PageHead } from "@/components/core/page-title"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { SettingsHeading } from "@/components/settings/heading"; +import { APITokenSettingsLoader } from "@/components/ui/loader/settings/api-token"; import { API_TOKENS_LIST } from "@/constants/fetch-keys"; // store hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; -// services const apiTokenService = new APITokenService(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/layout.tsx index 43ff52032..4ca617cd5 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/layout.tsx @@ -1,11 +1,13 @@ "use client"; import { ReactNode } from "react"; -// components import { observer } from "mobx-react"; import { usePathname } from "next/navigation"; -import { SettingsContentWrapper, SettingsMobileNav } from "@/components/settings"; +// components +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; import { getProfileActivePath } from "@/components/settings/helper"; +import { SettingsMobileNav } from "@/components/settings/mobile"; +// local imports import { ProfileSidebar } from "./sidebar"; type Props = { diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/notifications/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/notifications/page.tsx index cc71877af..5b0d43ab2 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/notifications/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/notifications/page.tsx @@ -1,12 +1,13 @@ "use client"; import useSWR from "swr"; -// components +// plane imports import { useTranslation } from "@plane/i18n"; -import { PageHead } from "@/components/core"; -import { EmailNotificationForm } from "@/components/profile/notification"; -import { SettingsHeading } from "@/components/settings"; -import { EmailSettingsLoader } from "@/components/ui"; +// components +import { PageHead } from "@/components/core/page-title"; +import { EmailNotificationForm } from "@/components/profile/notification/email-notification-form"; +import { SettingsHeading } from "@/components/settings/heading"; +import { EmailSettingsLoader } from "@/components/ui/loader/settings/email"; // services import { UserService } from "@/services/user.service"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/page.tsx index f37178c2a..238119334 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/page.tsx @@ -3,11 +3,11 @@ import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; // components -import { LogoSpinner } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { ProfileForm } from "@/components/profile"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { PageHead } from "@/components/core/page-title"; +import { ProfileForm } from "@/components/profile/form"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; const ProfileSettingsPage = observer(() => { const { t } = useTranslation(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/preferences/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/preferences/page.tsx index 87479a2c8..5032ae1ba 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/preferences/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/preferences/page.tsx @@ -1,16 +1,17 @@ "use client"; import { observer } from "mobx-react"; +// plane imports import { useTranslation } from "@plane/i18n"; // components -import { LogoSpinner } from "@/components/common"; -import { PageHead } from "@/components/core"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { PageHead } from "@/components/core/page-title"; import { PreferencesList } from "@/components/preferences/list"; -import { ProfileSettingContentHeader } from "@/components/profile"; -// hooks import { LanguageTimezone } from "@/components/profile/preferences/language-timezone"; -import { SettingsHeading } from "@/components/settings"; -import { useUserProfile } from "@/hooks/store"; +import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header"; +import { SettingsHeading } from "@/components/settings/heading"; +// hooks +import { useUserProfile } from "@/hooks/store/user"; const ProfileAppearancePage = observer(() => { const { t } = useTranslation(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx index 2a405e0b0..3d0c29858 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/security/page.tsx @@ -10,12 +10,12 @@ import { useTranslation } from "@plane/i18n"; import { Button, Input, PasswordStrengthIndicator, TOAST_TYPE, setToast } from "@plane/ui"; import { getPasswordStrength } from "@plane/utils"; // components -import { PageHead } from "@/components/core"; -import { ProfileSettingContentHeader } from "@/components/profile"; +import { PageHead } from "@/components/core/page-title"; +import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header"; // helpers import { authErrorHandler, type EAuthenticationErrorCodes } from "@/helpers/authentication.helper"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // services import { AuthService } from "@/services/auth.service"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/sidebar.tsx index 7153e11be..0dd30509c 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/sidebar.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/account/sidebar.tsx @@ -5,7 +5,7 @@ import { CircleUser, Activity, Bell, CircleUserRound, KeyRound, Settings2, Block import { GROUPED_PROFILE_SETTINGS, PROFILE_SETTINGS_CATEGORIES } from "@plane/constants"; import { getFileURL } from "@plane/utils"; // components -import { SettingsSidebar } from "@/components/settings"; +import { SettingsSidebar } from "@/components/settings/sidebar"; // hooks import { useUser } from "@/hooks/store/user"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/page.tsx index 99e4bd77d..b2eb7127c 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/automations/page.tsx @@ -9,12 +9,14 @@ import { IProject } from "@plane/types"; // ui import { TOAST_TYPE, setToast } from "@plane/ui"; // components -import { NotAuthorizedView } from "@/components/auth-screens"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; import { AutoArchiveAutomation, AutoCloseAutomation } from "@/components/automation"; -import { PageHead } from "@/components/core"; +import { PageHead } from "@/components/core/page-title"; // hooks -import { SettingsContentWrapper, SettingsHeading } from "@/components/settings"; -import { useProject, useUserPermissions } from "@/hooks/store"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { SettingsHeading } from "@/components/settings/heading"; +import { useProject } from "@/hooks/store/use-project"; +import { useUserPermissions } from "@/hooks/store/user"; // plane web imports import { CustomAutomationsRoot } from "@/plane-web/components/automations/root"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/estimates/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/estimates/page.tsx index db9d17e89..e0e153bbb 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/estimates/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/estimates/page.tsx @@ -4,12 +4,13 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; import { EstimateRoot } from "@/components/estimates"; // hooks -import { SettingsContentWrapper } from "@/components/settings"; -import { useProject, useUserPermissions } from "@/hooks/store"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; const EstimatesSettingsPage = observer(() => { const { workspaceSlug, projectId } = useParams(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/page.tsx index d84ba10c4..92933cabb 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/features/page.tsx @@ -4,12 +4,13 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; -import { ProjectFeaturesList } from "@/components/project"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; +import { ProjectFeaturesList } from "@/components/project/settings/features-list"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; // hooks -import { SettingsContentWrapper } from "@/components/settings"; -import { useProject, useUserPermissions } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; const FeaturesSettingsPage = observer(() => { const { workspaceSlug, projectId } = useParams(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/labels/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/labels/page.tsx index 317e76929..9841120bb 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/labels/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/labels/page.tsx @@ -6,12 +6,13 @@ import { autoScrollForElements } from "@atlaskit/pragmatic-drag-and-drop-auto-sc import { observer } from "mobx-react"; // components import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; import { ProjectSettingsLabelList } from "@/components/labels"; // hooks -import { SettingsContentWrapper } from "@/components/settings"; -import { useProject, useUserPermissions } from "@/hooks/store"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; const LabelsSettingsPage = observer(() => { // store hooks diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx index 216a74631..badb1ed3d 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/members/page.tsx @@ -6,12 +6,15 @@ import { useParams } from "next/navigation"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // components -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; -import { ProjectMemberList, ProjectSettingsMemberDefaults } from "@/components/project"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; // hooks -import { SettingsContentWrapper, SettingsHeading } from "@/components/settings"; -import { useProject, useUserPermissions } from "@/hooks/store"; +import { ProjectMemberList } from "@/components/project/member-list"; +import { ProjectSettingsMemberDefaults } from "@/components/project/project-settings-member-defaults"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { SettingsHeading } from "@/components/settings/heading"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; // plane web imports import { ProjectTeamspaceList } from "@/plane-web/components/projects/teamspaces"; import { getProjectSettingsPageLabelI18nKey } from "@/plane-web/helpers/project-settings"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/page.tsx index cf79fa127..8af72805f 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/page.tsx @@ -4,20 +4,21 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; -// components +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { PageHead } from "@/components/core"; -import { - ArchiveRestoreProjectModal, - ArchiveProjectSelection, - DeleteProjectModal, - DeleteProjectSection, - ProjectDetailsForm, - ProjectDetailsFormLoader, -} from "@/components/project"; +// components +import { PageHead } from "@/components/core/page-title"; +import { DeleteProjectModal } from "@/components/project/delete-project-modal"; +import { ProjectDetailsForm } from "@/components/project/form"; +import { ProjectDetailsFormLoader } from "@/components/project/form-loader"; +import { ArchiveRestoreProjectModal } from "@/components/project/settings/archive-project/archive-restore-modal"; +import { ArchiveProjectSelection } from "@/components/project/settings/archive-project/selection"; +import { DeleteProjectSection } from "@/components/project/settings/delete-project-section"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; // hooks -import { SettingsContentWrapper } from "@/components/settings"; -import { useProject, useUserPermissions } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; + const ProjectSettingsPage = observer(() => { // states const [selectProject, setSelectedProject] = useState(null); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/states/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/states/page.tsx index 30f6c3da6..c7dfaedbf 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/states/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/[projectId]/states/page.tsx @@ -5,12 +5,14 @@ import { useParams } from "next/navigation"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; // components -import { NotAuthorizedView } from "@/components/auth-screens"; -import { PageHead } from "@/components/core"; +import { NotAuthorizedView } from "@/components/auth-screens/not-authorized-view"; +import { PageHead } from "@/components/core/page-title"; import { ProjectStateRoot } from "@/components/project-states"; // hook -import { SettingsContentWrapper, SettingsHeading } from "@/components/settings"; -import { useProject, useUserPermissions } from "@/hooks/store"; +import { SettingsContentWrapper } from "@/components/settings/content-wrapper"; +import { SettingsHeading } from "@/components/settings/heading"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; const StatesSettingsPage = observer(() => { const { workspaceSlug, projectId } = useParams(); diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/layout.tsx index 011b240b9..fd521b9cd 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/layout.tsx @@ -4,10 +4,10 @@ import { ReactNode, useEffect } from "react"; import { observer } from "mobx-react"; import { useParams, usePathname } from "next/navigation"; // components -import { SettingsMobileNav } from "@/components/settings"; import { getProjectActivePath } from "@/components/settings/helper"; +import { SettingsMobileNav } from "@/components/settings/mobile"; import { ProjectSettingsSidebar } from "@/components/settings/project/sidebar"; -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; import { ProjectAuthWrapper } from "@/plane-web/layouts/project-wrapper"; diff --git a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/page.tsx b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/page.tsx index f94ca2141..7715afecd 100644 --- a/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/page.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/(settings)/settings/projects/page.tsx @@ -5,7 +5,7 @@ import { useTheme } from "next-themes"; import { PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; import { Button, getButtonStyling } from "@plane/ui"; import { cn } from "@plane/utils"; -import { useCommandPalette } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; const ProjectSettingsPage = () => { // store hooks diff --git a/apps/web/app/(all)/[workspaceSlug]/layout.tsx b/apps/web/app/(all)/[workspaceSlug]/layout.tsx index 7cecc697f..ed16556a9 100644 --- a/apps/web/app/(all)/[workspaceSlug]/layout.tsx +++ b/apps/web/app/(all)/[workspaceSlug]/layout.tsx @@ -1,7 +1,7 @@ "use client"; import { AppRailProvider } from "@/hooks/context/app-rail-context"; -import { WorkspaceContentWrapper } from "@/plane-web/components/workspace"; +import { WorkspaceContentWrapper } from "@/plane-web/components/workspace/content-wrapper"; export default function WorkspaceLayout({ children }: { children: React.ReactNode }) { return ( diff --git a/apps/web/app/(all)/accounts/forgot-password/page.tsx b/apps/web/app/(all)/accounts/forgot-password/page.tsx index 11d646985..c49e21748 100644 --- a/apps/web/app/(all)/accounts/forgot-password/page.tsx +++ b/apps/web/app/(all)/accounts/forgot-password/page.tsx @@ -8,7 +8,7 @@ import { AuthHeader } from "@/components/auth-screens/header"; import { EAuthModes, EPageTypes } from "@/helpers/authentication.helper"; // layouts import DefaultLayout from "@/layouts/default-layout"; -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; const ForgotPasswordPage = observer(() => ( diff --git a/apps/web/app/(all)/accounts/reset-password/page.tsx b/apps/web/app/(all)/accounts/reset-password/page.tsx index 43468a019..93cc0f830 100644 --- a/apps/web/app/(all)/accounts/reset-password/page.tsx +++ b/apps/web/app/(all)/accounts/reset-password/page.tsx @@ -3,13 +3,13 @@ // plane imports import { EAuthModes } from "@plane/constants"; // components -import { ResetPasswordForm } from "@/components/account"; +import { ResetPasswordForm } from "@/components/account/auth-forms/reset-password"; import { AuthHeader } from "@/components/auth-screens/header"; // helpers import { EPageTypes } from "@/helpers/authentication.helper"; // layouts import DefaultLayout from "@/layouts/default-layout"; -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; const ResetPasswordPage = () => ( diff --git a/apps/web/app/(all)/accounts/set-password/page.tsx b/apps/web/app/(all)/accounts/set-password/page.tsx index f09218e27..3f9a07bf1 100644 --- a/apps/web/app/(all)/accounts/set-password/page.tsx +++ b/apps/web/app/(all)/accounts/set-password/page.tsx @@ -3,13 +3,13 @@ // plane imports import { EAuthModes } from "@plane/constants"; // components -import { ResetPasswordForm } from "@/components/account"; +import { ResetPasswordForm } from "@/components/account/auth-forms/reset-password"; import { AuthHeader } from "@/components/auth-screens/header"; // helpers import { EPageTypes } from "@/helpers/authentication.helper"; // layouts import DefaultLayout from "@/layouts/default-layout"; -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; const SetPasswordPage = () => ( diff --git a/apps/web/app/(all)/create-workspace/page.tsx b/apps/web/app/(all)/create-workspace/page.tsx index ab28596e4..e715f8379 100644 --- a/apps/web/app/(all)/create-workspace/page.tsx +++ b/apps/web/app/(all)/create-workspace/page.tsx @@ -4,16 +4,17 @@ import { useState } from "react"; import { observer } from "mobx-react"; import Image from "next/image"; import Link from "next/link"; +// plane imports import { useTranslation } from "@plane/i18n"; import { IWorkspace } from "@plane/types"; -// components import { Button, getButtonStyling, PlaneLogo } from "@plane/ui"; -import { CreateWorkspaceForm } from "@/components/workspace"; +// components +import { CreateWorkspaceForm } from "@/components/workspace/create-workspace-form"; // hooks -import { useUser, useUserProfile } from "@/hooks/store"; +import { useUser, useUserProfile } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // wrappers -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; // plane web helpers import { getIsWorkspaceCreationDisabled } from "@/plane-web/helpers/instance.helper"; // images diff --git a/apps/web/app/(all)/installations/[provider]/page.tsx b/apps/web/app/(all)/installations/[provider]/page.tsx index 218d7dee2..03d224f58 100644 --- a/apps/web/app/(all)/installations/[provider]/page.tsx +++ b/apps/web/app/(all)/installations/[provider]/page.tsx @@ -3,7 +3,7 @@ import React, { useEffect } from "react"; import { useParams, useSearchParams } from "next/navigation"; // ui -import { LogoSpinner } from "@/components/common"; +import { LogoSpinner } from "@/components/common/logo-spinner"; // services import { AppInstallationService } from "@/services/app_installation.service"; diff --git a/apps/web/app/(all)/invitations/page.tsx b/apps/web/app/(all)/invitations/page.tsx index 5a2ee5c3a..3ac1ce86e 100644 --- a/apps/web/app/(all)/invitations/page.tsx +++ b/apps/web/app/(all)/invitations/page.tsx @@ -15,16 +15,17 @@ import type { IWorkspaceMemberInvitation } from "@plane/types"; import { Button, TOAST_TYPE, setToast, PlaneLogo } from "@plane/ui"; import { truncateText } from "@plane/utils"; // components -import { EmptyState } from "@/components/common"; +import { EmptyState } from "@/components/common/empty-state"; import { WorkspaceLogo } from "@/components/workspace/logo"; import { USER_WORKSPACES_LIST } from "@/constants/fetch-keys"; // helpers // hooks import { captureError, captureSuccess, joinEventGroup } from "@/helpers/event-tracker.helper"; -import { useUser, useUserProfile, useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUser, useUserProfile } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // services -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; // plane web services import { WorkspaceService } from "@/plane-web/services"; // images diff --git a/apps/web/app/(all)/onboarding/page.tsx b/apps/web/app/(all)/onboarding/page.tsx index f85fea7f1..14ef5881f 100644 --- a/apps/web/app/(all)/onboarding/page.tsx +++ b/apps/web/app/(all)/onboarding/page.tsx @@ -4,17 +4,17 @@ import { observer } from "mobx-react"; import useSWR from "swr"; // components -import { LogoSpinner } from "@/components/common"; +import { LogoSpinner } from "@/components/common/logo-spinner"; import { OnboardingRoot } from "@/components/onboarding"; // constants import { USER_WORKSPACES_LIST } from "@/constants/fetch-keys"; // helpers import { EPageTypes } from "@/helpers/authentication.helper"; // hooks -import { useUser, useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUser } from "@/hooks/store/user"; // wrappers -import { AuthenticationWrapper } from "@/lib/wrappers"; -import { WorkspaceContentWrapper } from "@/plane-web/components/workspace"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; // services import { WorkspaceService } from "@/plane-web/services"; diff --git a/apps/web/app/(all)/profile/activity/page.tsx b/apps/web/app/(all)/profile/activity/page.tsx index ae27bf793..4fa1039ca 100644 --- a/apps/web/app/(all)/profile/activity/page.tsx +++ b/apps/web/app/(all)/profile/activity/page.tsx @@ -2,17 +2,15 @@ import { useState } from "react"; import { observer } from "mobx-react"; +// plane imports import { useTranslation } from "@plane/i18n"; -// ui import { Button } from "@plane/ui"; // components -import { PageHead } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; -import { - ProfileActivityListPage, - ProfileSettingContentHeader, - ProfileSettingContentWrapper, -} from "@/components/profile"; +import { PageHead } from "@/components/core/page-title"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { ProfileActivityListPage } from "@/components/profile/activity/profile-activity-list"; +import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header"; +import { ProfileSettingContentWrapper } from "@/components/profile/profile-setting-content-wrapper"; // hooks import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; diff --git a/apps/web/app/(all)/profile/appearance/page.tsx b/apps/web/app/(all)/profile/appearance/page.tsx index 877dfd511..679ea2292 100644 --- a/apps/web/app/(all)/profile/appearance/page.tsx +++ b/apps/web/app/(all)/profile/appearance/page.tsx @@ -10,12 +10,14 @@ import { IUserTheme } from "@plane/types"; import { setPromiseToast } from "@plane/ui"; // components import { applyTheme, unsetCustomCssVariables } from "@plane/utils"; -import { LogoSpinner } from "@/components/common"; -import { ThemeSwitch, PageHead, CustomThemeSelector } from "@/components/core"; -import { ProfileSettingContentHeader, ProfileSettingContentWrapper } from "@/components/profile"; -// helpers +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { PageHead } from "@/components/core/page-title"; +import { CustomThemeSelector } from "@/components/core/theme/custom-theme-selector"; +import { ThemeSwitch } from "@/components/core/theme/theme-switch"; +import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header"; +import { ProfileSettingContentWrapper } from "@/components/profile/profile-setting-content-wrapper"; // hooks -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; const ProfileAppearancePage = observer(() => { const { t } = useTranslation(); diff --git a/apps/web/app/(all)/profile/layout.tsx b/apps/web/app/(all)/profile/layout.tsx index 21e02480d..d9a440fb4 100644 --- a/apps/web/app/(all)/profile/layout.tsx +++ b/apps/web/app/(all)/profile/layout.tsx @@ -4,7 +4,7 @@ import { ReactNode } from "react"; // components import { CommandPalette } from "@/components/command-palette"; // wrappers -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; // layout import { ProfileLayoutSidebar } from "./sidebar"; diff --git a/apps/web/app/(all)/profile/notifications/page.tsx b/apps/web/app/(all)/profile/notifications/page.tsx index 5e154fdff..9f7bb2203 100644 --- a/apps/web/app/(all)/profile/notifications/page.tsx +++ b/apps/web/app/(all)/profile/notifications/page.tsx @@ -3,10 +3,11 @@ import useSWR from "swr"; // components import { useTranslation } from "@plane/i18n"; -import { PageHead } from "@/components/core"; -import { ProfileSettingContentHeader, ProfileSettingContentWrapper } from "@/components/profile"; -import { EmailNotificationForm } from "@/components/profile/notification"; -import { EmailSettingsLoader } from "@/components/ui"; +import { PageHead } from "@/components/core/page-title"; +import { EmailNotificationForm } from "@/components/profile/notification/email-notification-form"; +import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header"; +import { ProfileSettingContentWrapper } from "@/components/profile/profile-setting-content-wrapper"; +import { EmailSettingsLoader } from "@/components/ui/loader/settings/email"; // services import { UserService } from "@/services/user.service"; diff --git a/apps/web/app/(all)/profile/page.tsx b/apps/web/app/(all)/profile/page.tsx index 66b59ab9f..01ff11145 100644 --- a/apps/web/app/(all)/profile/page.tsx +++ b/apps/web/app/(all)/profile/page.tsx @@ -1,13 +1,15 @@ "use client"; import { observer } from "mobx-react"; +// plane imports import { useTranslation } from "@plane/i18n"; // components -import { LogoSpinner } from "@/components/common"; -import { PageHead } from "@/components/core"; -import { ProfileSettingContentWrapper, ProfileForm } from "@/components/profile"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { PageHead } from "@/components/core/page-title"; +import { ProfileForm } from "@/components/profile/form"; +import { ProfileSettingContentWrapper } from "@/components/profile/profile-setting-content-wrapper"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; const ProfileSettingsPage = observer(() => { const { t } = useTranslation(); diff --git a/apps/web/app/(all)/profile/security/page.tsx b/apps/web/app/(all)/profile/security/page.tsx index 104bf46bb..cff764ca8 100644 --- a/apps/web/app/(all)/profile/security/page.tsx +++ b/apps/web/app/(all)/profile/security/page.tsx @@ -4,18 +4,19 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { Controller, useForm } from "react-hook-form"; import { Eye, EyeOff } from "lucide-react"; +// plane imports import { E_PASSWORD_STRENGTH } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -// ui import { Button, Input, PasswordStrengthIndicator, TOAST_TYPE, setToast } from "@plane/ui"; // components import { getPasswordStrength } from "@plane/utils"; import { PageHead } from "@/components/core/page-title"; -import { ProfileSettingContentHeader, ProfileSettingContentWrapper } from "@/components/profile"; +import { ProfileSettingContentHeader } from "@/components/profile/profile-setting-content-header"; +import { ProfileSettingContentWrapper } from "@/components/profile/profile-setting-content-wrapper"; // helpers import { authErrorHandler, type EAuthenticationErrorCodes } from "@/helpers/authentication.helper"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // services import { AuthService } from "@/services/auth.service"; diff --git a/apps/web/app/(all)/profile/sidebar.tsx b/apps/web/app/(all)/profile/sidebar.tsx index be70e1e13..50144d933 100644 --- a/apps/web/app/(all)/profile/sidebar.tsx +++ b/apps/web/app/(all)/profile/sidebar.tsx @@ -24,11 +24,11 @@ import { useTranslation } from "@plane/i18n"; import { TOAST_TYPE, Tooltip, setToast } from "@plane/ui"; import { cn, getFileURL } from "@plane/utils"; // components -import { SidebarNavItem } from "@/components/sidebar"; -// constants -// helpers +import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; // hooks -import { useAppTheme, useUser, useUserSettings, useWorkspace } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUser, useUserSettings } from "@/hooks/store/user"; import { usePlatformOS } from "@/hooks/use-platform-os"; const WORKSPACE_ACTION_LINKS = [ diff --git a/apps/web/app/(all)/sign-up/page.tsx b/apps/web/app/(all)/sign-up/page.tsx index 7d3943d1c..18deab2d8 100644 --- a/apps/web/app/(all)/sign-up/page.tsx +++ b/apps/web/app/(all)/sign-up/page.tsx @@ -1,12 +1,12 @@ "use client"; // components -import { AuthBase } from "@/components/auth-screens"; +import { AuthBase } from "@/components/auth-screens/auth-base"; // helpers import { EAuthModes, EPageTypes } from "@/helpers/authentication.helper"; // assets import DefaultLayout from "@/layouts/default-layout"; -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; const SignUpPage = () => ( diff --git a/apps/web/app/(all)/workspace-invitations/page.tsx b/apps/web/app/(all)/workspace-invitations/page.tsx index 524393755..6f9d78d56 100644 --- a/apps/web/app/(all)/workspace-invitations/page.tsx +++ b/apps/web/app/(all)/workspace-invitations/page.tsx @@ -6,17 +6,17 @@ import { useSearchParams } from "next/navigation"; import useSWR from "swr"; import { Boxes, Check, Share2, Star, User2, X } from "lucide-react"; // components -import { LogoSpinner } from "@/components/common"; +import { LogoSpinner } from "@/components/common/logo-spinner"; import { EmptySpace, EmptySpaceItem } from "@/components/ui/empty-space"; // constants import { WORKSPACE_INVITATION } from "@/constants/fetch-keys"; // helpers import { EPageTypes } from "@/helpers/authentication.helper"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // wrappers -import { AuthenticationWrapper } from "@/lib/wrappers"; +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; import { WorkspaceService } from "@/plane-web/services"; // services diff --git a/apps/web/app/(home)/page.tsx b/apps/web/app/(home)/page.tsx index 68a0dd598..20a184ffc 100644 --- a/apps/web/app/(home)/page.tsx +++ b/apps/web/app/(home)/page.tsx @@ -1,16 +1,13 @@ "use client"; import React from "react"; // components -// constants +import { AuthBase } from "@/components/auth-screens/auth-base"; // helpers -import { AuthBase } from "@/components/auth-screens"; import { EAuthModes, EPageTypes } from "@/helpers/authentication.helper"; -// hooks // layouts import DefaultLayout from "@/layouts/default-layout"; // wrappers -import { AuthenticationWrapper } from "@/lib/wrappers"; -// assets +import { AuthenticationWrapper } from "@/lib/wrappers/authentication-wrapper"; const HomePage = () => ( diff --git a/apps/web/app/provider.tsx b/apps/web/app/provider.tsx index fb4b165e2..d7fbfd3b0 100644 --- a/apps/web/app/provider.tsx +++ b/apps/web/app/provider.tsx @@ -16,7 +16,7 @@ import "@/lib/polyfills"; // mobx store provider import { StoreProvider } from "@/lib/store-context"; // wrappers -import { InstanceWrapper } from "@/lib/wrappers"; +import { InstanceWrapper } from "@/lib/wrappers/instance-wrapper"; // dynamic imports const StoreWrapper = dynamic(() => import("@/lib/wrappers/store-wrapper"), { ssr: false }); const PostHogProvider = dynamic(() => import("@/lib/posthog-provider"), { ssr: false }); diff --git a/apps/web/ce/components/active-cycles/index.ts b/apps/web/ce/components/active-cycles/index.ts index 87c131821..1efe34c51 100644 --- a/apps/web/ce/components/active-cycles/index.ts +++ b/apps/web/ce/components/active-cycles/index.ts @@ -1,2 +1 @@ export * from "./root"; -export * from "./workspace-active-cycles-upgrade"; diff --git a/apps/web/ce/components/active-cycles/root.tsx b/apps/web/ce/components/active-cycles/root.tsx index 3c073890f..caad61a0a 100644 --- a/apps/web/ce/components/active-cycles/root.tsx +++ b/apps/web/ce/components/active-cycles/root.tsx @@ -1,3 +1,4 @@ -import { WorkspaceActiveCyclesUpgrade } from "@/plane-web/components/active-cycles"; +// local imports +import { WorkspaceActiveCyclesUpgrade } from "./workspace-active-cycles-upgrade"; export const WorkspaceActiveCyclesRoot = () => ; diff --git a/apps/web/ce/components/active-cycles/workspace-active-cycles-upgrade.tsx b/apps/web/ce/components/active-cycles/workspace-active-cycles-upgrade.tsx index b82fb019e..9e0289a3c 100644 --- a/apps/web/ce/components/active-cycles/workspace-active-cycles-upgrade.tsx +++ b/apps/web/ce/components/active-cycles/workspace-active-cycles-upgrade.tsx @@ -8,12 +8,11 @@ import { AlertOctagon, BarChart4, CircleDashed, Folder, Microscope, Search } fro import { MARKETING_PRICING_PAGE_LINK } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { ContentWrapper, getButtonStyling } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { ProIcon } from "@/components/common"; -// helper +// components +import { ProIcon } from "@/components/common/pro-icon"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; export const WORKSPACE_ACTIVE_CYCLES_DETAILS = [ { diff --git a/apps/web/ce/components/breadcrumbs/common.tsx b/apps/web/ce/components/breadcrumbs/common.tsx index 5b2f573cb..abcb5cb3d 100644 --- a/apps/web/ce/components/breadcrumbs/common.tsx +++ b/apps/web/ce/components/breadcrumbs/common.tsx @@ -4,8 +4,8 @@ import { FC } from "react"; // plane imports import { EProjectFeatureKey } from "@plane/constants"; // local components -import { ProjectFeatureBreadcrumb } from "./project-feature"; import { ProjectBreadcrumb } from "./project"; +import { ProjectFeatureBreadcrumb } from "./project-feature"; type TCommonProjectBreadcrumbProps = { workspaceSlug: string; diff --git a/apps/web/ce/components/breadcrumbs/index.ts b/apps/web/ce/components/breadcrumbs/index.ts deleted file mode 100644 index aad2cb352..000000000 --- a/apps/web/ce/components/breadcrumbs/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./common"; -export * from "./project-feature"; -export * from "./project"; diff --git a/apps/web/ce/components/breadcrumbs/project-feature.tsx b/apps/web/ce/components/breadcrumbs/project-feature.tsx index c606a2d3f..fefbe9d18 100644 --- a/apps/web/ce/components/breadcrumbs/project-feature.tsx +++ b/apps/web/ce/components/breadcrumbs/project-feature.tsx @@ -2,16 +2,16 @@ import { FC } from "react"; import { observer } from "mobx-react"; -// ui +// plane imports import { EProjectFeatureKey } from "@plane/constants"; import { BreadcrumbNavigationDropdown, Breadcrumbs, ISvgIcons } from "@plane/ui"; // components -import { SwitcherLabel } from "@/components/common"; -import { TNavigationItem } from "@/components/workspace"; +import { SwitcherLabel } from "@/components/common/switcher-label"; +import type { TNavigationItem } from "@/components/workspace/sidebar/project-navigation"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; -// local components +// local imports import { getProjectFeatureNavigation } from "../projects/navigation"; type TProjectFeatureBreadcrumbProps = { diff --git a/apps/web/ce/components/breadcrumbs/project.tsx b/apps/web/ce/components/breadcrumbs/project.tsx index 1beab197a..c8c092489 100644 --- a/apps/web/ce/components/breadcrumbs/project.tsx +++ b/apps/web/ce/components/breadcrumbs/project.tsx @@ -6,9 +6,9 @@ import { Briefcase } from "lucide-react"; import { ICustomSearchSelectOption } from "@plane/types"; import { BreadcrumbNavigationSearchDropdown, Breadcrumbs, Logo } from "@plane/ui"; // components -import { SwitcherLabel } from "@/components/common"; +import { SwitcherLabel } from "@/components/common/switcher-label"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; import { TProject } from "@/plane-web/types"; diff --git a/apps/web/ce/components/command-palette/actions/work-item-actions/change-state-list.tsx b/apps/web/ce/components/command-palette/actions/work-item-actions/change-state-list.tsx index 1ec015bbd..d5bc3aba1 100644 --- a/apps/web/ce/components/command-palette/actions/work-item-actions/change-state-list.tsx +++ b/apps/web/ce/components/command-palette/actions/work-item-actions/change-state-list.tsx @@ -5,7 +5,7 @@ import { Check } from "lucide-react"; import { EIconSize } from "@plane/constants"; import { Spinner, StateGroupIcon } from "@plane/ui"; // store hooks -import { useProjectState } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state"; export type TChangeWorkItemStateListProps = { projectId: string | null; diff --git a/apps/web/ce/components/command-palette/helpers.tsx b/apps/web/ce/components/command-palette/helpers.tsx index cd47f848d..7a5eb6802 100644 --- a/apps/web/ce/components/command-palette/helpers.tsx +++ b/apps/web/ce/components/command-palette/helpers.tsx @@ -14,7 +14,7 @@ import { ContrastIcon, DiceIcon } from "@plane/ui"; // helpers import { generateWorkItemLink } from "@plane/utils"; // plane web components -import { IssueIdentifier } from "@/plane-web/components/issues"; +import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; export type TCommandGroups = { [key: string]: { diff --git a/apps/web/ce/components/command-palette/modals/issue-level.tsx b/apps/web/ce/components/command-palette/modals/issue-level.tsx index 9f80727d3..843e39cfb 100644 --- a/apps/web/ce/components/command-palette/modals/issue-level.tsx +++ b/apps/web/ce/components/command-palette/modals/issue-level.tsx @@ -4,10 +4,13 @@ import { useParams, usePathname } from "next/navigation"; // plane imports import { EIssueServiceType, EIssuesStoreType, TIssue } from "@plane/types"; // components -import { BulkDeleteIssuesModal } from "@/components/core"; -import { CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; +import { BulkDeleteIssuesModal } from "@/components/core/modals/bulk-delete-issues-modal"; +import { DeleteIssueModal } from "@/components/issues/delete-issue-modal"; +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; // 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"; import { useAppRouter } from "@/hooks/use-app-router"; import { useIssuesActions } from "@/hooks/use-issues-actions"; diff --git a/apps/web/ce/components/command-palette/modals/project-level.tsx b/apps/web/ce/components/command-palette/modals/project-level.tsx index e0ff03a48..6b9e8000d 100644 --- a/apps/web/ce/components/command-palette/modals/project-level.tsx +++ b/apps/web/ce/components/command-palette/modals/project-level.tsx @@ -1,11 +1,11 @@ import { observer } from "mobx-react"; // components -import { CycleCreateUpdateModal } from "@/components/cycles"; +import { CycleCreateUpdateModal } from "@/components/cycles/modal"; import { CreateUpdateModuleModal } from "@/components/modules"; -import { CreatePageModal } from "@/components/pages"; -import { CreateUpdateProjectViewModal } from "@/components/views"; +import { CreatePageModal } from "@/components/pages/modals/create-page-modal"; +import { CreateUpdateProjectViewModal } from "@/components/views/modal"; // hooks -import { useCommandPalette } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; // plane web hooks import { EPageStoreType } from "@/plane-web/hooks/store"; diff --git a/apps/web/ce/components/command-palette/modals/workspace-level.tsx b/apps/web/ce/components/command-palette/modals/workspace-level.tsx index 64d22493e..a6c89776d 100644 --- a/apps/web/ce/components/command-palette/modals/workspace-level.tsx +++ b/apps/web/ce/components/command-palette/modals/workspace-level.tsx @@ -1,8 +1,8 @@ import { observer } from "mobx-react"; // components -import { CreateProjectModal } from "@/components/project"; +import { CreateProjectModal } from "@/components/project/create-project-modal"; // hooks -import { useCommandPalette } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; export type TWorkspaceLevelModalsProps = { workspaceSlug: string; diff --git a/apps/web/ce/components/comments/comment-block.tsx b/apps/web/ce/components/comments/comment-block.tsx index 08c5bb331..46d3f3b58 100644 --- a/apps/web/ce/components/comments/comment-block.tsx +++ b/apps/web/ce/components/comments/comment-block.tsx @@ -6,7 +6,7 @@ import { TIssueComment } from "@plane/types"; import { Avatar, Tooltip } from "@plane/ui"; import { calculateTimeAgo, cn, getFileURL, renderFormattedDate, renderFormattedTime } from "@plane/utils"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; type TCommentBlock = { comment: TIssueComment; diff --git a/apps/web/ce/components/common/extended-app-header.tsx b/apps/web/ce/components/common/extended-app-header.tsx index f0c974348..5a2df91cb 100644 --- a/apps/web/ce/components/common/extended-app-header.tsx +++ b/apps/web/ce/components/common/extended-app-header.tsx @@ -1,6 +1,6 @@ import { ReactNode } from "react"; import { observer } from "mobx-react"; -import { AppSidebarToggleButton } from "@/components/sidebar"; +import { AppSidebarToggleButton } from "@/components/sidebar/sidebar-toggle-button"; import { useAppTheme } from "@/hooks/store/use-app-theme"; export const ExtendedAppHeader = observer((props: { header: ReactNode }) => { diff --git a/apps/web/ce/components/cycles/active-cycle/root.tsx b/apps/web/ce/components/cycles/active-cycle/root.tsx index 6b2ecb928..66a580cbd 100644 --- a/apps/web/ce/components/cycles/active-cycle/root.tsx +++ b/apps/web/ce/components/cycles/active-cycle/root.tsx @@ -7,17 +7,15 @@ import { Disclosure } from "@headlessui/react"; import { useTranslation } from "@plane/i18n"; import { Row } from "@plane/ui"; // components -import { - ActiveCycleProductivity, - ActiveCycleProgress, - ActiveCycleStats, - CycleListGroupHeader, - CyclesListItem, -} from "@/components/cycles"; +import { ActiveCycleStats } from "@/components/cycles/active-cycle/cycle-stats"; +import { ActiveCycleProductivity } from "@/components/cycles/active-cycle/productivity"; +import { ActiveCycleProgress } from "@/components/cycles/active-cycle/progress"; import useCyclesDetails from "@/components/cycles/active-cycle/use-cycles-details"; -import { DetailedEmptyState } from "@/components/empty-state"; +import { CycleListGroupHeader } from "@/components/cycles/list/cycle-list-group-header"; +import { CyclesListItem } from "@/components/cycles/list/cycles-list-item"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; // hooks -import { useCycle } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import { ActiveCycleIssueDetails } from "@/store/issue/cycle"; diff --git a/apps/web/ce/components/cycles/analytics-sidebar/base.tsx b/apps/web/ce/components/cycles/analytics-sidebar/base.tsx index 518f98648..c9c56990a 100644 --- a/apps/web/ce/components/cycles/analytics-sidebar/base.tsx +++ b/apps/web/ce/components/cycles/analytics-sidebar/base.tsx @@ -1,17 +1,17 @@ "use client"; import { FC, Fragment } from "react"; import { observer } from "mobx-react"; -// plane ui +// plane imports import { useTranslation } from "@plane/i18n"; import { TCycleEstimateType } from "@plane/types"; import { Loader } from "@plane/ui"; -// components import { getDate } from "@plane/utils"; +// components import ProgressChart from "@/components/core/sidebar/progress-chart"; -import { EstimateTypeDropdown, validateCycleSnapshot } from "@/components/cycles"; -// helpers +import { validateCycleSnapshot } from "@/components/cycles/analytics-sidebar/issue-progress"; +import { EstimateTypeDropdown } from "@/components/cycles/dropdowns"; // hooks -import { useCycle } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; type ProgressChartProps = { workspaceSlug: string; diff --git a/apps/web/ce/components/de-dupe/duplicate-popover/root.tsx b/apps/web/ce/components/de-dupe/duplicate-popover/root.tsx index ad1c2e5c3..90193a69c 100644 --- a/apps/web/ce/components/de-dupe/duplicate-popover/root.tsx +++ b/apps/web/ce/components/de-dupe/duplicate-popover/root.tsx @@ -4,7 +4,7 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; // types import { TDeDupeIssue } from "@plane/types"; -import { TIssueOperations } from "@/components/issues"; +import type { TIssueOperations } from "@/components/issues/issue-detail"; type TDeDupeIssuePopoverRootProps = { workspaceSlug: string; diff --git a/apps/web/ce/components/editor/embeds/mentions/root.tsx b/apps/web/ce/components/editor/embeds/mentions/root.tsx index 16e21f848..23f15fe27 100644 --- a/apps/web/ce/components/editor/embeds/mentions/root.tsx +++ b/apps/web/ce/components/editor/embeds/mentions/root.tsx @@ -1,4 +1,4 @@ // plane editor -import { TMentionComponentProps } from "@plane/editor"; +import type { TMentionComponentProps } from "@plane/editor"; export const EditorAdditionalMentionsRoot: React.FC = () => null; diff --git a/apps/web/ce/components/estimates/estimate-list-item-buttons.tsx b/apps/web/ce/components/estimates/estimate-list-item-buttons.tsx index 58bae9b74..c6b94b8d8 100644 --- a/apps/web/ce/components/estimates/estimate-list-item-buttons.tsx +++ b/apps/web/ce/components/estimates/estimate-list-item-buttons.tsx @@ -4,7 +4,7 @@ import { Pen, Trash } from "lucide-react"; import { PROJECT_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { Tooltip } from "@plane/ui"; // components -import { ProIcon } from "@/components/common"; +import { ProIcon } from "@/components/common/pro-icon"; type TEstimateListItem = { estimateId: string; diff --git a/apps/web/ce/components/home/peek-overviews.tsx b/apps/web/ce/components/home/peek-overviews.tsx index a321f4a9b..05544302d 100644 --- a/apps/web/ce/components/home/peek-overviews.tsx +++ b/apps/web/ce/components/home/peek-overviews.tsx @@ -1,6 +1,6 @@ "use client"; -import { IssuePeekOverview } from "@/components/issues"; +import { IssuePeekOverview } from "@/components/issues/peek-overview"; export const HomePeekOverviewsRoot = () => ( <> diff --git a/apps/web/ce/components/issues/bulk-operations/root.tsx b/apps/web/ce/components/issues/bulk-operations/root.tsx index 741a341be..dbd145506 100644 --- a/apps/web/ce/components/issues/bulk-operations/root.tsx +++ b/apps/web/ce/components/issues/bulk-operations/root.tsx @@ -1,8 +1,8 @@ import { observer } from "mobx-react"; // components -import { BulkOperationsUpgradeBanner } from "@/components/issues"; +import { BulkOperationsUpgradeBanner } from "@/components/issues/bulk-operations/upgrade-banner"; // hooks -import { useMultipleSelectStore } from "@/hooks/store"; +import { useMultipleSelectStore } from "@/hooks/store/use-multiple-select-store"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; type Props = { diff --git a/apps/web/ce/components/issues/filters/applied-filters/index.ts b/apps/web/ce/components/issues/filters/applied-filters/index.ts deleted file mode 100644 index 592325823..000000000 --- a/apps/web/ce/components/issues/filters/applied-filters/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./issue-types"; diff --git a/apps/web/ce/components/issues/filters/index.ts b/apps/web/ce/components/issues/filters/index.ts deleted file mode 100644 index f0f36b6c9..000000000 --- a/apps/web/ce/components/issues/filters/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./applied-filters"; -export * from "./issue-types"; -export * from "./team-project"; diff --git a/apps/web/ce/components/issues/header.tsx b/apps/web/ce/components/issues/header.tsx index cad3d0f22..5a88e139f 100644 --- a/apps/web/ce/components/issues/header.tsx +++ b/apps/web/ce/components/issues/header.tsx @@ -17,13 +17,15 @@ import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType } from "@plane/types"; import { Breadcrumbs, Button, Tooltip, Header } from "@plane/ui"; // components -import { CountChip } from "@/components/common"; +import { CountChip } from "@/components/common/count-chip"; // constants -import HeaderFilters from "@/components/issues/filters"; +import { HeaderFilters } from "@/components/issues/filters"; // helpers // hooks -import { useProject, useCommandPalette, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; import { useIssues } from "@/hooks/store/use-issues"; +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"; // plane web diff --git a/apps/web/ce/components/issues/index.ts b/apps/web/ce/components/issues/index.ts deleted file mode 100644 index 01fc1d9ac..000000000 --- a/apps/web/ce/components/issues/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./bulk-operations"; -export * from "./worklog"; -export * from "./issue-modal"; -export * from "./issue-details"; -export * from "./quick-add"; -export * from "./filters"; -export * from "./header"; diff --git a/apps/web/ce/components/issues/issue-details/issue-creator.tsx b/apps/web/ce/components/issues/issue-details/issue-creator.tsx index 07e6899d3..c1e65ff5f 100644 --- a/apps/web/ce/components/issues/issue-details/issue-creator.tsx +++ b/apps/web/ce/components/issues/issue-details/issue-creator.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import Link from "next/link"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; type TIssueUser = { activityId: string; diff --git a/apps/web/ce/components/issues/issue-details/issue-identifier.tsx b/apps/web/ce/components/issues/issue-details/issue-identifier.tsx index b806803f4..338f24fb0 100644 --- a/apps/web/ce/components/issues/issue-details/issue-identifier.tsx +++ b/apps/web/ce/components/issues/issue-details/issue-identifier.tsx @@ -7,7 +7,8 @@ import { setToast, TOAST_TYPE, Tooltip } from "@plane/ui"; // helpers import { cn } from "@plane/utils"; // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; type TIssueIdentifierBaseProps = { projectId: string; diff --git a/apps/web/ce/components/issues/issue-details/issue-type-switcher.tsx b/apps/web/ce/components/issues/issue-details/issue-type-switcher.tsx index 5d4adeb95..09245289f 100644 --- a/apps/web/ce/components/issues/issue-details/issue-type-switcher.tsx +++ b/apps/web/ce/components/issues/issue-details/issue-type-switcher.tsx @@ -1,8 +1,8 @@ import { observer } from "mobx-react"; // store hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // plane web components -import { IssueIdentifier } from "@/plane-web/components/issues"; +import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; export type TIssueTypeSwitcherProps = { issueId: string; diff --git a/apps/web/ce/components/issues/issue-details/parent-select-root.tsx b/apps/web/ce/components/issues/issue-details/parent-select-root.tsx index 820a578e1..3582d053f 100644 --- a/apps/web/ce/components/issues/issue-details/parent-select-root.tsx +++ b/apps/web/ce/components/issues/issue-details/parent-select-root.tsx @@ -2,13 +2,14 @@ import React from "react"; import { observer } from "mobx-react"; +// plane imports import { useTranslation } from "@plane/i18n"; -// ui import { TOAST_TYPE, setToast } from "@plane/ui"; // components -import { IssueParentSelect, TIssueOperations } from "@/components/issues"; +import type { TIssueOperations } from "@/components/issues/issue-detail"; +import { IssueParentSelect } from "@/components/issues/issue-detail/parent-select"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; type TIssueParentSelect = { className?: string; diff --git a/apps/web/ce/components/issues/issue-layouts/utils.tsx b/apps/web/ce/components/issues/issue-layouts/utils.tsx index 62c8b35e6..c0b82ae95 100644 --- a/apps/web/ce/components/issues/issue-layouts/utils.tsx +++ b/apps/web/ce/components/issues/issue-layouts/utils.tsx @@ -31,7 +31,7 @@ import { SpreadsheetStateColumn, SpreadsheetSubIssueColumn, SpreadsheetUpdatedOnColumn, -} from "@/components/issues/issue-layouts/spreadsheet"; +} from "@/components/issues/issue-layouts/spreadsheet/columns"; // store import { store } from "@/lib/store-context"; diff --git a/apps/web/ce/components/issues/issue-modal/issue-type-select.tsx b/apps/web/ce/components/issues/issue-modal/issue-type-select.tsx index b7b6e0898..00a192be1 100644 --- a/apps/web/ce/components/issues/issue-modal/issue-type-select.tsx +++ b/apps/web/ce/components/issues/issue-modal/issue-type-select.tsx @@ -1,6 +1,6 @@ import { Control } from "react-hook-form"; // plane imports -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // types import { TBulkIssueProperties, TIssue } from "@plane/types"; diff --git a/apps/web/ce/components/issues/issue-modal/provider.tsx b/apps/web/ce/components/issues/issue-modal/provider.tsx index 0a0ef1e3f..55b0d4bb7 100644 --- a/apps/web/ce/components/issues/issue-modal/provider.tsx +++ b/apps/web/ce/components/issues/issue-modal/provider.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // plane imports import { ISearchIssueResponse, TIssue } from "@plane/types"; // components -import { IssueModalContext } from "@/components/issues"; +import { IssueModalContext } from "@/components/issues/issue-modal/context"; // hooks import { useUser } from "@/hooks/store/user/user-user"; diff --git a/apps/web/ce/components/issues/quick-add/root.tsx b/apps/web/ce/components/issues/quick-add/root.tsx index 2a3bc5edb..d74c3bf75 100644 --- a/apps/web/ce/components/issues/quick-add/root.tsx +++ b/apps/web/ce/components/issues/quick-add/root.tsx @@ -14,9 +14,9 @@ import { ListQuickAddIssueForm, SpreadsheetQuickAddIssueForm, TQuickAddIssueForm, -} from "@/components/issues/issue-layouts"; +} from "@/components/issues/issue-layouts/quick-add"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import useKeypress from "@/hooks/use-keypress"; export type TQuickAddIssueFormRoot = { diff --git a/apps/web/ce/components/issues/worklog/activity/filter-root.tsx b/apps/web/ce/components/issues/worklog/activity/filter-root.tsx index a4dc62a6d..a2fe9910f 100644 --- a/apps/web/ce/components/issues/worklog/activity/filter-root.tsx +++ b/apps/web/ce/components/issues/worklog/activity/filter-root.tsx @@ -1,10 +1,10 @@ "use client"; import { FC } from "react"; -// components +// plane imports import { TActivityFilters, ACTIVITY_FILTER_TYPE_OPTIONS, TActivityFilterOption } from "@plane/constants"; -import { ActivityFilter } from "@/components/issues"; -// plane web constants +// components +import { ActivityFilter } from "@/components/issues/issue-detail/issue-activity"; export type TActivityFilterRoot = { selectedFilters: TActivityFilters[]; diff --git a/apps/web/ce/components/issues/worklog/activity/index.ts b/apps/web/ce/components/issues/worklog/activity/index.ts index 0c803acab..1efe34c51 100644 --- a/apps/web/ce/components/issues/worklog/activity/index.ts +++ b/apps/web/ce/components/issues/worklog/activity/index.ts @@ -1,4 +1 @@ export * from "./root"; -export * from "./worklog-create-button"; - -export * from "./filter-root"; diff --git a/apps/web/ce/components/issues/worklog/index.ts b/apps/web/ce/components/issues/worklog/index.ts deleted file mode 100644 index c0ed33ebf..000000000 --- a/apps/web/ce/components/issues/worklog/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./property"; -export * from "./activity"; diff --git a/apps/web/ce/components/pages/editor/ai/ask-pi-menu.tsx b/apps/web/ce/components/pages/editor/ai/ask-pi-menu.tsx index 19e658b12..26aeb8e45 100644 --- a/apps/web/ce/components/pages/editor/ai/ask-pi-menu.tsx +++ b/apps/web/ce/components/pages/editor/ai/ask-pi-menu.tsx @@ -4,10 +4,10 @@ import { CircleArrowUp, CornerDownRight, RefreshCcw, Sparkles } from "lucide-rea import { Tooltip } from "@plane/ui"; // components import { cn } from "@plane/utils"; -import { RichTextEditor } from "@/components/editor"; +import { RichTextEditor } from "@/components/editor/rich-text"; // helpers // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; type Props = { handleInsertText: (insertOnNextLine: boolean) => void; diff --git a/apps/web/ce/components/pages/editor/ai/menu.tsx b/apps/web/ce/components/pages/editor/ai/menu.tsx index 956422256..d09024369 100644 --- a/apps/web/ce/components/pages/editor/ai/menu.tsx +++ b/apps/web/ce/components/pages/editor/ai/menu.tsx @@ -3,13 +3,12 @@ import React, { useEffect, useRef, useState } from "react"; import { ChevronRight, CornerDownRight, LucideIcon, RefreshCcw, Sparkles, TriangleAlert } from "lucide-react"; // plane editor -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // plane ui import { Tooltip } from "@plane/ui"; // components import { cn } from "@plane/utils"; -import { RichTextEditor } from "@/components/editor"; -// helpers +import { RichTextEditor } from "@/components/editor/rich-text"; // plane web constants import { AI_EDITOR_TASKS, LOADING_TEXTS } from "@/plane-web/constants/ai"; // plane web services diff --git a/apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx b/apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx index 4ade46da1..f1ed1787b 100644 --- a/apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx +++ b/apps/web/ce/components/pages/editor/embed/issue-embed-upgrade-card.tsx @@ -1,9 +1,8 @@ -// plane ui +// plane imports import { getButtonStyling } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { ProIcon } from "@/components/common"; -// helpers +// components +import { ProIcon } from "@/components/common/pro-icon"; export const IssueEmbedUpgradeCard: React.FC = (props) => (
{ // i18n diff --git a/apps/web/ce/components/projects/navigation/helper.tsx b/apps/web/ce/components/projects/navigation/helper.tsx index 1a99262c6..ad3d4dd3b 100644 --- a/apps/web/ce/components/projects/navigation/helper.tsx +++ b/apps/web/ce/components/projects/navigation/helper.tsx @@ -1,7 +1,9 @@ import { FileText, Layers } from "lucide-react"; +// plane imports import { EUserPermissions, EProjectFeatureKey } from "@plane/constants"; import { ContrastIcon, DiceIcon, Intake, LayersIcon } from "@plane/ui"; -import { TNavigationItem } from "@/components/workspace"; +// components +import type { TNavigationItem } from "@/components/workspace/sidebar/project-navigation"; export const getProjectFeatureNavigation = ( workspaceSlug: string, diff --git a/apps/web/ce/components/projects/page.tsx b/apps/web/ce/components/projects/page.tsx index 8e15ebff7..65151def4 100644 --- a/apps/web/ce/components/projects/page.tsx +++ b/apps/web/ce/components/projects/page.tsx @@ -4,9 +4,10 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; // components -import Root from "@/components/project/root"; +import { ProjectRoot } from "@/components/project/root"; // hooks -import { useProject, useWorkspace } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; +import { useWorkspace } from "@/hooks/store/use-workspace"; export const ProjectPageRoot = observer(() => { // router @@ -21,5 +22,5 @@ export const ProjectPageRoot = observer(() => { { revalidateIfStale: false, revalidateOnFocus: false } ); - return ; + return ; }); diff --git a/apps/web/ce/components/projects/settings/intake/header.tsx b/apps/web/ce/components/projects/settings/intake/header.tsx index 0aa77e470..75c8bc535 100644 --- a/apps/web/ce/components/projects/settings/intake/header.tsx +++ b/apps/web/ce/components/projects/settings/intake/header.tsx @@ -9,11 +9,13 @@ import { EProjectFeatureKey, EUserPermissions, EUserPermissionsLevel } from "@pl import { useTranslation } from "@plane/i18n"; import { Breadcrumbs, Button, Header } from "@plane/ui"; // components -import { InboxIssueCreateModalRoot } from "@/components/inbox"; +import { InboxIssueCreateModalRoot } from "@/components/inbox/modals/create-modal"; // hooks -import { useProject, useProjectInbox, useUserPermissions } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; +import { useUserPermissions } from "@/hooks/store/user"; // plane web -import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs"; +import { CommonProjectBreadcrumbs } from "@/plane-web/components/breadcrumbs/common"; export const ProjectInboxHeader: FC = observer(() => { // states diff --git a/apps/web/ce/components/projects/settings/useProjectColumns.tsx b/apps/web/ce/components/projects/settings/useProjectColumns.tsx index a1ef7f3f2..1d6256045 100644 --- a/apps/web/ce/components/projects/settings/useProjectColumns.tsx +++ b/apps/web/ce/components/projects/settings/useProjectColumns.tsx @@ -5,7 +5,7 @@ import { IWorkspaceMember, TProjectMembership } from "@plane/types"; // components import { AccountTypeColumn, NameColumn } from "@/components/project/settings/member-columns"; // hooks -import { useUser, useUserPermissions } from "@/hooks/store"; +import { useUser, useUserPermissions } from "@/hooks/store/user"; export interface RowData extends Pick { member: IWorkspaceMember; diff --git a/apps/web/ce/components/relations/index.tsx b/apps/web/ce/components/relations/index.tsx index 7f906564a..b259a38d7 100644 --- a/apps/web/ce/components/relations/index.tsx +++ b/apps/web/ce/components/relations/index.tsx @@ -1,7 +1,7 @@ import { CircleDot, CopyPlus, XCircle } from "lucide-react"; import { RelatedIcon } from "@plane/ui"; -import { TRelationObject } from "@/components/issues"; -import { TIssueRelationTypes } from "../../types"; +import type { TRelationObject } from "@/components/issues/issue-detail-widgets/relations"; +import type { TIssueRelationTypes } from "../../types"; export * from "./activity"; diff --git a/apps/web/ce/components/sidebar/project-navigation-root.tsx b/apps/web/ce/components/sidebar/project-navigation-root.tsx index 25a0dd9d8..89972c23d 100644 --- a/apps/web/ce/components/sidebar/project-navigation-root.tsx +++ b/apps/web/ce/components/sidebar/project-navigation-root.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; // components -import { ProjectNavigation } from "@/components/workspace"; +import { ProjectNavigation } from "@/components/workspace/sidebar/project-navigation"; type TProjectItemsRootProps = { workspaceSlug: string; diff --git a/apps/web/ce/components/workspace-notifications/index.ts b/apps/web/ce/components/workspace-notifications/index.ts index c12683ce6..ed26efa23 100644 --- a/apps/web/ce/components/workspace-notifications/index.ts +++ b/apps/web/ce/components/workspace-notifications/index.ts @@ -1,2 +1 @@ -export * from "./notification-card/root"; export * from "./list-root"; diff --git a/apps/web/ce/components/workspace-notifications/notification-card/root.tsx b/apps/web/ce/components/workspace-notifications/notification-card/root.tsx index 2aff9edfe..ef2eb11de 100644 --- a/apps/web/ce/components/workspace-notifications/notification-card/root.tsx +++ b/apps/web/ce/components/workspace-notifications/notification-card/root.tsx @@ -4,12 +4,11 @@ import { FC } from "react"; import { observer } from "mobx-react"; // plane imports import { ENotificationLoader, ENotificationQueryParamType } from "@plane/constants"; -// components import { useTranslation } from "@plane/i18n"; -import { NotificationItem } from "@/components/workspace-notifications"; -// constants +// components +import { NotificationItem } from "@/components/workspace-notifications/sidebar/notification-card/item"; // hooks -import { useWorkspaceNotifications } from "@/hooks/store"; +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; type TNotificationCardListRoot = { workspaceSlug: string; diff --git a/apps/web/ce/components/workspace/billing/index.ts b/apps/web/ce/components/workspace/billing/index.ts index f02c34d3f..1efe34c51 100644 --- a/apps/web/ce/components/workspace/billing/index.ts +++ b/apps/web/ce/components/workspace/billing/index.ts @@ -1,2 +1 @@ export * from "./root"; -export * from "./billing-actions-button"; diff --git a/apps/web/ce/components/workspace/billing/root.tsx b/apps/web/ce/components/workspace/billing/root.tsx index c089a4905..d5bc225d4 100644 --- a/apps/web/ce/components/workspace/billing/root.tsx +++ b/apps/web/ce/components/workspace/billing/root.tsx @@ -7,7 +7,7 @@ import { EProductSubscriptionEnum, TBillingFrequency, TProductBillingFrequency } import { getSubscriptionTextColor } from "@plane/ui"; import { cn } from "@plane/utils"; // components -import { SettingsHeading } from "@/components/settings"; +import { SettingsHeading } from "@/components/settings/heading"; // local imports import { PlansComparison } from "./comparison/root"; diff --git a/apps/web/ce/components/workspace/index.ts b/apps/web/ce/components/workspace/index.ts deleted file mode 100644 index 489ef6352..000000000 --- a/apps/web/ce/components/workspace/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from "./edition-badge"; -export * from "./upgrade-badge"; -export * from "./billing"; -export * from "./delete-workspace-section"; -export * from "./sidebar"; -export * from "./members"; -export * from "./content-wrapper"; -export * from "./app-switcher"; diff --git a/apps/web/ce/components/workspace/members/index.ts b/apps/web/ce/components/workspace/members/index.ts deleted file mode 100644 index 5e1651e90..000000000 --- a/apps/web/ce/components/workspace/members/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./invite-modal"; diff --git a/apps/web/ce/components/workspace/members/invite-modal.tsx b/apps/web/ce/components/workspace/members/invite-modal.tsx index 629370cc1..8641847bd 100644 --- a/apps/web/ce/components/workspace/members/invite-modal.tsx +++ b/apps/web/ce/components/workspace/members/invite-modal.tsx @@ -6,10 +6,10 @@ import { useParams } from "next/navigation"; // plane imports import { useTranslation } from "@plane/i18n"; import { IWorkspaceBulkInviteFormData } from "@plane/types"; -// ui import { EModalWidth, EModalPosition, ModalCore } from "@plane/ui"; // components -import { InvitationFields, InvitationModalActions } from "@/components/workspace/invite-modal"; +import { InvitationModalActions } from "@/components/workspace/invite-modal/actions"; +import { InvitationFields } from "@/components/workspace/invite-modal/fields"; import { InvitationForm } from "@/components/workspace/invite-modal/form"; // hooks import { useWorkspaceInvitationActions } from "@/hooks/use-workspace-invitation"; diff --git a/apps/web/ce/components/workspace/settings/useMemberColumns.tsx b/apps/web/ce/components/workspace/settings/useMemberColumns.tsx index c34051878..10ce47824 100644 --- a/apps/web/ce/components/workspace/settings/useMemberColumns.tsx +++ b/apps/web/ce/components/workspace/settings/useMemberColumns.tsx @@ -3,7 +3,7 @@ import { useParams } from "next/navigation"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { AccountTypeColumn, NameColumn, RowData } from "@/components/workspace/settings/member-columns"; -import { useUser, useUserPermissions } from "@/hooks/store"; +import { useUser, useUserPermissions } from "@/hooks/store/user"; export const useMemberColumns = () => { // states diff --git a/apps/web/ce/components/workspace/sidebar/app-search.tsx b/apps/web/ce/components/workspace/sidebar/app-search.tsx index 6b8a94f6b..77a359373 100644 --- a/apps/web/ce/components/workspace/sidebar/app-search.tsx +++ b/apps/web/ce/components/workspace/sidebar/app-search.tsx @@ -3,7 +3,7 @@ import { Search } from "lucide-react"; // plane imports import { useTranslation } from "@plane/i18n"; // hooks -import { useCommandPalette } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; export const AppSearch = observer(() => { // store hooks diff --git a/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx b/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx index 815fdb263..ac1f7f4a0 100644 --- a/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx +++ b/apps/web/ce/components/workspace/sidebar/extended-sidebar-item.tsx @@ -12,9 +12,11 @@ import { useTranslation } from "@plane/i18n"; import { DragHandle, DropIndicator, Tooltip } from "@plane/ui"; import { cn } from "@plane/utils"; // components -import { SidebarNavItem } from "@/components/sidebar"; +import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; // hooks -import { useAppTheme, useUser, useUserPermissions, useWorkspace } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; +import { useUser, useUserPermissions } from "@/hooks/store/user"; +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane web imports // local imports import { UpgradeBadge } from "../upgrade-badge"; diff --git a/apps/web/ce/components/workspace/sidebar/index.ts b/apps/web/ce/components/workspace/sidebar/index.ts deleted file mode 100644 index c22f296a2..000000000 --- a/apps/web/ce/components/workspace/sidebar/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./app-search"; -export * from "./extended-sidebar-item"; -export * from "./helper"; -export * from "./sidebar-item"; diff --git a/apps/web/ce/constants/index.ts b/apps/web/ce/constants/index.ts deleted file mode 100644 index 5612b3026..000000000 --- a/apps/web/ce/constants/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./ai"; -export * from "./gantt-chart"; -export * from "./project"; -export * from "./sidebar-favorites"; diff --git a/apps/web/ce/hooks/use-additional-editor-mention.tsx b/apps/web/ce/hooks/use-additional-editor-mention.tsx index 58416379f..604649e71 100644 --- a/apps/web/ce/hooks/use-additional-editor-mention.tsx +++ b/apps/web/ce/hooks/use-additional-editor-mention.tsx @@ -1,8 +1,8 @@ import { useCallback } from "react"; // plane editor -import { TMentionSection } from "@plane/editor"; +import type { TMentionSection } from "@plane/editor"; // plane types -import { TSearchEntities, TSearchResponse } from "@plane/types"; +import type { TSearchEntities, TSearchResponse } from "@plane/types"; export type TAdditionalEditorMentionHandlerArgs = { response: TSearchResponse; diff --git a/apps/web/ce/hooks/use-editor-flagging.ts b/apps/web/ce/hooks/use-editor-flagging.ts index 7e04919ce..ef5a002d6 100644 --- a/apps/web/ce/hooks/use-editor-flagging.ts +++ b/apps/web/ce/hooks/use-editor-flagging.ts @@ -1,5 +1,5 @@ // editor -import { TExtensions } from "@plane/editor"; +import type { TExtensions } from "@plane/editor"; export type TEditorFlaggingHookReturnType = { document: { diff --git a/apps/web/ce/hooks/use-file-size.ts b/apps/web/ce/hooks/use-file-size.ts index 025c8ddfd..c72e96da5 100644 --- a/apps/web/ce/hooks/use-file-size.ts +++ b/apps/web/ce/hooks/use-file-size.ts @@ -1,7 +1,7 @@ // plane imports import { MAX_FILE_SIZE } from "@plane/constants"; // hooks -import { useInstance } from "@/hooks/store"; +import { useInstance } from "@/hooks/store/use-instance"; type TReturnProps = { maxFileSize: number; diff --git a/apps/web/ce/hooks/use-issue-embed.tsx b/apps/web/ce/hooks/use-issue-embed.tsx index fcb6a0f3c..67bc79b7e 100644 --- a/apps/web/ce/hooks/use-issue-embed.tsx +++ b/apps/web/ce/hooks/use-issue-embed.tsx @@ -1,7 +1,7 @@ // editor -import { TEmbedConfig } from "@plane/editor"; +import type { TEmbedConfig } from "@plane/editor"; // plane types -import { TSearchEntityRequestPayload, TSearchResponse } from "@plane/types"; +import type { TSearchEntityRequestPayload, TSearchResponse } from "@plane/types"; // plane web components import { IssueEmbedUpgradeCard } from "@/plane-web/components/pages"; diff --git a/apps/web/ce/hooks/use-notification-preview.tsx b/apps/web/ce/hooks/use-notification-preview.tsx index d42999158..7492ea105 100644 --- a/apps/web/ce/hooks/use-notification-preview.tsx +++ b/apps/web/ce/hooks/use-notification-preview.tsx @@ -1,6 +1,6 @@ import { EIssueServiceType, IWorkItemPeekOverview } from "@plane/types"; -import { IssuePeekOverview } from "@/components/issues"; -import { useIssueDetail } from "@/hooks/store"; +import { IssuePeekOverview } from "@/components/issues/peek-overview"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { TPeekIssue } from "@/store/issue/issue-details/root.store"; export type TNotificationPreview = { diff --git a/apps/web/ce/layouts/project-wrapper.tsx b/apps/web/ce/layouts/project-wrapper.tsx index 585ed567b..6c566b0a3 100644 --- a/apps/web/ce/layouts/project-wrapper.tsx +++ b/apps/web/ce/layouts/project-wrapper.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // layouts -import { ProjectAuthWrapper as CoreProjectAuthWrapper } from "@/layouts/auth-layout"; +import { ProjectAuthWrapper as CoreProjectAuthWrapper } from "@/layouts/auth-layout/project-wrapper"; export type IProjectAuthWrapper = { workspaceSlug: string; diff --git a/apps/web/ce/layouts/workspace-wrapper.tsx b/apps/web/ce/layouts/workspace-wrapper.tsx index fcde83e7f..3fa52a5d1 100644 --- a/apps/web/ce/layouts/workspace-wrapper.tsx +++ b/apps/web/ce/layouts/workspace-wrapper.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // layouts -import { WorkspaceAuthWrapper as CoreWorkspaceAuthWrapper } from "@/layouts/auth-layout"; +import { WorkspaceAuthWrapper as CoreWorkspaceAuthWrapper } from "@/layouts/auth-layout/workspace-wrapper"; export type IWorkspaceAuthWrapper = { children: React.ReactNode; diff --git a/apps/web/ce/store/estimates/estimate.ts b/apps/web/ce/store/estimates/estimate.ts index a61b9ee36..0be2f1dd3 100644 --- a/apps/web/ce/store/estimates/estimate.ts +++ b/apps/web/ce/store/estimates/estimate.ts @@ -11,7 +11,7 @@ import { IEstimate as IEstimateType, IEstimatePoint as IEstimatePointType, TEsti import estimateService from "@/plane-web/services/project/estimate.service"; // store import { IEstimatePoint, EstimatePoint } from "@/store/estimates/estimate-point"; -import { CoreRootStore } from "@/store/root.store"; +import type { CoreRootStore } from "@/store/root.store"; type TErrorCodes = { status: string; diff --git a/apps/web/ce/store/issue/issue-details/activity.store.ts b/apps/web/ce/store/issue/issue-details/activity.store.ts index 47b4205a1..95f133cf9 100644 --- a/apps/web/ce/store/issue/issue-details/activity.store.ts +++ b/apps/web/ce/store/issue/issue-details/activity.store.ts @@ -21,7 +21,7 @@ import { // services import { IssueActivityService } from "@/services/issue"; // store -import { CoreRootStore } from "@/store/root.store"; +import type { CoreRootStore } from "@/store/root.store"; export type TActivityLoader = "fetch" | "mutate" | undefined; diff --git a/apps/web/ce/store/member/project-member.store.ts b/apps/web/ce/store/member/project-member.store.ts index 717da4659..10aeb842a 100644 --- a/apps/web/ce/store/member/project-member.store.ts +++ b/apps/web/ce/store/member/project-member.store.ts @@ -2,9 +2,9 @@ import { computedFn } from "mobx-utils"; import { EUserProjectRoles } from "@plane/types"; // plane imports // plane web imports -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // store -import { IMemberRootStore } from "@/store/member"; +import type { IMemberRootStore } from "@/store/member"; import { BaseProjectMemberStore, IBaseProjectMemberStore } from "@/store/member/base-project-member.store"; export type IProjectMemberStore = IBaseProjectMemberStore; diff --git a/apps/web/ce/store/pages/extended-base-page.ts b/apps/web/ce/store/pages/extended-base-page.ts index a80e5e4e3..2c5cd3066 100644 --- a/apps/web/ce/store/pages/extended-base-page.ts +++ b/apps/web/ce/store/pages/extended-base-page.ts @@ -1,6 +1,6 @@ -import { TPage, TPageExtended } from "@plane/types"; -import { RootStore } from "@/plane-web/store/root.store"; -import { TBasePageServices } from "@/store/pages/base-page"; +import type { TPage, TPageExtended } from "@plane/types"; +import type { RootStore } from "@/plane-web/store/root.store"; +import type { TBasePageServices } from "@/store/pages/base-page"; export type TExtendedPageInstance = TPageExtended & { asJSONExtended: TPageExtended; diff --git a/apps/web/ce/store/timeline/base-timeline.store.ts b/apps/web/ce/store/timeline/base-timeline.store.ts index 517a5700f..35b1a10f4 100644 --- a/apps/web/ce/store/timeline/base-timeline.store.ts +++ b/apps/web/ce/store/timeline/base-timeline.store.ts @@ -19,7 +19,7 @@ import { } from "@/components/gantt-chart/views/helpers"; // helpers // store -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // types type BlockData = { diff --git a/apps/web/ce/store/timeline/index.ts b/apps/web/ce/store/timeline/index.ts index 5f423f4b7..49a3c120b 100644 --- a/apps/web/ce/store/timeline/index.ts +++ b/apps/web/ce/store/timeline/index.ts @@ -1,7 +1,7 @@ -import { RootStore } from "@/plane-web/store/root.store"; -import { IIssuesTimeLineStore, IssuesTimeLineStore } from "@/store/timeline/issues-timeline.store"; -import { IModulesTimeLineStore, ModulesTimeLineStore } from "@/store/timeline/modules-timeline.store"; -import { BaseTimeLineStore, IBaseTimelineStore } from "./base-timeline.store"; +import type { RootStore } from "@/plane-web/store/root.store"; +import { type IIssuesTimeLineStore, IssuesTimeLineStore } from "@/store/timeline/issues-timeline.store"; +import { type IModulesTimeLineStore, ModulesTimeLineStore } from "@/store/timeline/modules-timeline.store"; +import { BaseTimeLineStore, type IBaseTimelineStore } from "./base-timeline.store"; export interface ITimelineStore { issuesTimeLineStore: IIssuesTimeLineStore; diff --git a/apps/web/ce/store/user/permission.store.ts b/apps/web/ce/store/user/permission.store.ts index 00300cdf2..3a1977a92 100644 --- a/apps/web/ce/store/user/permission.store.ts +++ b/apps/web/ce/store/user/permission.store.ts @@ -1,7 +1,7 @@ import { computedFn } from "mobx-utils"; import { EUserPermissions } from "@plane/constants"; -import { RootStore } from "@/plane-web/store/root.store"; -import { BaseUserPermissionStore, IBaseUserPermissionStore } from "@/store/user/base-permissions.store"; +import type { RootStore } from "@/plane-web/store/root.store"; +import { BaseUserPermissionStore, type IBaseUserPermissionStore } from "@/store/user/base-permissions.store"; export type IUserPermissionStore = IBaseUserPermissionStore; diff --git a/apps/web/core/components/account/auth-forms/auth-header.tsx b/apps/web/core/components/account/auth-forms/auth-header.tsx index 7e8891942..65e6aceaf 100644 --- a/apps/web/core/components/account/auth-forms/auth-header.tsx +++ b/apps/web/core/components/account/auth-forms/auth-header.tsx @@ -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"; diff --git a/apps/web/core/components/account/auth-forms/auth-root.tsx b/apps/web/core/components/account/auth-forms/auth-root.tsx index c3cc80e10..0ba02323b 100644 --- a/apps/web/core/components/account/auth-forms/auth-root.tsx +++ b/apps/web/core/components/account/auth-forms/auth-root.tsx @@ -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 = { diff --git a/apps/web/core/components/account/auth-forms/common/index.ts b/apps/web/core/components/account/auth-forms/common/index.ts deleted file mode 100644 index f41aa70fd..000000000 --- a/apps/web/core/components/account/auth-forms/common/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./container"; -export * from "./header"; diff --git a/apps/web/core/components/account/auth-forms/forgot-password.tsx b/apps/web/core/components/account/auth-forms/forgot-password.tsx index 6cef6018a..39ac9b9f3 100644 --- a/apps/web/core/components/account/auth-forms/forgot-password.tsx +++ b/apps/web/core/components/account/auth-forms/forgot-password.tsx @@ -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; diff --git a/apps/web/core/components/account/auth-forms/index.ts b/apps/web/core/components/account/auth-forms/index.ts index d13a85a2d..aa4ee6fd8 100644 --- a/apps/web/core/components/account/auth-forms/index.ts +++ b/apps/web/core/components/account/auth-forms/index.ts @@ -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"; \ No newline at end of file diff --git a/apps/web/core/components/account/auth-forms/password.tsx b/apps/web/core/components/account/auth-forms/password.tsx index b22c91114..578c47ed3 100644 --- a/apps/web/core/components/account/auth-forms/password.tsx +++ b/apps/web/core/components/account/auth-forms/password.tsx @@ -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"; diff --git a/apps/web/core/components/account/auth-forms/reset-password.tsx b/apps/web/core/components/account/auth-forms/reset-password.tsx index 14b1ad43b..be9c734e9 100644 --- a/apps/web/core/components/account/auth-forms/reset-password.tsx +++ b/apps/web/core/components/account/auth-forms/reset-password.tsx @@ -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; diff --git a/apps/web/core/components/account/auth-forms/set-password.tsx b/apps/web/core/components/account/auth-forms/set-password.tsx index 1510cdbd1..8c5ee1ee3 100644 --- a/apps/web/core/components/account/auth-forms/set-password.tsx +++ b/apps/web/core/components/account/auth-forms/set-password.tsx @@ -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; diff --git a/apps/web/core/components/account/deactivate-account-modal.tsx b/apps/web/core/components/account/deactivate-account-modal.tsx index 684416184..97ad8139d 100644 --- a/apps/web/core/components/account/deactivate-account-modal.tsx +++ b/apps/web/core/components/account/deactivate-account-modal.tsx @@ -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 = { diff --git a/apps/web/core/components/account/index.ts b/apps/web/core/components/account/index.ts deleted file mode 100644 index 6131a0315..000000000 --- a/apps/web/core/components/account/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./auth-forms"; -export * from "./deactivate-account-modal"; -export * from "./terms-and-conditions"; diff --git a/apps/web/core/components/analytics/analytics-filter-actions.tsx b/apps/web/core/components/analytics/analytics-filter-actions.tsx index 3b4014ea1..6d799d8bb 100644 --- a/apps/web/core/components/analytics/analytics-filter-actions.tsx +++ b/apps/web/core/components/analytics/analytics-filter-actions.tsx @@ -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"; diff --git a/apps/web/core/components/analytics/index.ts b/apps/web/core/components/analytics/index.ts deleted file mode 100644 index 8ac82df5d..000000000 --- a/apps/web/core/components/analytics/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./overview/root"; diff --git a/apps/web/core/components/analytics/overview/active-project-item.tsx b/apps/web/core/components/analytics/overview/active-project-item.tsx index 088bf6185..286305ff7 100644 --- a/apps/web/core/components/analytics/overview/active-project-item.tsx +++ b/apps/web/core/components/analytics/overview/active-project-item.tsx @@ -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: { diff --git a/apps/web/core/components/analytics/overview/active-projects.tsx b/apps/web/core/components/analytics/overview/active-projects.tsx index 2bcc8e831..5645d49b8 100644 --- a/apps/web/core/components/analytics/overview/active-projects.tsx +++ b/apps/web/core/components/analytics/overview/active-projects.tsx @@ -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"; diff --git a/apps/web/core/components/analytics/select/project.tsx b/apps/web/core/components/analytics/select/project.tsx index fa03d56df..2bbea9516 100644 --- a/apps/web/core/components/analytics/select/project.tsx +++ b/apps/web/core/components/analytics/select/project.tsx @@ -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; diff --git a/apps/web/core/components/analytics/select/select-y-axis.tsx b/apps/web/core/components/analytics/select/select-y-axis.tsx index 4982f8fb0..0a3ef5742 100644 --- a/apps/web/core/components/analytics/select/select-y-axis.tsx +++ b/apps/web/core/components/analytics/select/select-y-axis.tsx @@ -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; diff --git a/apps/web/core/components/analytics/work-items/modal/content.tsx b/apps/web/core/components/analytics/work-items/modal/content.tsx index 33a045c18..84188bbed 100644 --- a/apps/web/core/components/analytics/work-items/modal/content.tsx +++ b/apps/web/core/components/analytics/work-items/modal/content.tsx @@ -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"; diff --git a/apps/web/core/components/analytics/work-items/modal/index.tsx b/apps/web/core/components/analytics/work-items/modal/index.tsx index 06d09aa1e..4852a0bd5 100644 --- a/apps/web/core/components/analytics/work-items/modal/index.tsx +++ b/apps/web/core/components/analytics/work-items/modal/index.tsx @@ -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"; diff --git a/apps/web/core/components/analytics/work-items/priority-chart.tsx b/apps/web/core/components/analytics/work-items/priority-chart.tsx index ac7704628..25a3c5434 100644 --- a/apps/web/core/components/analytics/work-items/priority-chart.tsx +++ b/apps/web/core/components/analytics/work-items/priority-chart.tsx @@ -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"; diff --git a/apps/web/core/components/api-token/index.ts b/apps/web/core/components/api-token/index.ts deleted file mode 100644 index 7a52afecc..000000000 --- a/apps/web/core/components/api-token/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./modal"; -export * from "./delete-token-modal"; -export * from "./empty-state"; -export * from "./token-list-item"; diff --git a/apps/web/core/components/api-token/modal/create-token-modal.tsx b/apps/web/core/components/api-token/modal/create-token-modal.tsx index d7d6e14d3..af04b31c2 100644 --- a/apps/web/core/components/api-token/modal/create-token-modal.tsx +++ b/apps/web/core/components/api-token/modal/create-token-modal.tsx @@ -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; diff --git a/apps/web/core/components/api-token/modal/form.tsx b/apps/web/core/components/api-token/modal/form.tsx index 279722cfd..57f74cd53 100644 --- a/apps/web/core/components/api-token/modal/form.tsx +++ b/apps/web/core/components/api-token/modal/form.tsx @@ -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; diff --git a/apps/web/core/components/api-token/modal/index.ts b/apps/web/core/components/api-token/modal/index.ts deleted file mode 100644 index a09ba77eb..000000000 --- a/apps/web/core/components/api-token/modal/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./create-token-modal"; -export * from "./form"; -export * from "./generated-token-details"; diff --git a/apps/web/core/components/api-token/token-list-item.tsx b/apps/web/core/components/api-token/token-list-item.tsx index f5fe9fbd8..8b707e8d7 100644 --- a/apps/web/core/components/api-token/token-list-item.tsx +++ b/apps/web/core/components/api-token/token-list-item.tsx @@ -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; diff --git a/apps/web/core/components/archives/archive-tabs-list.tsx b/apps/web/core/components/archives/archive-tabs-list.tsx index 5bba6cc20..d68144691 100644 --- a/apps/web/core/components/archives/archive-tabs-list.tsx +++ b/apps/web/core/components/archives/archive-tabs-list.tsx @@ -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; diff --git a/apps/web/core/components/auth-screens/auth-base.tsx b/apps/web/core/components/auth-screens/auth-base.tsx index 5f4c10391..f5624f07b 100644 --- a/apps/web/core/components/auth-screens/auth-base.tsx +++ b/apps/web/core/components/auth-screens/auth-base.tsx @@ -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"; diff --git a/apps/web/core/components/auth-screens/header.tsx b/apps/web/core/components/auth-screens/header.tsx index 5960006a7..7abaa79b0 100644 --- a/apps/web/core/components/auth-screens/header.tsx +++ b/apps/web/core/components/auth-screens/header.tsx @@ -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]: { diff --git a/apps/web/core/components/auth-screens/index.ts b/apps/web/core/components/auth-screens/index.ts deleted file mode 100644 index 5e078d617..000000000 --- a/apps/web/core/components/auth-screens/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./project"; -export * from "./workspace"; -export * from "./not-authorized-view"; -export * from "./header"; -export * from "./auth-base"; diff --git a/apps/web/core/components/auth-screens/project/index.ts b/apps/web/core/components/auth-screens/project/index.ts deleted file mode 100644 index 1fb77e697..000000000 --- a/apps/web/core/components/auth-screens/project/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./join-project"; diff --git a/apps/web/core/components/auth-screens/project/join-project.tsx b/apps/web/core/components/auth-screens/project/join-project.tsx index 58e65c471..3bb544786 100644 --- a/apps/web/core/components/auth-screens/project/join-project.tsx +++ b/apps/web/core/components/auth-screens/project/join-project.tsx @@ -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"; diff --git a/apps/web/core/components/auth-screens/workspace/index.ts b/apps/web/core/components/auth-screens/workspace/index.ts deleted file mode 100644 index 828324312..000000000 --- a/apps/web/core/components/auth-screens/workspace/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./not-a-member"; diff --git a/apps/web/core/components/automation/auto-archive-automation.tsx b/apps/web/core/components/automation/auto-archive-automation.tsx index e83c19651..77f5b3a2e 100644 --- a/apps/web/core/components/automation/auto-archive-automation.tsx +++ b/apps/web/core/components/automation/auto-archive-automation.tsx @@ -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) => Promise; diff --git a/apps/web/core/components/automation/auto-close-automation.tsx b/apps/web/core/components/automation/auto-close-automation.tsx index 44c8b7671..dbee2ff93 100644 --- a/apps/web/core/components/automation/auto-close-automation.tsx +++ b/apps/web/core/components/automation/auto-close-automation.tsx @@ -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) => Promise; diff --git a/apps/web/core/components/command-palette/actions/help-actions.tsx b/apps/web/core/components/command-palette/actions/help-actions.tsx index 49a888798..3024d38da 100644 --- a/apps/web/core/components/command-palette/actions/help-actions.tsx +++ b/apps/web/core/components/command-palette/actions/help-actions.tsx @@ -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; diff --git a/apps/web/core/components/command-palette/actions/issue-actions/actions-list.tsx b/apps/web/core/components/command-palette/actions/issue-actions/actions-list.tsx index e03d6363a..70e2a3d33 100644 --- a/apps/web/core/components/command-palette/actions/issue-actions/actions-list.tsx +++ b/apps/web/core/components/command-palette/actions/issue-actions/actions-list.tsx @@ -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; diff --git a/apps/web/core/components/command-palette/actions/issue-actions/change-assignee.tsx b/apps/web/core/components/command-palette/actions/issue-actions/change-assignee.tsx index d442afde9..aff9f8224 100644 --- a/apps/web/core/components/command-palette/actions/issue-actions/change-assignee.tsx +++ b/apps/web/core/components/command-palette/actions/issue-actions/change-assignee.tsx @@ -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 }; diff --git a/apps/web/core/components/command-palette/actions/issue-actions/change-priority.tsx b/apps/web/core/components/command-palette/actions/issue-actions/change-priority.tsx index 84f8ef287..1eea7a3ce 100644 --- a/apps/web/core/components/command-palette/actions/issue-actions/change-priority.tsx +++ b/apps/web/core/components/command-palette/actions/issue-actions/change-priority.tsx @@ -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 diff --git a/apps/web/core/components/command-palette/actions/issue-actions/change-state.tsx b/apps/web/core/components/command-palette/actions/issue-actions/change-state.tsx index 7abc9326e..64d9e4449 100644 --- a/apps/web/core/components/command-palette/actions/issue-actions/change-state.tsx +++ b/apps/web/core/components/command-palette/actions/issue-actions/change-state.tsx @@ -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"; diff --git a/apps/web/core/components/command-palette/actions/project-actions.tsx b/apps/web/core/components/command-palette/actions/project-actions.tsx index 0000eac6c..59f77a3d6 100644 --- a/apps/web/core/components/command-palette/actions/project-actions.tsx +++ b/apps/web/core/components/command-palette/actions/project-actions.tsx @@ -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 = { diff --git a/apps/web/core/components/command-palette/actions/theme-actions.tsx b/apps/web/core/components/command-palette/actions/theme-actions.tsx index 9df95c00a..108deba2c 100644 --- a/apps/web/core/components/command-palette/actions/theme-actions.tsx +++ b/apps/web/core/components/command-palette/actions/theme-actions.tsx @@ -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; diff --git a/apps/web/core/components/command-palette/actions/workspace-settings-actions.tsx b/apps/web/core/components/command-palette/actions/workspace-settings-actions.tsx index 5cf7ee4b1..87b921337 100644 --- a/apps/web/core/components/command-palette/actions/workspace-settings-actions.tsx +++ b/apps/web/core/components/command-palette/actions/workspace-settings-actions.tsx @@ -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 diff --git a/apps/web/core/components/command-palette/command-modal.tsx b/apps/web/core/components/command-palette/command-modal.tsx index 27493c846..5cf56620a 100644 --- a/apps/web/core/components/command-palette/command-modal.tsx +++ b/apps/web/core/components/command-palette/command-modal.tsx @@ -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"; diff --git a/apps/web/core/components/command-palette/command-palette.tsx b/apps/web/core/components/command-palette/command-palette.tsx index 0bc174d6d..e26dbcc7b 100644 --- a/apps/web/core/components/command-palette/command-palette.tsx +++ b/apps/web/core/components/command-palette/command-palette.tsx @@ -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 { diff --git a/apps/web/core/components/comments/card/edit-form.tsx b/apps/web/core/components/comments/card/edit-form.tsx index 227974053..a9bac4109 100644 --- a/apps/web/core/components/comments/card/edit-form.tsx +++ b/apps/web/core/components/comments/card/edit-form.tsx @@ -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; diff --git a/apps/web/core/components/comments/comment-create.tsx b/apps/web/core/components/comments/comment-create.tsx index 4a83385ad..fd15336a0 100644 --- a/apps/web/core/components/comments/comment-create.tsx +++ b/apps/web/core/components/comments/comment-create.tsx @@ -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"; diff --git a/apps/web/core/components/comments/comment-reaction.tsx b/apps/web/core/components/comments/comment-reaction.tsx index 395894140..c97c2201b 100644 --- a/apps/web/core/components/comments/comment-reaction.tsx +++ b/apps/web/core/components/comments/comment-reaction.tsx @@ -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; diff --git a/apps/web/core/components/comments/quick-actions.tsx b/apps/web/core/components/comments/quick-actions.tsx index 894e32630..4f62c359d 100644 --- a/apps/web/core/components/comments/quick-actions.tsx +++ b/apps/web/core/components/comments/quick-actions.tsx @@ -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; diff --git a/apps/web/core/components/common/activity/index.ts b/apps/web/core/components/common/activity/index.ts deleted file mode 100644 index 8ab32d3d9..000000000 --- a/apps/web/core/components/common/activity/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./activity-item"; diff --git a/apps/web/core/components/common/activity/user.tsx b/apps/web/core/components/common/activity/user.tsx index c82ab3616..fdba5fe8a 100644 --- a/apps/web/core/components/common/activity/user.tsx +++ b/apps/web/core/components/common/activity/user.tsx @@ -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; diff --git a/apps/web/core/components/common/applied-filters/index.ts b/apps/web/core/components/common/applied-filters/index.ts deleted file mode 100644 index 77f9f6304..000000000 --- a/apps/web/core/components/common/applied-filters/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./date"; -export * from "./members"; diff --git a/apps/web/core/components/common/applied-filters/members.tsx b/apps/web/core/components/common/applied-filters/members.tsx index 508a47f98..49b0f1a30 100644 --- a/apps/web/core/components/common/applied-filters/members.tsx +++ b/apps/web/core/components/common/applied-filters/members.tsx @@ -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; diff --git a/apps/web/core/components/common/filters/created-at.tsx b/apps/web/core/components/common/filters/created-at.tsx index 3626531bd..77bd3efbd 100644 --- a/apps/web/core/components/common/filters/created-at.tsx +++ b/apps/web/core/components/common/filters/created-at.tsx @@ -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; diff --git a/apps/web/core/components/common/filters/created-by.tsx b/apps/web/core/components/common/filters/created-by.tsx index 513830e67..903863a5c 100644 --- a/apps/web/core/components/common/filters/created-by.tsx +++ b/apps/web/core/components/common/filters/created-by.tsx @@ -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; diff --git a/apps/web/core/components/common/filters/index.ts b/apps/web/core/components/common/filters/index.ts deleted file mode 100644 index 6f0b5dbde..000000000 --- a/apps/web/core/components/common/filters/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./created-at"; -export * from "./created-by"; diff --git a/apps/web/core/components/common/index.ts b/apps/web/core/components/common/index.ts deleted file mode 100644 index f1261b226..000000000 --- a/apps/web/core/components/common/index.ts +++ /dev/null @@ -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"; diff --git a/apps/web/core/components/core/activity.tsx b/apps/web/core/components/core/activity.tsx index 37f041d6e..d56856ff0 100644 --- a/apps/web/core/components/core/activity.tsx +++ b/apps/web/core/components/core/activity.tsx @@ -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 diff --git a/apps/web/core/components/core/description-versions/dropdown-item.tsx b/apps/web/core/components/core/description-versions/dropdown-item.tsx index 6e5b3b491..37c989f2f 100644 --- a/apps/web/core/components/core/description-versions/dropdown-item.tsx +++ b/apps/web/core/components/core/description-versions/dropdown-item.tsx @@ -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; diff --git a/apps/web/core/components/core/description-versions/dropdown.tsx b/apps/web/core/components/core/description-versions/dropdown.tsx index 39e9f7033..bef4f63a3 100644 --- a/apps/web/core/components/core/description-versions/dropdown.tsx +++ b/apps/web/core/components/core/description-versions/dropdown.tsx @@ -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"; diff --git a/apps/web/core/components/core/description-versions/modal.tsx b/apps/web/core/components/core/description-versions/modal.tsx index daa42cf30..d08c207c3 100644 --- a/apps/web/core/components/core/description-versions/modal.tsx +++ b/apps/web/core/components/core/description-versions/modal.tsx @@ -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; diff --git a/apps/web/core/components/core/filters/index.ts b/apps/web/core/components/core/filters/index.ts deleted file mode 100644 index 28e36d3e6..000000000 --- a/apps/web/core/components/core/filters/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./date-filter-modal"; -export * from "./date-filter-select"; diff --git a/apps/web/core/components/core/index.ts b/apps/web/core/components/core/index.ts deleted file mode 100644 index 77ff591cf..000000000 --- a/apps/web/core/components/core/index.ts +++ /dev/null @@ -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"; diff --git a/apps/web/core/components/core/modals/bulk-delete-issues-modal-item.tsx b/apps/web/core/components/core/modals/bulk-delete-issues-modal-item.tsx index e0c4be23e..f00defb76 100644 --- a/apps/web/core/components/core/modals/bulk-delete-issues-modal-item.tsx +++ b/apps/web/core/components/core/modals/bulk-delete-issues-modal-item.tsx @@ -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; diff --git a/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx b/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx index c44885d2d..0e7a6d454 100644 --- a/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx +++ b/apps/web/core/components/core/modals/bulk-delete-issues-modal.tsx @@ -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"; diff --git a/apps/web/core/components/core/modals/existing-issues-list-modal.tsx b/apps/web/core/components/core/modals/existing-issues-list-modal.tsx index b516d96af..24546c8da 100644 --- a/apps/web/core/components/core/modals/existing-issues-list-modal.tsx +++ b/apps/web/core/components/core/modals/existing-issues-list-modal.tsx @@ -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 diff --git a/apps/web/core/components/core/modals/gpt-assistant-popover.tsx b/apps/web/core/components/core/modals/gpt-assistant-popover.tsx index 3c6eaa809..2a554f96b 100644 --- a/apps/web/core/components/core/modals/gpt-assistant-popover.tsx +++ b/apps/web/core/components/core/modals/gpt-assistant-popover.tsx @@ -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(); diff --git a/apps/web/core/components/core/modals/index.ts b/apps/web/core/components/core/modals/index.ts deleted file mode 100644 index 940dc1a43..000000000 --- a/apps/web/core/components/core/modals/index.ts +++ /dev/null @@ -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"; diff --git a/apps/web/core/components/core/modals/issue-search-modal-empty-state.tsx b/apps/web/core/components/core/modals/issue-search-modal-empty-state.tsx index 20646efb1..b94aa9053 100644 --- a/apps/web/core/components/core/modals/issue-search-modal-empty-state.tsx +++ b/apps/web/core/components/core/modals/issue-search-modal-empty-state.tsx @@ -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 { diff --git a/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx b/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx index 314702346..be0e91fae 100644 --- a/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx +++ b/apps/web/core/components/core/modals/workspace-image-upload-modal.tsx @@ -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"; diff --git a/apps/web/core/components/core/sidebar/index.ts b/apps/web/core/components/core/sidebar/index.ts deleted file mode 100644 index ad5c6f683..000000000 --- a/apps/web/core/components/core/sidebar/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./single-progress-stats"; -export * from "./sidebar-menu-hamburger-toggle"; diff --git a/apps/web/core/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx b/apps/web/core/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx index 764143176..6b0a564ad 100644 --- a/apps/web/core/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx +++ b/apps/web/core/components/core/sidebar/sidebar-menu-hamburger-toggle.tsx @@ -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 diff --git a/apps/web/core/components/core/theme/custom-theme-selector.tsx b/apps/web/core/components/core/theme/custom-theme-selector.tsx index 3cc5469af..ca1907bad 100644 --- a/apps/web/core/components/core/theme/custom-theme-selector.tsx +++ b/apps/web/core/components/core/theme/custom-theme-selector.tsx @@ -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) => void; diff --git a/apps/web/core/components/core/theme/index.ts b/apps/web/core/components/core/theme/index.ts deleted file mode 100644 index 145b3862a..000000000 --- a/apps/web/core/components/core/theme/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./color-picker-input"; -export * from "./custom-theme-selector"; -export * from "./theme-switch"; diff --git a/apps/web/core/components/cycles/active-cycle/cycle-stats.tsx b/apps/web/core/components/cycles/active-cycle/cycle-stats.tsx index 4f31e06d7..2ecb846de 100644 --- a/apps/web/core/components/cycles/active-cycle/cycle-stats.tsx +++ b/apps/web/core/components/cycles/active-cycle/cycle-stats.tsx @@ -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"; diff --git a/apps/web/core/components/cycles/active-cycle/index.ts b/apps/web/core/components/cycles/active-cycle/index.ts deleted file mode 100644 index bf5f3e9b4..000000000 --- a/apps/web/core/components/cycles/active-cycle/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./cycle-stats"; -export * from "./productivity"; -export * from "./progress"; diff --git a/apps/web/core/components/cycles/active-cycle/productivity.tsx b/apps/web/core/components/cycles/active-cycle/productivity.tsx index f53e2ef87..63d085098 100644 --- a/apps/web/core/components/cycles/active-cycle/productivity.tsx +++ b/apps/web/core/components/cycles/active-cycle/productivity.tsx @@ -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"; diff --git a/apps/web/core/components/cycles/active-cycle/progress.tsx b/apps/web/core/components/cycles/active-cycle/progress.tsx index c2f0174f6..b7fadd903 100644 --- a/apps/web/core/components/cycles/active-cycle/progress.tsx +++ b/apps/web/core/components/cycles/active-cycle/progress.tsx @@ -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 = { diff --git a/apps/web/core/components/cycles/active-cycle/use-cycles-details.ts b/apps/web/core/components/cycles/active-cycle/use-cycles-details.ts index 447df1eb0..bc7b8d7e3 100644 --- a/apps/web/core/components/cycles/active-cycle/use-cycles-details.ts +++ b/apps/web/core/components/cycles/active-cycle/use-cycles-details.ts @@ -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; diff --git a/apps/web/core/components/cycles/analytics-sidebar/index.ts b/apps/web/core/components/cycles/analytics-sidebar/index.ts index 035a58585..1efe34c51 100644 --- a/apps/web/core/components/cycles/analytics-sidebar/index.ts +++ b/apps/web/core/components/cycles/analytics-sidebar/index.ts @@ -1,5 +1 @@ export * from "./root"; -export * from "./issue-progress"; -export * from "./progress-stats"; -export * from "./sidebar-header"; -export * from "./sidebar-details"; diff --git a/apps/web/core/components/cycles/analytics-sidebar/issue-progress.tsx b/apps/web/core/components/cycles/analytics-sidebar/issue-progress.tsx index 90586d331..2d3f5393e 100644 --- a/apps/web/core/components/cycles/analytics-sidebar/issue-progress.tsx +++ b/apps/web/core/components/cycles/analytics-sidebar/issue-progress.tsx @@ -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; diff --git a/apps/web/core/components/cycles/analytics-sidebar/progress-stats.tsx b/apps/web/core/components/cycles/analytics-sidebar/progress-stats.tsx index 7e1c37857..b0de0ce24 100644 --- a/apps/web/core/components/cycles/analytics-sidebar/progress-stats.tsx +++ b/apps/web/core/components/cycles/analytics-sidebar/progress-stats.tsx @@ -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"; diff --git a/apps/web/core/components/cycles/analytics-sidebar/root.tsx b/apps/web/core/components/cycles/analytics-sidebar/root.tsx index b709c0e63..ebe3711f2 100644 --- a/apps/web/core/components/cycles/analytics-sidebar/root.tsx +++ b/apps/web/core/components/cycles/analytics-sidebar/root.tsx @@ -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; diff --git a/apps/web/core/components/cycles/analytics-sidebar/sidebar-details.tsx b/apps/web/core/components/cycles/analytics-sidebar/sidebar-details.tsx index b2d9db7d9..3dcc27e20 100644 --- a/apps/web/core/components/cycles/analytics-sidebar/sidebar-details.tsx +++ b/apps/web/core/components/cycles/analytics-sidebar/sidebar-details.tsx @@ -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 = { diff --git a/apps/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx b/apps/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx index 1fa7c26e0..60a6d2384 100644 --- a/apps/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx +++ b/apps/web/core/components/cycles/analytics-sidebar/sidebar-header.tsx @@ -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"; diff --git a/apps/web/core/components/cycles/applied-filters/index.ts b/apps/web/core/components/cycles/applied-filters/index.ts index cee9ae349..1efe34c51 100644 --- a/apps/web/core/components/cycles/applied-filters/index.ts +++ b/apps/web/core/components/cycles/applied-filters/index.ts @@ -1,3 +1 @@ -export * from "./date"; export * from "./root"; -export * from "./status"; diff --git a/apps/web/core/components/cycles/applied-filters/root.tsx b/apps/web/core/components/cycles/applied-filters/root.tsx index 78a62238c..77fa8f160 100644 --- a/apps/web/core/components/cycles/applied-filters/root.tsx +++ b/apps/web/core/components/cycles/applied-filters/root.tsx @@ -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; diff --git a/apps/web/core/components/cycles/archived-cycles/header.tsx b/apps/web/core/components/cycles/archived-cycles/header.tsx index 7ec368cdd..15a2b4c6d 100644 --- a/apps/web/core/components/cycles/archived-cycles/header.tsx +++ b/apps/web/core/components/cycles/archived-cycles/header.tsx @@ -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 diff --git a/apps/web/core/components/cycles/archived-cycles/index.ts b/apps/web/core/components/cycles/archived-cycles/index.ts index f59f0954e..1efe34c51 100644 --- a/apps/web/core/components/cycles/archived-cycles/index.ts +++ b/apps/web/core/components/cycles/archived-cycles/index.ts @@ -1,4 +1 @@ export * from "./root"; -export * from "./view"; -export * from "./header"; -export * from "./modal"; diff --git a/apps/web/core/components/cycles/archived-cycles/modal.tsx b/apps/web/core/components/cycles/archived-cycles/modal.tsx index 2832efa2c..5b0f98f0f 100644 --- a/apps/web/core/components/cycles/archived-cycles/modal.tsx +++ b/apps/web/core/components/cycles/archived-cycles/modal.tsx @@ -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 = { diff --git a/apps/web/core/components/cycles/archived-cycles/root.tsx b/apps/web/core/components/cycles/archived-cycles/root.tsx index 6005dfb3c..d2cbae9e3 100644 --- a/apps/web/core/components/cycles/archived-cycles/root.tsx +++ b/apps/web/core/components/cycles/archived-cycles/root.tsx @@ -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 ; + return ; } return ( diff --git a/apps/web/core/components/cycles/archived-cycles/view.tsx b/apps/web/core/components/cycles/archived-cycles/view.tsx index e22536e30..4d4dd990d 100644 --- a/apps/web/core/components/cycles/archived-cycles/view.tsx +++ b/apps/web/core/components/cycles/archived-cycles/view.tsx @@ -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 = observer((props) => { // derived values const filteredArchivedCycleIds = getFilteredArchivedCycleIds(projectId); - if (loader || !filteredArchivedCycleIds) return ; + if (loader || !filteredArchivedCycleIds) return ; if (filteredArchivedCycleIds.length === 0) return ( diff --git a/apps/web/core/components/cycles/cycle-peek-overview.tsx b/apps/web/core/components/cycles/cycle-peek-overview.tsx index 51d70ae98..bcf447716 100644 --- a/apps/web/core/components/cycles/cycle-peek-overview.tsx +++ b/apps/web/core/components/cycles/cycle-peek-overview.tsx @@ -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; diff --git a/apps/web/core/components/cycles/cycles-view-header.tsx b/apps/web/core/components/cycles/cycles-view-header.tsx index 0ec921754..4976a33f5 100644 --- a/apps/web/core/components/cycles/cycles-view-header.tsx +++ b/apps/web/core/components/cycles/cycles-view-header.tsx @@ -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; diff --git a/apps/web/core/components/cycles/cycles-view.tsx b/apps/web/core/components/cycles/cycles-view.tsx index ef6c9d136..7c1b8ceba 100644 --- a/apps/web/core/components/cycles/cycles-view.tsx +++ b/apps/web/core/components/cycles/cycles-view.tsx @@ -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 = observer((props) => { (cycleId) => cycleId !== currentProjectActiveCycleId ); - if (loader || !filteredCycleIds) return ; + if (loader || !filteredCycleIds) return ; if (filteredCycleIds.length === 0 && filteredCompletedCycleIds?.length === 0) return ( diff --git a/apps/web/core/components/cycles/delete-modal.tsx b/apps/web/core/components/cycles/delete-modal.tsx index 9ace4e373..4d0e8447f 100644 --- a/apps/web/core/components/cycles/delete-modal.tsx +++ b/apps/web/core/components/cycles/delete-modal.tsx @@ -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 { diff --git a/apps/web/core/components/cycles/dropdowns/estimate-type-dropdown.tsx b/apps/web/core/components/cycles/dropdowns/estimate-type-dropdown.tsx index db3950780..7aaadc610 100644 --- a/apps/web/core/components/cycles/dropdowns/estimate-type-dropdown.tsx +++ b/apps/web/core/components/cycles/dropdowns/estimate-type-dropdown.tsx @@ -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; diff --git a/apps/web/core/components/cycles/dropdowns/filters/end-date.tsx b/apps/web/core/components/cycles/dropdowns/filters/end-date.tsx index b83699966..1dbf1a3d9 100644 --- a/apps/web/core/components/cycles/dropdowns/filters/end-date.tsx +++ b/apps/web/core/components/cycles/dropdowns/filters/end-date.tsx @@ -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; diff --git a/apps/web/core/components/cycles/dropdowns/filters/root.tsx b/apps/web/core/components/cycles/dropdowns/filters/root.tsx index 354fea41c..ff32a4b23 100644 --- a/apps/web/core/components/cycles/dropdowns/filters/root.tsx +++ b/apps/web/core/components/cycles/dropdowns/filters/root.tsx @@ -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; diff --git a/apps/web/core/components/cycles/dropdowns/filters/start-date.tsx b/apps/web/core/components/cycles/dropdowns/filters/start-date.tsx index 19ff38bc6..8ac3aa676 100644 --- a/apps/web/core/components/cycles/dropdowns/filters/start-date.tsx +++ b/apps/web/core/components/cycles/dropdowns/filters/start-date.tsx @@ -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 diff --git a/apps/web/core/components/cycles/dropdowns/filters/status.tsx b/apps/web/core/components/cycles/dropdowns/filters/status.tsx index 0e24a2a21..70cde0b66 100644 --- a/apps/web/core/components/cycles/dropdowns/filters/status.tsx +++ b/apps/web/core/components/cycles/dropdowns/filters/status.tsx @@ -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 diff --git a/apps/web/core/components/cycles/form.tsx b/apps/web/core/components/cycles/form.tsx index 6b0ec32f0..6efbb8140 100644 --- a/apps/web/core/components/cycles/form.tsx +++ b/apps/web/core/components/cycles/form.tsx @@ -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"; diff --git a/apps/web/core/components/cycles/index.ts b/apps/web/core/components/cycles/index.ts deleted file mode 100644 index 7013beeab..000000000 --- a/apps/web/core/components/cycles/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export * from "./active-cycle"; -export * from "./applied-filters"; -export * from "./dropdowns"; -export * from "./list"; -export * from "./cycle-peek-overview"; -export * from "./cycles-view-header"; -export * from "./cycles-view"; -export * from "./delete-modal"; -export * from "./form"; -export * from "./modal"; -export * from "./quick-actions"; -export * from "./transfer-issues-modal"; -export * from "./transfer-issues"; -export * from "./cycles-view-header"; - -export * from "./analytics-sidebar"; -// archived cycles -export * from "./archived-cycles"; diff --git a/apps/web/core/components/cycles/list/cycle-list-item-action.tsx b/apps/web/core/components/cycles/list/cycle-list-item-action.tsx index 330f6041f..eef7c469a 100644 --- a/apps/web/core/components/cycles/list/cycle-list-item-action.tsx +++ b/apps/web/core/components/cycles/list/cycle-list-item-action.tsx @@ -5,7 +5,7 @@ import { observer } from "mobx-react"; import { useParams, usePathname, useSearchParams } from "next/navigation"; import { useForm } from "react-hook-form"; import { Eye, Users, ArrowRight, CalendarDays } from "lucide-react"; -// types +// plane imports import { CYCLE_TRACKER_EVENTS, EUserPermissions, @@ -16,22 +16,25 @@ import { import { useLocalStorage } from "@plane/hooks"; import { useTranslation } from "@plane/i18n"; import { ICycle, TCycleGroups } from "@plane/types"; -// ui import { Avatar, AvatarGroup, FavoriteStar, LayersIcon, Tooltip, TransferIcon, setPromiseToast } from "@plane/ui"; import { getDate, getFileURL, generateQueryParams } from "@plane/utils"; // components -import { CycleQuickActions, TransferIssuesModal } from "@/components/cycles"; -import { DateRangeDropdown } from "@/components/dropdowns"; +import { DateRangeDropdown } from "@/components/dropdowns/date-range"; import { ButtonAvatars } from "@/components/dropdowns/member/avatar"; import { MergedDateDisplay } from "@/components/dropdowns/merged-date"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useCycle, useMember, useUserPermissions } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle" +import { useMember } from "@/hooks/store/use-member" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { useTimeZoneConverter } from "@/hooks/use-timezone-converter"; // plane web components import { CycleAdditionalActions } from "@/plane-web/components/cycles"; +// local imports +import { CycleQuickActions } from "../quick-actions"; +import { TransferIssuesModal } from "../transfer-issues-modal"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/cycles/list/cycles-list-item.tsx b/apps/web/core/components/cycles/list/cycles-list-item.tsx index d1ca58e05..019ebbdc6 100644 --- a/apps/web/core/components/cycles/list/cycles-list-item.tsx +++ b/apps/web/core/components/cycles/list/cycles-list-item.tsx @@ -3,22 +3,20 @@ import { FC, MouseEvent, useRef } from "react"; import { observer } from "mobx-react"; import { usePathname, useSearchParams } from "next/navigation"; -// icons import { Check } from "lucide-react"; -// types +// plane imports import type { TCycleGroups } from "@plane/types"; -// ui import { CircularProgressIndicator } from "@plane/ui"; // components import { generateQueryParams } from "@plane/utils"; import { ListItem } from "@/components/core/list"; -import { CycleQuickActions } from "@/components/cycles/"; -import { CycleListItemAction } from "@/components/cycles/list"; -// helpers // hooks -import { useCycle } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// local imports +import { CycleQuickActions } from "../quick-actions"; +import { CycleListItemAction } from "./cycle-list-item-action"; type TCyclesListItem = { cycleId: string; diff --git a/apps/web/core/components/cycles/list/cycles-list-map.tsx b/apps/web/core/components/cycles/list/cycles-list-map.tsx index 004c66fca..52954b2bb 100644 --- a/apps/web/core/components/cycles/list/cycles-list-map.tsx +++ b/apps/web/core/components/cycles/list/cycles-list-map.tsx @@ -1,5 +1,5 @@ // components -import { CyclesListItem } from "@/components/cycles"; +import { CyclesListItem } from "./cycles-list-item"; type Props = { cycleIds: string[]; diff --git a/apps/web/core/components/cycles/list/index.ts b/apps/web/core/components/cycles/list/index.ts index 25419a056..1efe34c51 100644 --- a/apps/web/core/components/cycles/list/index.ts +++ b/apps/web/core/components/cycles/list/index.ts @@ -1,6 +1 @@ -export * from "./cycles-list-item"; -export * from "./cycles-list-map"; export * from "./root"; -export * from "./cycle-list-item-action"; -export * from "./cycle-list-group-header"; -export * from "./cycle-list-project-group-header"; diff --git a/apps/web/core/components/cycles/list/root.tsx b/apps/web/core/components/cycles/list/root.tsx index 49e3fcbe3..4e59d2c5d 100644 --- a/apps/web/core/components/cycles/list/root.tsx +++ b/apps/web/core/components/cycles/list/root.tsx @@ -5,8 +5,11 @@ import { Disclosure } from "@headlessui/react"; import { useTranslation } from "@plane/i18n"; import { ContentWrapper, ERowVariant } from "@plane/ui"; import { ListLayout } from "@/components/core/list"; -import { CycleListGroupHeader, CyclePeekOverview, CyclesListMap } from "@/components/cycles"; import { ActiveCycleRoot } from "@/plane-web/components/cycles"; +// local imports +import { CyclePeekOverview } from "../cycle-peek-overview"; +import { CycleListGroupHeader } from "./cycle-list-group-header"; +import { CyclesListMap } from "./cycles-list-map"; export interface ICyclesList { completedCycleIds: string[]; diff --git a/apps/web/core/components/cycles/modal.tsx b/apps/web/core/components/cycles/modal.tsx index 559f18e4d..8b2b490d3 100644 --- a/apps/web/core/components/cycles/modal.tsx +++ b/apps/web/core/components/cycles/modal.tsx @@ -8,17 +8,17 @@ import { CYCLE_TRACKER_EVENTS } from "@plane/constants"; import type { CycleDateCheckData, ICycle, TCycleTabOptions } from "@plane/types"; // ui import { EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui"; -// components -import { CycleForm } from "@/components/cycles"; -// constants // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useCycle, useProject } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle" +import { useProject } from "@/hooks/store/use-project"; import useKeypress from "@/hooks/use-keypress"; import useLocalStorage from "@/hooks/use-local-storage"; import { usePlatformOS } from "@/hooks/use-platform-os"; // services import { CycleService } from "@/services/cycle.service"; +// local imports +import { CycleForm } from "./form"; type CycleModalProps = { isOpen: boolean; @@ -193,7 +193,7 @@ export const CycleCreateUpdateModal: React.FC = (props) => { ; diff --git a/apps/web/core/components/cycles/transfer-issues-modal.tsx b/apps/web/core/components/cycles/transfer-issues-modal.tsx index 84dfe99bb..0fcc51e4e 100644 --- a/apps/web/core/components/cycles/transfer-issues-modal.tsx +++ b/apps/web/core/components/cycles/transfer-issues-modal.tsx @@ -10,7 +10,8 @@ import { EIssuesStoreType } from "@plane/types"; // ui //icons import { ContrastIcon, TransferIcon, TOAST_TYPE, setToast } from "@plane/ui"; -import { useCycle, useIssues } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle" +import { useIssues } from "@/hooks/store/use-issues"; //icons // constants diff --git a/apps/web/core/components/dropdowns/cycle/cycle-options.tsx b/apps/web/core/components/dropdowns/cycle/cycle-options.tsx index aaf4b6940..b6cf96d65 100644 --- a/apps/web/core/components/dropdowns/cycle/cycle-options.tsx +++ b/apps/web/core/components/dropdowns/cycle/cycle-options.tsx @@ -15,7 +15,7 @@ import { TCycleGroups } from "@plane/types"; // ui import { ContrastIcon, CycleGroupIcon } from "@plane/ui"; // store hooks -import { useCycle } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; import { usePlatformOS } from "@/hooks/use-platform-os"; // types diff --git a/apps/web/core/components/dropdowns/cycle/index.tsx b/apps/web/core/components/dropdowns/cycle/index.tsx index 7499c64e3..7a30b583b 100644 --- a/apps/web/core/components/dropdowns/cycle/index.tsx +++ b/apps/web/core/components/dropdowns/cycle/index.tsx @@ -9,7 +9,7 @@ import { ComboDropDown, ContrastIcon } from "@plane/ui"; // helpers import { cn } from "@plane/utils"; // hooks -import { useCycle } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; import { useDropdown } from "@/hooks/use-dropdown"; // local components and constants import { DropdownButton } from "../buttons"; diff --git a/apps/web/core/components/dropdowns/date.tsx b/apps/web/core/components/dropdowns/date.tsx index 803a606e3..f01f1ea50 100644 --- a/apps/web/core/components/dropdowns/date.tsx +++ b/apps/web/core/components/dropdowns/date.tsx @@ -10,7 +10,7 @@ import { ComboDropDown, Calendar } from "@plane/ui"; import { cn, renderFormattedDate, getDate } from "@plane/utils"; // helpers // hooks -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; import { useDropdown } from "@/hooks/use-dropdown"; // components import { DropdownButton } from "./buttons"; diff --git a/apps/web/core/components/dropdowns/estimate.tsx b/apps/web/core/components/dropdowns/estimate.tsx index 2968ee583..315fa65fe 100644 --- a/apps/web/core/components/dropdowns/estimate.tsx +++ b/apps/web/core/components/dropdowns/estimate.tsx @@ -10,7 +10,8 @@ import { EEstimateSystem } from "@plane/types"; import { ComboDropDown } from "@plane/ui"; import { convertMinutesToHoursMinutesString, cn } from "@plane/utils"; // hooks -import { useEstimate, useProjectEstimates } from "@/hooks/store"; +import { useEstimate } from "@/hooks/store/estimates/use-estimate"; +import { useProjectEstimates } from "@/hooks/store/estimates"; import { useDropdown } from "@/hooks/use-dropdown"; // components import { DropdownButton } from "./buttons"; diff --git a/apps/web/core/components/dropdowns/index.ts b/apps/web/core/components/dropdowns/index.ts deleted file mode 100644 index 3455fa7f4..000000000 --- a/apps/web/core/components/dropdowns/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from "./member/dropdown"; -export * from "./cycle"; -export * from "./date-range"; -export * from "./date"; -export * from "./estimate"; -export * from "./merged-date"; -export * from "./module/dropdown"; -export * from "./priority"; -export * from "./project/dropdown"; -export * from "./state/dropdown"; diff --git a/apps/web/core/components/dropdowns/layout.tsx b/apps/web/core/components/dropdowns/layout.tsx index 68d2a4767..56a8a7a94 100644 --- a/apps/web/core/components/dropdowns/layout.tsx +++ b/apps/web/core/components/dropdowns/layout.tsx @@ -1,18 +1,14 @@ import { useCallback, useMemo } from "react"; import { observer } from "mobx-react"; import { Check } from "lucide-react"; -// plane constants +// plane imports import { ISSUE_LAYOUT_MAP } from "@plane/constants"; -// plane i18n import { useTranslation } from "@plane/i18n"; -// plane ui -import { Dropdown } from "@plane/ui"; -// plane utils -import { cn } from "@plane/utils"; -// types import { EIssueLayoutTypes } from "@plane/types"; +import { Dropdown } from "@plane/ui"; +import { cn } from "@plane/utils"; // components -import { IssueLayoutIcon } from "@/components/issues"; +import { IssueLayoutIcon } from "@/components/issues/issue-layouts/layout-icon"; type TLayoutDropDown = { onChange: (value: EIssueLayoutTypes) => void; diff --git a/apps/web/core/components/dropdowns/member/avatar.tsx b/apps/web/core/components/dropdowns/member/avatar.tsx index 980144a19..9c8cb8775 100644 --- a/apps/web/core/components/dropdowns/member/avatar.tsx +++ b/apps/web/core/components/dropdowns/member/avatar.tsx @@ -8,7 +8,7 @@ import { cn, getFileURL } from "@plane/utils"; // plane utils // helpers // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; type AvatarProps = { showTooltip: boolean; diff --git a/apps/web/core/components/dropdowns/member/dropdown.tsx b/apps/web/core/components/dropdowns/member/dropdown.tsx index e9f42a50e..47347c370 100644 --- a/apps/web/core/components/dropdowns/member/dropdown.tsx +++ b/apps/web/core/components/dropdowns/member/dropdown.tsx @@ -2,7 +2,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { LucideIcon } from "lucide-react"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; // local imports import { MemberDropdownBase } from "./base"; import { MemberDropdownProps } from "./types"; diff --git a/apps/web/core/components/dropdowns/member/member-options.tsx b/apps/web/core/components/dropdowns/member/member-options.tsx index a251efe8c..46b6ae769 100644 --- a/apps/web/core/components/dropdowns/member/member-options.tsx +++ b/apps/web/core/components/dropdowns/member/member-options.tsx @@ -12,7 +12,7 @@ import { useTranslation } from "@plane/i18n"; import { Avatar } from "@plane/ui"; import { cn, getFileURL } from "@plane/utils"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { IUserLite } from "@plane/types"; diff --git a/apps/web/core/components/dropdowns/module/button-content.tsx b/apps/web/core/components/dropdowns/module/button-content.tsx index 3fa08ca19..a8d25aba6 100644 --- a/apps/web/core/components/dropdowns/module/button-content.tsx +++ b/apps/web/core/components/dropdowns/module/button-content.tsx @@ -5,7 +5,7 @@ import { ChevronDown, X } from "lucide-react"; import { DiceIcon, Tooltip } from "@plane/ui"; import { cn } from "@plane/utils"; // hooks -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; import { usePlatformOS } from "@/hooks/use-platform-os"; type ModuleButtonContentProps = { diff --git a/apps/web/core/components/dropdowns/module/dropdown.tsx b/apps/web/core/components/dropdowns/module/dropdown.tsx index e17643e64..03a265ae9 100644 --- a/apps/web/core/components/dropdowns/module/dropdown.tsx +++ b/apps/web/core/components/dropdowns/module/dropdown.tsx @@ -4,7 +4,7 @@ import { ReactNode } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // hooks -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; // types import { TDropdownProps } from "../types"; // local imports diff --git a/apps/web/core/components/dropdowns/project/base.tsx b/apps/web/core/components/dropdowns/project/base.tsx index 5be65926e..c06c217b7 100644 --- a/apps/web/core/components/dropdowns/project/base.tsx +++ b/apps/web/core/components/dropdowns/project/base.tsx @@ -8,7 +8,7 @@ import { useTranslation } from "@plane/i18n"; import { ComboDropDown } from "@plane/ui"; import { cn } from "@plane/utils"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; // hooks import { useDropdown } from "@/hooks/use-dropdown"; // plane web imports diff --git a/apps/web/core/components/dropdowns/project/dropdown.tsx b/apps/web/core/components/dropdowns/project/dropdown.tsx index 79573245a..3c82b1b49 100644 --- a/apps/web/core/components/dropdowns/project/dropdown.tsx +++ b/apps/web/core/components/dropdowns/project/dropdown.tsx @@ -1,7 +1,7 @@ import { ReactNode } from "react"; import { observer } from "mobx-react"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; // local imports import { TDropdownProps } from "../types"; import { ProjectDropdownBase } from "./base"; diff --git a/apps/web/core/components/dropdowns/state/dropdown.tsx b/apps/web/core/components/dropdowns/state/dropdown.tsx index 318467a69..3b816ebd9 100644 --- a/apps/web/core/components/dropdowns/state/dropdown.tsx +++ b/apps/web/core/components/dropdowns/state/dropdown.tsx @@ -4,7 +4,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // hooks -import { useProjectState } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state"; // local imports import { WorkItemStateDropdownBase, TWorkItemStateDropdownBaseProps } from "./base"; diff --git a/apps/web/core/components/editor/document/editor.tsx b/apps/web/core/components/editor/document/editor.tsx index a579430d9..910d89108 100644 --- a/apps/web/core/components/editor/document/editor.tsx +++ b/apps/web/core/components/editor/document/editor.tsx @@ -1,16 +1,16 @@ import React, { forwardRef } from "react"; // plane imports -import { DocumentEditorWithRef, EditorRefApi, IDocumentEditorProps, TFileHandler } from "@plane/editor"; +import { DocumentEditorWithRef, type EditorRefApi, type IDocumentEditorProps, type TFileHandler } from "@plane/editor"; import { MakeOptional, TSearchEntityRequestPayload, TSearchResponse } from "@plane/types"; import { cn } from "@plane/utils"; -// components -import { EditorMentionsRoot } from "@/components/editor"; // hooks import { useEditorConfig, useEditorMention } from "@/hooks/editor"; -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; // plane web hooks import { useEditorFlagging } from "@/plane-web/hooks/use-editor-flagging"; import { useIssueEmbed } from "@/plane-web/hooks/use-issue-embed"; +// local imports +import { EditorMentionsRoot } from "../embeds/mentions"; type DocumentEditorWrapperProps = MakeOptional< Omit, diff --git a/apps/web/core/components/editor/embeds/index.ts b/apps/web/core/components/editor/embeds/index.ts deleted file mode 100644 index 8146e94d9..000000000 --- a/apps/web/core/components/editor/embeds/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./mentions"; diff --git a/apps/web/core/components/editor/embeds/mentions/root.tsx b/apps/web/core/components/editor/embeds/mentions/root.tsx index 9ea5ef6fb..95149b926 100644 --- a/apps/web/core/components/editor/embeds/mentions/root.tsx +++ b/apps/web/core/components/editor/embeds/mentions/root.tsx @@ -1,5 +1,5 @@ // plane editor -import { TMentionComponentProps } from "@plane/editor"; +import type { TMentionComponentProps } from "@plane/editor"; // plane web components import { EditorAdditionalMentionsRoot } from "@/plane-web/components/editor"; // local components diff --git a/apps/web/core/components/editor/embeds/mentions/user.tsx b/apps/web/core/components/editor/embeds/mentions/user.tsx index 83a6ee79f..90129ccd3 100644 --- a/apps/web/core/components/editor/embeds/mentions/user.tsx +++ b/apps/web/core/components/editor/embeds/mentions/user.tsx @@ -11,7 +11,8 @@ import { cn, getFileURL } from "@plane/utils"; // constants // helpers // hooks -import { useMember, useUser } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useUser } from "@/hooks/store/user"; type Props = { id: string; diff --git a/apps/web/core/components/editor/index.ts b/apps/web/core/components/editor/index.ts deleted file mode 100644 index c80c73352..000000000 --- a/apps/web/core/components/editor/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./embeds"; -export * from "./lite-text"; -export * from "./pdf"; -export * from "./rich-text"; -export * from "./sticky-editor"; diff --git a/apps/web/core/components/editor/lite-text/editor.tsx b/apps/web/core/components/editor/lite-text/editor.tsx index 56d7f5436..5f4d28203 100644 --- a/apps/web/core/components/editor/lite-text/editor.tsx +++ b/apps/web/core/components/editor/lite-text/editor.tsx @@ -6,10 +6,11 @@ import { useTranslation } from "@plane/i18n"; import type { MakeOptional } from "@plane/types"; import { cn, isCommentEmpty } from "@plane/utils"; // components -import { EditorMentionsRoot, IssueCommentToolbar } from "@/components/editor"; +import { EditorMentionsRoot } from "@/components/editor/embeds/mentions"; +import { IssueCommentToolbar } from "@/components/editor/lite-text/toolbar"; // hooks import { useEditorConfig, useEditorMention } from "@/hooks/editor"; -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; // plane web hooks import { useEditorFlagging } from "@/plane-web/hooks/use-editor-flagging"; // plane web services diff --git a/apps/web/core/components/editor/lite-text/toolbar.tsx b/apps/web/core/components/editor/lite-text/toolbar.tsx index 13cd07c44..0c2759f25 100644 --- a/apps/web/core/components/editor/lite-text/toolbar.tsx +++ b/apps/web/core/components/editor/lite-text/toolbar.tsx @@ -4,7 +4,7 @@ import React, { useEffect, useState, useCallback } from "react"; import { Globe2, Lock, LucideIcon } from "lucide-react"; import { EIssueCommentAccessSpecifier } from "@plane/constants"; // editor -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // i18n import { useTranslation } from "@plane/i18n"; // ui diff --git a/apps/web/core/components/editor/rich-text/editor.tsx b/apps/web/core/components/editor/rich-text/editor.tsx index 735d81e23..aaaa0898d 100644 --- a/apps/web/core/components/editor/rich-text/editor.tsx +++ b/apps/web/core/components/editor/rich-text/editor.tsx @@ -4,10 +4,10 @@ import { type EditorRefApi, type IRichTextEditorProps, RichTextEditorWithRef, ty import type { MakeOptional, TSearchEntityRequestPayload, TSearchResponse } from "@plane/types"; import { cn } from "@plane/utils"; // components -import { EditorMentionsRoot } from "@/components/editor"; +import { EditorMentionsRoot } from "@/components/editor/embeds/mentions"; // hooks import { useEditorConfig, useEditorMention } from "@/hooks/editor"; -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; // plane web hooks import { useEditorFlagging } from "@/plane-web/hooks/use-editor-flagging"; diff --git a/apps/web/core/components/editor/sticky-editor/editor.tsx b/apps/web/core/components/editor/sticky-editor/editor.tsx index 81149e41b..776d96cac 100644 --- a/apps/web/core/components/editor/sticky-editor/editor.tsx +++ b/apps/web/core/components/editor/sticky-editor/editor.tsx @@ -2,7 +2,7 @@ import React, { useState } from "react"; // plane constants import { EIssueCommentAccessSpecifier } from "@plane/constants"; // plane editor -import { EditorRefApi, ILiteTextEditorProps, LiteTextEditorWithRef, TFileHandler } from "@plane/editor"; +import { type EditorRefApi, type ILiteTextEditorProps, LiteTextEditorWithRef, type TFileHandler } from "@plane/editor"; // components import { TSticky } from "@plane/types"; // helpers diff --git a/apps/web/core/components/editor/sticky-editor/toolbar.tsx b/apps/web/core/components/editor/sticky-editor/toolbar.tsx index 84b27226e..6811e7003 100644 --- a/apps/web/core/components/editor/sticky-editor/toolbar.tsx +++ b/apps/web/core/components/editor/sticky-editor/toolbar.tsx @@ -3,7 +3,7 @@ import React, { useEffect, useState, useCallback } from "react"; import { Palette, Trash2 } from "lucide-react"; // editor -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // ui import { useOutsideClickDetector } from "@plane/hooks"; import { TSticky } from "@plane/types"; diff --git a/apps/web/core/components/empty-state/index.ts b/apps/web/core/components/empty-state/index.ts deleted file mode 100644 index 3ba1c3ad3..000000000 --- a/apps/web/core/components/empty-state/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./helper"; -export * from "./comic-box-button"; -export * from "./detailed-empty-state-root"; -export * from "./simple-empty-state-root"; -export * from "./section-empty-state-root"; diff --git a/apps/web/core/components/estimates/create/index.ts b/apps/web/core/components/estimates/create/index.ts deleted file mode 100644 index 7de8cb988..000000000 --- a/apps/web/core/components/estimates/create/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./modal"; -export * from "./stage-one"; diff --git a/apps/web/core/components/estimates/create/modal.tsx b/apps/web/core/components/estimates/create/modal.tsx index 531a024ab..396ba572e 100644 --- a/apps/web/core/components/estimates/create/modal.tsx +++ b/apps/web/core/components/estimates/create/modal.tsx @@ -3,17 +3,16 @@ import { FC, useEffect, useMemo, useState } from "react"; import { observer } from "mobx-react"; import { ChevronLeft } from "lucide-react"; -// types +// plane imports import { EEstimateSystem, ESTIMATE_SYSTEMS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IEstimateFormData, TEstimateSystemKeys, TEstimatePointsObject, TEstimateTypeError } from "@plane/types"; -// ui import { Button, EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui"; -// components -import { EstimateCreateStageOne, EstimatePointCreateRoot } from "@/components/estimates"; // hooks -import { useProjectEstimates } from "@/hooks/store"; -// plane web constants +import { useProjectEstimates } from "@/hooks/store/estimates"; +// local imports +import { EstimatePointCreateRoot } from "../points"; +import { EstimateCreateStageOne } from "./stage-one"; type TCreateEstimateModal = { workspaceSlug: string; @@ -101,7 +100,7 @@ export const CreateEstimateModal: FC = observer((props) => message: t("project_settings.estimates.toasts.created.success.message"), }); handleClose(); - } catch (error) { + } catch { setButtonLoader(false); setToast({ type: TOAST_TYPE.ERROR, diff --git a/apps/web/core/components/estimates/create/stage-one.tsx b/apps/web/core/components/estimates/create/stage-one.tsx index d16827364..dc38ebeb5 100644 --- a/apps/web/core/components/estimates/create/stage-one.tsx +++ b/apps/web/core/components/estimates/create/stage-one.tsx @@ -2,16 +2,18 @@ import { FC } from "react"; import { Info } from "lucide-react"; +// plane imports import { EEstimateSystem, ESTIMATE_SYSTEMS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { TEstimateSystemKeys } from "@plane/types"; import { Tooltip } from "@plane/ui"; // components import { convertMinutesToHoursMinutesString } from "@plane/utils"; -import { RadioInput } from "@/components/estimates"; -// plane web constants +// plane web imports import { isEstimateSystemEnabled } from "@/plane-web/components/estimates/helper"; -import { UpgradeBadge } from "@/plane-web/components/workspace"; +import { UpgradeBadge } from "@/plane-web/components/workspace/upgrade-badge"; +import { RadioInput } from "../radio-select"; +// local imports type TEstimateCreateStageOne = { estimateSystem: TEstimateSystemKeys; diff --git a/apps/web/core/components/estimates/delete/index.ts b/apps/web/core/components/estimates/delete/index.ts deleted file mode 100644 index 031608e25..000000000 --- a/apps/web/core/components/estimates/delete/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./modal"; diff --git a/apps/web/core/components/estimates/delete/modal.tsx b/apps/web/core/components/estimates/delete/modal.tsx index 8f9c17dd7..67ed4b847 100644 --- a/apps/web/core/components/estimates/delete/modal.tsx +++ b/apps/web/core/components/estimates/delete/modal.tsx @@ -7,7 +7,9 @@ import { PROJECT_SETTINGS_TRACKER_EVENTS } from "@plane/constants"; import { Button, EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useEstimate, useProject, useProjectEstimates } from "@/hooks/store"; +import { useEstimate } from "@/hooks/store/estimates/use-estimate"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectEstimates } from "@/hooks/store/estimates"; type TDeleteEstimateModal = { workspaceSlug: string; diff --git a/apps/web/core/components/estimates/empty-screen.tsx b/apps/web/core/components/estimates/empty-screen.tsx index 9dcd863f0..edc1c4f07 100644 --- a/apps/web/core/components/estimates/empty-screen.tsx +++ b/apps/web/core/components/estimates/empty-screen.tsx @@ -3,10 +3,12 @@ import { FC } from "react"; import { useTheme } from "next-themes"; import { PROJECT_SETTINGS_TRACKER_ELEMENTS, PROJECT_SETTINGS_TRACKER_EVENTS } from "@plane/constants"; +// plane imports import { useTranslation } from "@plane/i18n"; -// public images +// components +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +// helpers import { captureElementAndEvent } from "@/helpers/event-tracker.helper"; -import { DetailedEmptyState } from "../empty-state"; type TEstimateEmptyScreen = { onButtonClick: () => void; diff --git a/apps/web/core/components/estimates/estimate-disable-switch.tsx b/apps/web/core/components/estimates/estimate-disable-switch.tsx index a64864ea5..9acbe955b 100644 --- a/apps/web/core/components/estimates/estimate-disable-switch.tsx +++ b/apps/web/core/components/estimates/estimate-disable-switch.tsx @@ -7,7 +7,8 @@ import { useTranslation } from "@plane/i18n"; import { TOAST_TYPE, ToggleSwitch, setToast } from "@plane/ui"; // hooks import { captureElementAndEvent } from "@/helpers/event-tracker.helper"; -import { useProject, useProjectEstimates } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useProjectEstimates } from "@/hooks/store/estimates"; // i18n type TEstimateDisableSwitch = { workspaceSlug: string; diff --git a/apps/web/core/components/estimates/estimate-list-item.tsx b/apps/web/core/components/estimates/estimate-list-item.tsx index 14846c7de..ead1e8e15 100644 --- a/apps/web/core/components/estimates/estimate-list-item.tsx +++ b/apps/web/core/components/estimates/estimate-list-item.tsx @@ -4,7 +4,8 @@ import { EEstimateSystem } from "@plane/constants"; import { convertMinutesToHoursMinutesString, cn } from "@plane/utils"; // helpers // hooks -import { useEstimate, useProjectEstimates } from "@/hooks/store"; +import { useEstimate } from "@/hooks/store/estimates/use-estimate"; +import { useProjectEstimates } from "@/hooks/store/estimates"; // plane web components import { EstimateListItemButtons } from "@/plane-web/components/estimates"; diff --git a/apps/web/core/components/estimates/estimate-list.tsx b/apps/web/core/components/estimates/estimate-list.tsx index 57de5bc8d..c493352c1 100644 --- a/apps/web/core/components/estimates/estimate-list.tsx +++ b/apps/web/core/components/estimates/estimate-list.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; -// components -import { EstimateListItem } from "@/components/estimates"; +// local imports +import { EstimateListItem } from "./estimate-list-item"; type TEstimateList = { estimateIds: string[] | undefined; diff --git a/apps/web/core/components/estimates/index.ts b/apps/web/core/components/estimates/index.ts index 9ae5fb41c..1efe34c51 100644 --- a/apps/web/core/components/estimates/index.ts +++ b/apps/web/core/components/estimates/index.ts @@ -1,21 +1 @@ export * from "./root"; - -export * from "./empty-screen"; -export * from "./loader-screen"; -export * from "./radio-select"; - -export * from "./estimate-search"; -export * from "./estimate-disable-switch"; - -// estimates -export * from "./estimate-list"; -export * from "./estimate-list-item"; - -// create -export * from "./create"; - -// delete -export * from "./delete"; - -// estimate points -export * from "./points"; diff --git a/apps/web/core/components/estimates/inputs/index.ts b/apps/web/core/components/estimates/inputs/index.ts index bdeb73117..1efe34c51 100644 --- a/apps/web/core/components/estimates/inputs/index.ts +++ b/apps/web/core/components/estimates/inputs/index.ts @@ -1,3 +1 @@ export * from "./root"; -export * from "./number-input"; -export * from "./text-input"; diff --git a/apps/web/core/components/estimates/inputs/root.tsx b/apps/web/core/components/estimates/inputs/root.tsx index c7338fd44..56ad098d9 100644 --- a/apps/web/core/components/estimates/inputs/root.tsx +++ b/apps/web/core/components/estimates/inputs/root.tsx @@ -1,8 +1,11 @@ import { FC } from "react"; +// plane imports import { EEstimateSystem, TEstimateSystemKeys } from "@plane/types"; -// components -import { EstimateNumberInput, EstimateTextInput } from "@/components/estimates/inputs"; +// plane web imports import { EstimateTimeInput } from "@/plane-web/components/estimates/inputs"; +// local imports +import { EstimateNumberInput } from "./number-input"; +import { EstimateTextInput } from "./text-input"; type TEstimateInputRootProps = { estimateType: TEstimateSystemKeys; diff --git a/apps/web/core/components/estimates/points/create-root.tsx b/apps/web/core/components/estimates/points/create-root.tsx index 7c074245a..9d10c5582 100644 --- a/apps/web/core/components/estimates/points/create-root.tsx +++ b/apps/web/core/components/estimates/points/create-root.tsx @@ -3,12 +3,13 @@ import { Dispatch, FC, SetStateAction, useCallback, useState } from "react"; import { observer } from "mobx-react"; import { Plus } from "lucide-react"; +// plane imports import { estimateCount } from "@plane/constants"; import { TEstimatePointsObject, TEstimateSystemKeys, TEstimateTypeError } from "@plane/types"; import { Button, Sortable } from "@plane/ui"; -// components -import { EstimatePointCreate, EstimatePointItemPreview } from "@/components/estimates/points"; -// plane web constants +// local imports +import { EstimatePointCreate } from "./create"; +import { EstimatePointItemPreview } from "./preview"; type TEstimatePointCreateRoot = { workspaceSlug: string; @@ -102,7 +103,7 @@ export const EstimatePointCreateRoot: FC = observer((p key: currentKey, value: "", }); - handleEstimatePointError && handleEstimatePointError(currentKey, "", "", undefined, "add"); + handleEstimatePointError?.(currentKey, "", "", undefined, "add"); } }; diff --git a/apps/web/core/components/estimates/points/create.tsx b/apps/web/core/components/estimates/points/create.tsx index 5418830ac..7f751ce9c 100644 --- a/apps/web/core/components/estimates/points/create.tsx +++ b/apps/web/core/components/estimates/points/create.tsx @@ -11,7 +11,7 @@ import { cn, isEstimatePointValuesRepeated } from "@plane/utils"; import { EstimateInputRoot } from "@/components/estimates/inputs/root"; // helpers // hooks -import { useEstimate } from "@/hooks/store"; +import { useEstimate } from "@/hooks/store/estimates/use-estimate"; // plane web constants type TEstimatePointCreate = { diff --git a/apps/web/core/components/estimates/points/index.ts b/apps/web/core/components/estimates/points/index.ts index 0bfba1c52..2ef48eb2a 100644 --- a/apps/web/core/components/estimates/points/index.ts +++ b/apps/web/core/components/estimates/points/index.ts @@ -1,5 +1 @@ -export * from "./preview"; -export * from "./create"; -export * from "./update"; - export * from "./create-root"; diff --git a/apps/web/core/components/estimates/points/preview.tsx b/apps/web/core/components/estimates/points/preview.tsx index eaac1ed99..7792a79d3 100644 --- a/apps/web/core/components/estimates/points/preview.tsx +++ b/apps/web/core/components/estimates/points/preview.tsx @@ -1,15 +1,15 @@ import { FC, useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; import { GripVertical, Pencil, Trash2 } from "lucide-react"; +// plane imports import { EEstimateSystem, estimateCount } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { TEstimatePointsObject, TEstimateSystemKeys, TEstimateTypeErrorObject } from "@plane/types"; -// components import { convertMinutesToHoursMinutesString } from "@plane/utils"; -import { EstimatePointUpdate } from "@/components/estimates/points"; -// plane web components +// plane web imports import { EstimatePointDelete } from "@/plane-web/components/estimates"; -// plane web constants +// local imports +import { EstimatePointUpdate } from "./update"; type TEstimatePointItemPreview = { workspaceSlug: string; diff --git a/apps/web/core/components/estimates/points/update.tsx b/apps/web/core/components/estimates/points/update.tsx index 9924cb08a..6b3cd5976 100644 --- a/apps/web/core/components/estimates/points/update.tsx +++ b/apps/web/core/components/estimates/points/update.tsx @@ -11,7 +11,7 @@ import { cn, isEstimatePointValuesRepeated } from "@plane/utils"; import { EstimateInputRoot } from "@/components/estimates/inputs/root"; // helpers // hooks -import { useEstimatePoint } from "@/hooks/store"; +import { useEstimatePoint } from "@/hooks/store/estimates/use-estimate-point"; // plane web constants type TEstimatePointUpdate = { diff --git a/apps/web/core/components/estimates/radio-select.tsx b/apps/web/core/components/estimates/radio-select.tsx index 2fd691999..ffc36a6b6 100644 --- a/apps/web/core/components/estimates/radio-select.tsx +++ b/apps/web/core/components/estimates/radio-select.tsx @@ -81,5 +81,3 @@ export const RadioInput = ({
); }; - -export default RadioInput; diff --git a/apps/web/core/components/estimates/root.tsx b/apps/web/core/components/estimates/root.tsx index 5d0294f72..d68e60c8d 100644 --- a/apps/web/core/components/estimates/root.tsx +++ b/apps/web/core/components/estimates/root.tsx @@ -1,21 +1,21 @@ import { FC, useState } from "react"; import { observer } from "mobx-react"; import useSWR from "swr"; -// components +// plane imports import { useTranslation } from "@plane/i18n"; -import { - EstimateLoaderScreen, - EstimateEmptyScreen, - EstimateDisableSwitch, - CreateEstimateModal, - DeleteEstimateModal, - EstimateList, -} from "@/components/estimates"; // hooks -import { useProject, useProjectEstimates } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useProjectEstimates } from "@/hooks/store/estimates"; // plane web components import { UpdateEstimateModal } from "@/plane-web/components/estimates"; -import { SettingsHeading } from "../settings"; +// local imports +import { SettingsHeading } from "../settings/heading"; +import { CreateEstimateModal } from "./create/modal"; +import { DeleteEstimateModal } from "./delete/modal"; +import { EstimateEmptyScreen } from "./empty-screen"; +import { EstimateDisableSwitch } from "./estimate-disable-switch"; +import { EstimateList } from "./estimate-list"; +import { EstimateLoaderScreen } from "./loader-screen"; type TEstimateRoot = { workspaceSlug: string; diff --git a/apps/web/core/components/exporter/export-form.tsx b/apps/web/core/components/exporter/export-form.tsx index 0b097aeb6..927308d25 100644 --- a/apps/web/core/components/exporter/export-form.tsx +++ b/apps/web/core/components/exporter/export-form.tsx @@ -11,7 +11,8 @@ import { import { useTranslation } from "@plane/i18n"; import { Button, CustomSearchSelect, CustomSelect, TOAST_TYPE, setToast } from "@plane/ui"; import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useProject, useUser, useUserPermissions } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useUser, useUserPermissions } from "@/hooks/store/user"; import { ProjectExportService } from "@/services/project/project-export.service"; type Props = { diff --git a/apps/web/core/components/exporter/export-modal.tsx b/apps/web/core/components/exporter/export-modal.tsx index 05519d377..c1ba3a86e 100644 --- a/apps/web/core/components/exporter/export-modal.tsx +++ b/apps/web/core/components/exporter/export-modal.tsx @@ -11,7 +11,8 @@ import { IUser, IImporterService } from "@plane/types"; // ui import { Button, CustomSearchSelect, TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useProject, useUser } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useUser } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // services import { ProjectExportService } from "@/services/project"; diff --git a/apps/web/core/components/exporter/index.tsx b/apps/web/core/components/exporter/index.tsx deleted file mode 100644 index ff15c1192..000000000 --- a/apps/web/core/components/exporter/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -//layout -export * from "./single-export"; -// csv -export * from "./export-modal"; diff --git a/apps/web/core/components/exporter/prev-exports.tsx b/apps/web/core/components/exporter/prev-exports.tsx index b07d580b3..5ee589e7d 100644 --- a/apps/web/core/components/exporter/prev-exports.tsx +++ b/apps/web/core/components/exporter/prev-exports.tsx @@ -2,14 +2,20 @@ import { useEffect, useState } from "react"; import { observer } from "mobx-react"; import useSWR, { mutate } from "swr"; import { MoveLeft, MoveRight, RefreshCw } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; -import { IExportData } from "@plane/types"; +import type { IExportData } from "@plane/types"; import { Table } from "@plane/ui"; +// components +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { ImportExportSettingsLoader } from "@/components/ui/loader/settings/import-and-export"; +// constants import { EXPORT_SERVICES_LIST } from "@/constants/fetch-keys"; +// hooks import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; +// services import { IntegrationService } from "@/services/integrations"; -import { DetailedEmptyState } from "../empty-state"; -import { ImportExportSettingsLoader } from "../ui"; +// local imports import { useExportColumns } from "./column"; const integrationService = new IntegrationService(); diff --git a/apps/web/core/components/gantt-chart/blocks/block-row.tsx b/apps/web/core/components/gantt-chart/blocks/block-row.tsx index f856d201f..e24fe2ee7 100644 --- a/apps/web/core/components/gantt-chart/blocks/block-row.tsx +++ b/apps/web/core/components/gantt-chart/blocks/block-row.tsx @@ -5,7 +5,7 @@ import { ArrowRight } from "lucide-react"; import type { IBlockUpdateData, IGanttBlock } from "@plane/types"; import { cn } from "@plane/utils"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; import { useTimeLineChartStore } from "@/hooks/use-timeline-chart"; // diff --git a/apps/web/core/components/gantt-chart/chart/main-content.tsx b/apps/web/core/components/gantt-chart/chart/main-content.tsx index b2f3180b7..23b46da63 100644 --- a/apps/web/core/components/gantt-chart/chart/main-content.tsx +++ b/apps/web/core/components/gantt-chart/chart/main-content.tsx @@ -5,7 +5,7 @@ import { observer } from "mobx-react"; import { ChartDataType, IBlockUpdateData, IBlockUpdateDependencyData, IGanttBlock, TGanttViews } from "@plane/types"; import { cn, getDate } from "@plane/utils"; // components -import { MultipleSelectGroup } from "@/components/core"; +import { MultipleSelectGroup } from "@/components/core/multiple-select"; import { GanttChartSidebar, MonthChartView, QuarterChartView, WeekChartView } from "@/components/gantt-chart"; // helpers // hooks @@ -14,7 +14,7 @@ import { useTimeLineChartStore } from "@/hooks/use-timeline-chart"; import { TimelineDependencyPaths, TimelineDraggablePath } from "@/plane-web/components/gantt-chart"; import { GanttChartRowList } from "@/plane-web/components/gantt-chart/blocks/block-row-list"; import { GanttChartBlocksList } from "@/plane-web/components/gantt-chart/blocks/blocks-list"; -import { IssueBulkOperationsRoot } from "@/plane-web/components/issues"; +import { IssueBulkOperationsRoot } from "@/plane-web/components/issues/bulk-operations"; // plane web hooks import { useBulkOperationStatus } from "@/plane-web/hooks/use-bulk-operation-status"; // diff --git a/apps/web/core/components/gantt-chart/chart/root.tsx b/apps/web/core/components/gantt-chart/chart/root.tsx index 7c22d56be..455ed123e 100644 --- a/apps/web/core/components/gantt-chart/chart/root.tsx +++ b/apps/web/core/components/gantt-chart/chart/root.tsx @@ -8,7 +8,7 @@ import { cn } from "@plane/utils"; import { GanttChartHeader, GanttChartMainContent } from "@/components/gantt-chart"; // helpers // hooks -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; import { useTimeLineChartStore } from "@/hooks/use-timeline-chart"; // import { SIDEBAR_WIDTH } from "../constants"; diff --git a/apps/web/core/components/gantt-chart/sidebar/issues/block.tsx b/apps/web/core/components/gantt-chart/sidebar/issues/block.tsx index 730e9c6c5..2c64f4116 100644 --- a/apps/web/core/components/gantt-chart/sidebar/issues/block.tsx +++ b/apps/web/core/components/gantt-chart/sidebar/issues/block.tsx @@ -1,18 +1,17 @@ import { observer } from "mobx-react"; -// components +// plane imports import type { IGanttBlock } from "@plane/types"; import { Row } from "@plane/ui"; import { cn } from "@plane/utils"; -import { MultipleSelectEntityAction } from "@/components/core"; -import { IssueGanttSidebarBlock } from "@/components/issues"; -// helpers +// components +import { MultipleSelectEntityAction } from "@/components/core/multiple-select"; +import { IssueGanttSidebarBlock } from "@/components/issues/issue-layouts/gantt/blocks"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; import { useTimeLineChartStore } from "@/hooks/use-timeline-chart"; -// constants +// local imports import { BLOCK_HEIGHT, GANTT_SELECT_GROUP } from "../../constants"; -// types type Props = { block: IGanttBlock; diff --git a/apps/web/core/components/gantt-chart/sidebar/issues/sidebar.tsx b/apps/web/core/components/gantt-chart/sidebar/issues/sidebar.tsx index 30be6512b..2a720929a 100644 --- a/apps/web/core/components/gantt-chart/sidebar/issues/sidebar.tsx +++ b/apps/web/core/components/gantt-chart/sidebar/issues/sidebar.tsx @@ -7,12 +7,12 @@ import type { IBlockUpdateData } from "@plane/types"; import { Loader } from "@plane/ui"; // components import RenderIfVisible from "@/components/core/render-if-visible-HOC"; -import { GanttLayoutLIstItem } from "@/components/ui"; +import { GanttLayoutListItemLoader } from "@/components/ui/loader/layouts/gantt-layout-loader"; //hooks import { useIntersectionObserver } from "@/hooks/use-intersection-observer"; import { useIssuesStore } from "@/hooks/use-issue-layout-store"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; -// +// local imports import { useTimeLineChart } from "../../../../hooks/use-timeline-chart"; import { ETimeLineTypeType } from "../../contexts"; import { GanttDnDHOC } from "../gantt-dnd-HOC"; @@ -89,7 +89,7 @@ export const IssueGanttSidebar: React.FC = observer((props) => { horizontalOffset={100} verticalOffset={200} shouldRecordHeights={false} - placeholderChildren={} + placeholderChildren={} > { diff --git a/apps/web/core/components/home/widgets/recents/issue.tsx b/apps/web/core/components/home/widgets/recents/issue.tsx index 040aefea4..ed9015676 100644 --- a/apps/web/core/components/home/widgets/recents/issue.tsx +++ b/apps/web/core/components/home/widgets/recents/issue.tsx @@ -6,12 +6,14 @@ import { LayersIcon, PriorityIcon, StateGroupIcon, Tooltip } from "@plane/ui"; import { calculateTimeAgo, generateWorkItemLink } from "@plane/utils"; // components import { ListItem } from "@/components/core/list"; -import { MemberDropdown } from "@/components/dropdowns"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; // helpers // hooks -import { useIssueDetail, useProject, useProjectState } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; // plane web components -import { IssueIdentifier } from "@/plane-web/components/issues"; +import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; type BlockProps = { activity: TActivityEntityData; diff --git a/apps/web/core/components/home/widgets/recents/page.tsx b/apps/web/core/components/home/widgets/recents/page.tsx index b1ded3f44..288c0027c 100644 --- a/apps/web/core/components/home/widgets/recents/page.tsx +++ b/apps/web/core/components/home/widgets/recents/page.tsx @@ -1,17 +1,13 @@ import { useRouter } from "next/navigation"; import { FileText } from "lucide-react"; -// plane types -import { TActivityEntityData, TPageEntityData } from "@plane/types"; -// plane ui +// plane import +import type { TActivityEntityData, TPageEntityData } from "@plane/types"; import { Avatar, Logo } from "@plane/ui"; import { calculateTimeAgo, getFileURL, getPageName } from "@plane/utils"; -// plane utils // components import { ListItem } from "@/components/core/list"; -// helpers -// // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; type BlockProps = { activity: TActivityEntityData; diff --git a/apps/web/core/components/home/widgets/recents/project.tsx b/apps/web/core/components/home/widgets/recents/project.tsx index 4943dbde0..062e933a5 100644 --- a/apps/web/core/components/home/widgets/recents/project.tsx +++ b/apps/web/core/components/home/widgets/recents/project.tsx @@ -6,7 +6,7 @@ import { Logo } from "@plane/ui"; // components import { calculateTimeAgo } from "@plane/utils"; import { ListItem } from "@/components/core/list"; -import { MemberDropdown } from "@/components/dropdowns"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; // helpers type BlockProps = { diff --git a/apps/web/core/components/inbox/content/inbox-issue-header.tsx b/apps/web/core/components/inbox/content/inbox-issue-header.tsx index 19e32a822..cb247296c 100644 --- a/apps/web/core/components/inbox/content/inbox-issue-header.tsx +++ b/apps/web/core/components/inbox/content/inbox-issue-header.tsx @@ -15,28 +15,29 @@ import { MoveRight, Copy, } from "lucide-react"; +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EInboxIssueStatus, TNameDescriptionLoader } from "@plane/types"; import { Button, ControlLink, CustomMenu, Row, TOAST_TYPE, setToast } from "@plane/ui"; import { copyUrlToClipboard, findHowManyDaysLeft, generateWorkItemLink } from "@plane/utils"; // components -import { - DeclineIssueModal, - DeleteInboxIssueModal, - InboxIssueActionsMobileHeader, - InboxIssueSnoozeModal, - InboxIssueStatus, - SelectDuplicateInboxIssueModal, -} from "@/components/inbox"; -import { CreateUpdateIssueModal, NameDescriptionUpdateStatus } from "@/components/issues"; -// helpers -// +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; +import { NameDescriptionUpdateStatus } from "@/components/issues/issue-update-status"; // hooks -import { useUser, useProjectInbox, useProject, useUserPermissions } from "@/hooks/store"; +import { useUser, useUserPermissions } from "@/hooks/store/user" +import { useProjectInbox } from "@/hooks/store/use-project-inbox" +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; -// store types +// store import type { IInboxIssueStore } from "@/store/inbox/inbox-issue.store"; +// local imports +import { InboxIssueStatus } from "../inbox-issue-status"; +import { DeclineIssueModal } from "../modals/decline-issue-modal"; +import { DeleteInboxIssueModal } from "../modals/delete-issue-modal"; +import { SelectDuplicateInboxIssueModal } from "../modals/select-duplicate"; +import { InboxIssueSnoozeModal } from "../modals/snooze-issue-modal"; +import { InboxIssueActionsMobileHeader } from "./inbox-issue-mobile-header"; type TInboxIssueActionsHeader = { workspaceSlug: string; diff --git a/apps/web/core/components/inbox/content/inbox-issue-mobile-header.tsx b/apps/web/core/components/inbox/content/inbox-issue-mobile-header.tsx index d5ade21fc..f0e0fbbc6 100644 --- a/apps/web/core/components/inbox/content/inbox-issue-mobile-header.tsx +++ b/apps/web/core/components/inbox/content/inbox-issue-mobile-header.tsx @@ -19,14 +19,14 @@ import { TNameDescriptionLoader } from "@plane/types"; import { Header, CustomMenu, EHeaderVariant } from "@plane/ui"; import { cn, findHowManyDaysLeft, generateWorkItemLink } from "@plane/utils"; // components -import { InboxIssueStatus } from "@/components/inbox"; -import { NameDescriptionUpdateStatus } from "@/components/issues"; -// helpers +import { NameDescriptionUpdateStatus } from "@/components/issues/issue-update-status"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; // store types import type { IInboxIssueStore } from "@/store/inbox/inbox-issue.store"; +// local imports +import { InboxIssueStatus } from "../inbox-issue-status"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/inbox/content/index.ts b/apps/web/core/components/inbox/content/index.ts index b499a3ea1..1efe34c51 100644 --- a/apps/web/core/components/inbox/content/index.ts +++ b/apps/web/core/components/inbox/content/index.ts @@ -1,5 +1 @@ export * from "./root"; -export * from "./inbox-issue-header"; -export * from "./inbox-issue-mobile-header"; -export * from "./issue-properties"; -export * from "./issue-root"; diff --git a/apps/web/core/components/inbox/content/issue-properties.tsx b/apps/web/core/components/inbox/content/issue-properties.tsx index d5bfa4ebc..4102ae525 100644 --- a/apps/web/core/components/inbox/content/issue-properties.tsx +++ b/apps/web/core/components/inbox/content/issue-properties.tsx @@ -7,11 +7,14 @@ import { TInboxDuplicateIssueDetails, TIssue } from "@plane/types"; import { ControlLink, DoubleCircleIcon, Tooltip } from "@plane/ui"; import { getDate, renderFormattedPayloadDate, generateWorkItemLink } from "@plane/utils"; // components -import { DateDropdown, PriorityDropdown, MemberDropdown, StateDropdown } from "@/components/dropdowns"; -import { IssueLabel, TIssueOperations } from "@/components/issues"; -// helper +import { DateDropdown } from "@/components/dropdowns/date"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; +import type { TIssueOperations } from "@/components/issues/issue-detail"; +import { IssueLabel } from "@/components/issues/issue-detail/label"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import { useAppRouter } from "@/hooks/use-app-router"; type Props = { diff --git a/apps/web/core/components/inbox/content/issue-root.tsx b/apps/web/core/components/inbox/content/issue-root.tsx index e77147fa0..ae2e145c2 100644 --- a/apps/web/core/components/inbox/content/issue-root.tsx +++ b/apps/web/core/components/inbox/content/issue-root.tsx @@ -4,25 +4,26 @@ import { Dispatch, SetStateAction, useEffect, useMemo, useRef } from "react"; import { observer } from "mobx-react"; // plane imports import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; import { EInboxIssueSource, TIssue, TNameDescriptionLoader } from "@plane/types"; import { Loader, TOAST_TYPE, setToast } from "@plane/ui"; -// components import { getTextContent } from "@plane/utils"; +// components import { DescriptionVersionsRoot } from "@/components/core/description-versions"; -import { InboxIssueContentProperties } from "@/components/inbox/content"; -import { - IssueDescriptionInput, - IssueTitleInput, - IssueActivity, - IssueReaction, - TIssueOperations, - IssueAttachmentRoot, -} from "@/components/issues"; +import { IssueAttachmentRoot } from "@/components/issues/attachment"; +import { IssueDescriptionInput } from "@/components/issues/description-input"; +import type { TIssueOperations } from "@/components/issues/issue-detail"; +import { IssueActivity } from "@/components/issues/issue-detail/issue-activity"; +import { IssueReaction } from "@/components/issues/issue-detail/reactions"; +import { IssueTitleInput } from "@/components/issues/title-input"; // helpers // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useIssueDetail, useMember, useProject, useProjectInbox, useUser } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member" +import { useProject } from "@/hooks/store/use-project" +import { useProjectInbox } from "@/hooks/store/use-project-inbox" +import { useUser } from "@/hooks/store/user"; import useReloadConfirmations from "@/hooks/use-reload-confirmation"; // store types import { DeDupeIssuePopoverRoot } from "@/plane-web/components/de-dupe"; @@ -30,7 +31,9 @@ import { useDebouncedDuplicateIssues } from "@/plane-web/hooks/use-debounced-dup // services import { IntakeWorkItemVersionService } from "@/services/inbox"; // stores -import { IInboxIssueStore } from "@/store/inbox/inbox-issue.store"; +import type { IInboxIssueStore } from "@/store/inbox/inbox-issue.store"; +// local imports +import { InboxIssueContentProperties } from "./issue-properties"; // services init const intakeWorkItemVersionService = new IntakeWorkItemVersionService(); diff --git a/apps/web/core/components/inbox/content/root.tsx b/apps/web/core/components/inbox/content/root.tsx index 0c7493fb7..29d436563 100644 --- a/apps/web/core/components/inbox/content/root.tsx +++ b/apps/web/core/components/inbox/content/root.tsx @@ -5,10 +5,13 @@ import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { TNameDescriptionLoader } from "@plane/types"; // components import { ContentWrapper } from "@plane/ui"; -import { InboxIssueActionsHeader, InboxIssueMainContent } from "@/components/inbox"; // hooks -import { useProjectInbox, useUser, useUserPermissions } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox" +import { useUser, useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; +// local imports +import { InboxIssueActionsHeader } from "./inbox-issue-header"; +import { InboxIssueMainContent } from "./issue-root"; type TInboxContentRoot = { workspaceSlug: string; diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/date.tsx b/apps/web/core/components/inbox/inbox-filter/applied-filters/date.tsx index 956f75719..58799eb3c 100644 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/date.tsx +++ b/apps/web/core/components/inbox/inbox-filter/applied-filters/date.tsx @@ -8,7 +8,7 @@ import { Tag } from "@plane/ui"; import { renderFormattedDate } from "@plane/utils"; // constants // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; type InboxIssueAppliedFiltersDate = { filterKey: TInboxIssueFilterDateKeys; diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/index.ts b/apps/web/core/components/inbox/inbox-filter/applied-filters/index.ts deleted file mode 100644 index 6113e51dd..000000000 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./root"; -export * from "./status"; -export * from "./state"; -export * from "./priority"; -export * from "./member"; -export * from "./label"; -export * from "./date"; diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/label.tsx b/apps/web/core/components/inbox/inbox-filter/applied-filters/label.tsx index d18438caf..d942175f3 100644 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/label.tsx +++ b/apps/web/core/components/inbox/inbox-filter/applied-filters/label.tsx @@ -3,7 +3,8 @@ import { observer } from "mobx-react"; import { X } from "lucide-react"; // hooks import { Tag } from "@plane/ui"; -import { useLabel, useProjectInbox } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; const LabelIcons = ({ color }: { color: string }) => ( diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/member.tsx b/apps/web/core/components/inbox/inbox-filter/applied-filters/member.tsx index a93095579..73307ebf6 100644 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/member.tsx +++ b/apps/web/core/components/inbox/inbox-filter/applied-filters/member.tsx @@ -10,7 +10,8 @@ import { Avatar, Tag } from "@plane/ui"; // helpers import { getFileURL } from "@plane/utils"; // hooks -import { useMember, useProjectInbox } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; type InboxIssueAppliedFiltersMember = { filterKey: TInboxIssueFilterMemberKeys; diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/priority.tsx b/apps/web/core/components/inbox/inbox-filter/applied-filters/priority.tsx index ebbdd6ae5..a2eb5246b 100644 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/priority.tsx +++ b/apps/web/core/components/inbox/inbox-filter/applied-filters/priority.tsx @@ -8,7 +8,7 @@ import { useTranslation } from "@plane/i18n"; import { TIssuePriorities } from "@plane/types"; import { PriorityIcon, Tag } from "@plane/ui"; // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; export const InboxIssueAppliedFiltersPriority: FC = observer(() => { // hooks diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/root.tsx b/apps/web/core/components/inbox/inbox-filter/applied-filters/root.tsx index a0ddd674a..b2a517802 100644 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/root.tsx +++ b/apps/web/core/components/inbox/inbox-filter/applied-filters/root.tsx @@ -1,17 +1,16 @@ import { FC } from "react"; import { observer } from "mobx-react"; -// components +// plane imports import { Header, EHeaderVariant } from "@plane/ui"; -import { - InboxIssueAppliedFiltersStatus, - InboxIssueAppliedFiltersPriority, - InboxIssueAppliedFiltersMember, - InboxIssueAppliedFiltersLabel, - InboxIssueAppliedFiltersDate, - InboxIssueAppliedFiltersState, -} from "@/components/inbox"; // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; +// local imports +import { InboxIssueAppliedFiltersDate } from "./date"; +import { InboxIssueAppliedFiltersLabel } from "./label"; +import { InboxIssueAppliedFiltersMember } from "./member"; +import { InboxIssueAppliedFiltersPriority } from "./priority"; +import { InboxIssueAppliedFiltersState } from "./state"; +import { InboxIssueAppliedFiltersStatus } from "./status"; export const InboxIssueAppliedFilters: FC = observer(() => { const { getAppliedFiltersCount } = useProjectInbox(); diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/state.tsx b/apps/web/core/components/inbox/inbox-filter/applied-filters/state.tsx index a237c910f..2ca791466 100644 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/state.tsx +++ b/apps/web/core/components/inbox/inbox-filter/applied-filters/state.tsx @@ -6,7 +6,8 @@ import { X } from "lucide-react"; import { EIconSize } from "@plane/constants"; import { StateGroupIcon, Tag } from "@plane/ui"; // hooks -import { useProjectInbox, useProjectState } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox" +import { useProjectState } from "@/hooks/store/use-project-state"; export const InboxIssueAppliedFiltersState: FC = observer(() => { // hooks diff --git a/apps/web/core/components/inbox/inbox-filter/applied-filters/status.tsx b/apps/web/core/components/inbox/inbox-filter/applied-filters/status.tsx index d19c80a22..1ecbf5efd 100644 --- a/apps/web/core/components/inbox/inbox-filter/applied-filters/status.tsx +++ b/apps/web/core/components/inbox/inbox-filter/applied-filters/status.tsx @@ -7,7 +7,7 @@ import { TInboxIssueStatus } from "@plane/types"; // constants import { Tag } from "@plane/ui"; // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import { InboxStatusIcon } from "../../inbox-status-icon"; export const InboxIssueAppliedFiltersStatus: FC = observer(() => { diff --git a/apps/web/core/components/inbox/inbox-filter/filters/date.tsx b/apps/web/core/components/inbox/inbox-filter/filters/date.tsx index 4eb8d9d31..7382a028d 100644 --- a/apps/web/core/components/inbox/inbox-filter/filters/date.tsx +++ b/apps/web/core/components/inbox/inbox-filter/filters/date.tsx @@ -5,11 +5,11 @@ import { observer } from "mobx-react"; import { PAST_DURATION_FILTER_OPTIONS } from "@plane/constants"; import { TInboxIssueFilterDateKeys } from "@plane/types"; // components -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"; // constants // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; type Props = { filterKey: TInboxIssueFilterDateKeys; diff --git a/apps/web/core/components/inbox/inbox-filter/filters/filter-selection.tsx b/apps/web/core/components/inbox/inbox-filter/filters/filter-selection.tsx index cff75e209..7c5c61009 100644 --- a/apps/web/core/components/inbox/inbox-filter/filters/filter-selection.tsx +++ b/apps/web/core/components/inbox/inbox-filter/filters/filter-selection.tsx @@ -1,18 +1,18 @@ import { FC, useState } from "react"; import { observer } from "mobx-react"; import { Search, X } from "lucide-react"; -// components -import { - FilterStatus, - FilterPriority, - FilterMember, - FilterDate, - FilterLabels, - FilterState, -} from "@/components/inbox/inbox-filter/filters"; // hooks -import { useMember, useLabel, useProjectState } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// local imports +import { FilterDate } from "./date"; +import { FilterLabels } from "./labels"; +import { FilterMember } from "./members"; +import { FilterPriority } from "./priority"; +import { FilterState } from "./state"; +import { FilterStatus } from "./status"; export const InboxIssueFilterSelection: FC = observer(() => { // hooks diff --git a/apps/web/core/components/inbox/inbox-filter/filters/index.ts b/apps/web/core/components/inbox/inbox-filter/filters/index.ts deleted file mode 100644 index 4cd0d31f1..000000000 --- a/apps/web/core/components/inbox/inbox-filter/filters/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./filter-selection"; -export * from "./status"; -export * from "./state"; -export * from "./priority"; -export * from "./labels"; -export * from "./members"; -export * from "./date"; diff --git a/apps/web/core/components/inbox/inbox-filter/filters/labels.tsx b/apps/web/core/components/inbox/inbox-filter/filters/labels.tsx index 3541ef8dc..1bb86c931 100644 --- a/apps/web/core/components/inbox/inbox-filter/filters/labels.tsx +++ b/apps/web/core/components/inbox/inbox-filter/filters/labels.tsx @@ -5,9 +5,9 @@ import { observer } from "mobx-react"; import { IIssueLabel } from "@plane/types"; import { Loader } from "@plane/ui"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; const LabelIcons = ({ color }: { color: string }) => ( diff --git a/apps/web/core/components/inbox/inbox-filter/filters/members.tsx b/apps/web/core/components/inbox/inbox-filter/filters/members.tsx index 77ce95c4e..1be980b35 100644 --- a/apps/web/core/components/inbox/inbox-filter/filters/members.tsx +++ b/apps/web/core/components/inbox/inbox-filter/filters/members.tsx @@ -9,10 +9,12 @@ import { TInboxIssueFilterMemberKeys } from "@plane/types"; 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, useProjectInbox, useUser } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useProjectInbox } from "@/hooks/store/use-project-inbox" +import { useUser } from "@/hooks/store/user"; type Props = { filterKey: TInboxIssueFilterMemberKeys; diff --git a/apps/web/core/components/inbox/inbox-filter/filters/priority.tsx b/apps/web/core/components/inbox/inbox-filter/filters/priority.tsx index ebb02ccb3..a3174f51c 100644 --- a/apps/web/core/components/inbox/inbox-filter/filters/priority.tsx +++ b/apps/web/core/components/inbox/inbox-filter/filters/priority.tsx @@ -8,7 +8,7 @@ import { TIssuePriorities } from "@plane/types"; import { PriorityIcon } from "@plane/ui"; // plane constants // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // hooks import { useProjectInbox } from "@/hooks/store/use-project-inbox"; diff --git a/apps/web/core/components/inbox/inbox-filter/filters/state.tsx b/apps/web/core/components/inbox/inbox-filter/filters/state.tsx index 49b5f99ac..7c2778db2 100644 --- a/apps/web/core/components/inbox/inbox-filter/filters/state.tsx +++ b/apps/web/core/components/inbox/inbox-filter/filters/state.tsx @@ -6,9 +6,9 @@ import { EIconSize } from "@plane/constants"; import { IState } from "@plane/types"; import { Loader, StateGroupIcon } from "@plane/ui"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; type Props = { states: IState[] | undefined; diff --git a/apps/web/core/components/inbox/inbox-filter/filters/status.tsx b/apps/web/core/components/inbox/inbox-filter/filters/status.tsx index 98b12fa7d..250ba128b 100644 --- a/apps/web/core/components/inbox/inbox-filter/filters/status.tsx +++ b/apps/web/core/components/inbox/inbox-filter/filters/status.tsx @@ -5,7 +5,7 @@ import { INBOX_STATUS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { TInboxIssueStatus } from "@plane/types"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // constants // hooks import { useProjectInbox } from "@/hooks/store/use-project-inbox"; diff --git a/apps/web/core/components/inbox/inbox-filter/index.ts b/apps/web/core/components/inbox/inbox-filter/index.ts index 20ec09a35..1efe34c51 100644 --- a/apps/web/core/components/inbox/inbox-filter/index.ts +++ b/apps/web/core/components/inbox/inbox-filter/index.ts @@ -1,4 +1 @@ export * from "./root"; -export * from "./filters"; -export * from "./sorting"; -export * from "./applied-filters"; diff --git a/apps/web/core/components/inbox/inbox-filter/root.tsx b/apps/web/core/components/inbox/inbox-filter/root.tsx index df4fcf69f..d6d8567d4 100644 --- a/apps/web/core/components/inbox/inbox-filter/root.tsx +++ b/apps/web/core/components/inbox/inbox-filter/root.tsx @@ -1,13 +1,15 @@ import { FC } from "react"; import { ChevronDown, ListFilter } from "lucide-react"; -// plane ui +// plane imports import { getButtonStyling } from "@plane/ui"; -// plane utils import { cn } from "@plane/utils"; // components -import { InboxIssueFilterSelection, InboxIssueOrderByDropdown } from "@/components/inbox/inbox-filter"; -import { FiltersDropdown } from "@/components/issues"; +import { FiltersDropdown } from "@/components/issues/issue-layouts/filters"; +// hooks import useSize from "@/hooks/use-window-size"; +// local imports +import { InboxIssueFilterSelection } from "./filters/filter-selection"; +import { InboxIssueOrderByDropdown } from "./sorting/order-by"; const smallButton = ; diff --git a/apps/web/core/components/inbox/inbox-filter/sorting/index.ts b/apps/web/core/components/inbox/inbox-filter/sorting/index.ts deleted file mode 100644 index d6db844ce..000000000 --- a/apps/web/core/components/inbox/inbox-filter/sorting/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./order-by"; diff --git a/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx b/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx index b65a20160..fc984c0f0 100644 --- a/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx +++ b/apps/web/core/components/inbox/inbox-filter/sorting/order-by.tsx @@ -11,7 +11,7 @@ import { CustomMenu, getButtonStyling } from "@plane/ui"; // helpers import { cn } from "@plane/utils"; // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import useSize from "@/hooks/use-window-size"; export const InboxIssueOrderByDropdown: FC = observer(() => { diff --git a/apps/web/core/components/inbox/index.ts b/apps/web/core/components/inbox/index.ts index 8b05b565f..1efe34c51 100644 --- a/apps/web/core/components/inbox/index.ts +++ b/apps/web/core/components/inbox/index.ts @@ -1,6 +1 @@ export * from "./root"; -export * from "./modals"; -export * from "./sidebar"; -export * from "./inbox-filter"; -export * from "./content"; -export * from "./inbox-issue-status"; diff --git a/apps/web/core/components/inbox/modals/create-modal/create-root.tsx b/apps/web/core/components/inbox/modals/create-modal/create-root.tsx index 32dbfc42a..57627bca5 100644 --- a/apps/web/core/components/inbox/modals/create-modal/create-root.tsx +++ b/apps/web/core/components/inbox/modals/create-modal/create-root.tsx @@ -4,25 +4,29 @@ import { FC, FormEvent, useCallback, useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; // plane imports import { ETabIndices, WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; -import { EditorRefApi } from "@plane/editor"; -// types +import type { EditorRefApi } from "@plane/editor"; import { useTranslation } from "@plane/i18n"; import { TIssue } from "@plane/types"; import { Button, ToggleSwitch, TOAST_TYPE, setToast } from "@plane/ui"; import { renderFormattedPayloadDate, getTabIndex } from "@plane/utils"; -// components -import { InboxIssueTitle, InboxIssueDescription, InboxIssueProperties } from "@/components/inbox/modals/create-modal"; -// constants -// hooks +// helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useProject, useProjectInbox, useWorkspace } from "@/hooks/store"; +// hooks +import { useProject } from "@/hooks/store/use-project" +import { useProjectInbox } from "@/hooks/store/use-project-inbox" +import { useWorkspace } from "@/hooks/store/use-workspace"; import { useAppRouter } from "@/hooks/use-app-router"; import useKeypress from "@/hooks/use-keypress"; import { usePlatformOS } from "@/hooks/use-platform-os"; -// services +// plane web imports import { DeDupeButtonRoot, DuplicateModalRoot } from "@/plane-web/components/de-dupe"; import { useDebouncedDuplicateIssues } from "@/plane-web/hooks/use-debounced-duplicate-issues"; +// services import { FileService } from "@/services/file.service"; +// local imports +import { InboxIssueDescription } from "./issue-description"; +import { InboxIssueProperties } from "./issue-properties"; +import { InboxIssueTitle } from "./issue-title"; const fileService = new FileService(); diff --git a/apps/web/core/components/inbox/modals/create-modal/index.ts b/apps/web/core/components/inbox/modals/create-modal/index.ts index 907c3ddba..031608e25 100644 --- a/apps/web/core/components/inbox/modals/create-modal/index.ts +++ b/apps/web/core/components/inbox/modals/create-modal/index.ts @@ -1,5 +1 @@ export * from "./modal"; -export * from "./create-root"; -export * from "./issue-title"; -export * from "./issue-description"; -export * from "./issue-properties"; diff --git a/apps/web/core/components/inbox/modals/create-modal/issue-description.tsx b/apps/web/core/components/inbox/modals/create-modal/issue-description.tsx index 09679cf31..6d7c5a584 100644 --- a/apps/web/core/components/inbox/modals/create-modal/issue-description.tsx +++ b/apps/web/core/components/inbox/modals/create-modal/issue-description.tsx @@ -4,7 +4,7 @@ import { FC, RefObject } from "react"; import { observer } from "mobx-react"; // plane imports import { ETabIndices } from "@plane/constants"; -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; import { useTranslation } from "@plane/i18n"; import { EFileAssetType, TIssue } from "@plane/types"; import { Loader } from "@plane/ui"; @@ -12,7 +12,8 @@ import { getDescriptionPlaceholderI18n, getTabIndex } from "@plane/utils"; // components import { RichTextEditor } from "@/components/editor/rich-text/editor"; // hooks -import { useEditorAsset, useProjectInbox } from "@/hooks/store"; +import { useEditorAsset } from "@/hooks/store/use-editor-asset" +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import { usePlatformOS } from "@/hooks/use-platform-os"; // services import { WorkspaceService } from "@/plane-web/services"; diff --git a/apps/web/core/components/inbox/modals/create-modal/issue-properties.tsx b/apps/web/core/components/inbox/modals/create-modal/issue-properties.tsx index 5f87202cd..2a3609937 100644 --- a/apps/web/core/components/inbox/modals/create-modal/issue-properties.tsx +++ b/apps/web/core/components/inbox/modals/create-modal/issue-properties.tsx @@ -7,20 +7,18 @@ import { ISearchIssueResponse, TIssue } from "@plane/types"; import { CustomMenu } from "@plane/ui"; import { renderFormattedPayloadDate, getDate, getTabIndex } from "@plane/utils"; // components -import { - CycleDropdown, - DateDropdown, - EstimateDropdown, - ModuleDropdown, - PriorityDropdown, - MemberDropdown, - StateDropdown, -} from "@/components/dropdowns"; -import { ParentIssuesListModal } from "@/components/issues"; +import { CycleDropdown } from "@/components/dropdowns/cycle"; +import { DateDropdown } from "@/components/dropdowns/date"; +import { EstimateDropdown } from "@/components/dropdowns/estimate"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { ModuleDropdown } from "@/components/dropdowns/module/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; +import { ParentIssuesListModal } from "@/components/issues/parent-issues-list-modal"; import { IssueLabelSelect } from "@/components/issues/select"; // helpers // hooks -import { useProjectEstimates } from "@/hooks/store"; +import { useProjectEstimates } from "@/hooks/store/estimates"; import { usePlatformOS } from "@/hooks/use-platform-os"; type TInboxIssueProperties = { diff --git a/apps/web/core/components/inbox/modals/create-modal/modal.tsx b/apps/web/core/components/inbox/modals/create-modal/modal.tsx index 698d0bf4d..42e3dd879 100644 --- a/apps/web/core/components/inbox/modals/create-modal/modal.tsx +++ b/apps/web/core/components/inbox/modals/create-modal/modal.tsx @@ -1,12 +1,12 @@ "use-client"; import { FC, useState } from "react"; -// ui +// plane imports import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; -// components -import { InboxIssueCreateRoot } from "@/components/inbox/modals/create-modal"; // hooks import useKeypress from "@/hooks/use-keypress"; +// local imports +import { InboxIssueCreateRoot } from "./create-root"; type TInboxIssueCreateModalRoot = { workspaceSlug: string; diff --git a/apps/web/core/components/inbox/modals/decline-issue-modal.tsx b/apps/web/core/components/inbox/modals/decline-issue-modal.tsx index 206eae71f..56749cc55 100644 --- a/apps/web/core/components/inbox/modals/decline-issue-modal.tsx +++ b/apps/web/core/components/inbox/modals/decline-issue-modal.tsx @@ -5,7 +5,7 @@ import type { TIssue } from "@plane/types"; // ui import { AlertModalCore } from "@plane/ui"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; type Props = { data: Partial; diff --git a/apps/web/core/components/inbox/modals/delete-issue-modal.tsx b/apps/web/core/components/inbox/modals/delete-issue-modal.tsx index cd76aae63..b2fd74e83 100644 --- a/apps/web/core/components/inbox/modals/delete-issue-modal.tsx +++ b/apps/web/core/components/inbox/modals/delete-issue-modal.tsx @@ -8,7 +8,7 @@ import type { TIssue } from "@plane/types"; import { AlertModalCore, setToast, TOAST_TYPE } from "@plane/ui"; // constants // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; type Props = { data: Partial; diff --git a/apps/web/core/components/inbox/modals/index.ts b/apps/web/core/components/inbox/modals/index.ts deleted file mode 100644 index 78d9e6561..000000000 --- a/apps/web/core/components/inbox/modals/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./create-modal"; -export * from "./decline-issue-modal"; -export * from "./delete-issue-modal"; -export * from "./select-duplicate"; -export * from "./snooze-issue-modal"; diff --git a/apps/web/core/components/inbox/modals/select-duplicate.tsx b/apps/web/core/components/inbox/modals/select-duplicate.tsx index 39d66beec..040d0f5c1 100644 --- a/apps/web/core/components/inbox/modals/select-duplicate.tsx +++ b/apps/web/core/components/inbox/modals/select-duplicate.tsx @@ -9,9 +9,9 @@ import { useTranslation } from "@plane/i18n"; import { ISearchIssueResponse } from "@plane/types"; import { 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 { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import useDebounce from "@/hooks/use-debounce"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; // services diff --git a/apps/web/core/components/inbox/root.tsx b/apps/web/core/components/inbox/root.tsx index 7016da40d..aefb68861 100644 --- a/apps/web/core/components/inbox/root.tsx +++ b/apps/web/core/components/inbox/root.tsx @@ -5,14 +5,14 @@ import { PanelLeft } from "lucide-react"; import { useTranslation } from "@plane/i18n"; import { EInboxIssueCurrentTab } from "@plane/types"; import { Intake } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { SimpleEmptyState } from "@/components/empty-state"; -import { InboxSidebar, InboxContentRoot } from "@/components/inbox"; -import { InboxLayoutLoader } from "@/components/ui"; -// helpers +// components +import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root"; +import { InboxContentRoot } from "@/components/inbox/content"; +import { InboxSidebar } from "@/components/inbox/sidebar"; +import { InboxLayoutLoader } from "@/components/ui/loader/layouts/project-inbox/inbox-layout-loader"; // hooks -import { useProjectInbox } from "@/hooks/store"; +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; type TInboxIssueRoot = { diff --git a/apps/web/core/components/inbox/sidebar/inbox-list-item.tsx b/apps/web/core/components/inbox/sidebar/inbox-list-item.tsx index 308092fee..4ecc13dad 100644 --- a/apps/web/core/components/inbox/sidebar/inbox-list-item.tsx +++ b/apps/web/core/components/inbox/sidebar/inbox-list-item.tsx @@ -4,16 +4,20 @@ import { FC, MouseEvent } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { useSearchParams } from "next/navigation"; +// plane imports import { Tooltip, PriorityIcon, Row, Avatar } from "@plane/ui"; import { cn, renderFormattedDate, getFileURL } from "@plane/utils"; // components import { ButtonAvatars } from "@/components/dropdowns/member/avatar"; -import { InboxIssueStatus } from "@/components/inbox"; -// helpers // hooks -import { useLabel, useMember, useProjectInbox } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useMember } from "@/hooks/store/use-member" +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// plane web imports import { InboxSourcePill } from "@/plane-web/components/inbox/source-pill"; +// local imports +import { InboxIssueStatus } from "../inbox-issue-status"; type InboxIssueListItemProps = { workspaceSlug: string; diff --git a/apps/web/core/components/inbox/sidebar/inbox-list.tsx b/apps/web/core/components/inbox/sidebar/inbox-list.tsx index 95d692b60..cabd16616 100644 --- a/apps/web/core/components/inbox/sidebar/inbox-list.tsx +++ b/apps/web/core/components/inbox/sidebar/inbox-list.tsx @@ -1,7 +1,7 @@ import { FC, Fragment } from "react"; import { observer } from "mobx-react"; -// components -import { InboxIssueListItem } from "@/components/inbox"; +// local imports +import { InboxIssueListItem } from "./inbox-list-item"; export type InboxIssueListProps = { workspaceSlug: string; diff --git a/apps/web/core/components/inbox/sidebar/index.ts b/apps/web/core/components/inbox/sidebar/index.ts index 8a7673423..1efe34c51 100644 --- a/apps/web/core/components/inbox/sidebar/index.ts +++ b/apps/web/core/components/inbox/sidebar/index.ts @@ -1,3 +1 @@ export * from "./root"; -export * from "./inbox-list"; -export * from "./inbox-list-item"; diff --git a/apps/web/core/components/inbox/sidebar/root.tsx b/apps/web/core/components/inbox/sidebar/root.tsx index d5f05e0be..0d8eed682 100644 --- a/apps/web/core/components/inbox/sidebar/root.tsx +++ b/apps/web/core/components/inbox/sidebar/root.tsx @@ -6,17 +6,20 @@ import { useTranslation } from "@plane/i18n"; import { TInboxIssueCurrentTab, EInboxIssueCurrentTab } from "@plane/types"; // plane imports import { Header, Loader, EHeaderVariant } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { SimpleEmptyState } from "@/components/empty-state"; -import { FiltersRoot, InboxIssueAppliedFilters, InboxIssueList } from "@/components/inbox"; -import { InboxSidebarLoader } from "@/components/ui"; -// helpers +// components +import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root"; +import { InboxSidebarLoader } from "@/components/ui/loader/layouts/project-inbox/inbox-sidebar-loader"; // hooks -import { useProject, useProjectInbox } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; import { useAppRouter } from "@/hooks/use-app-router"; import { useIntersectionObserver } from "@/hooks/use-intersection-observer"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; +// local imports +import { FiltersRoot } from "../inbox-filter"; +import { InboxIssueAppliedFilters } from "../inbox-filter/applied-filters/root"; +import { InboxIssueList } from "./inbox-list"; type IInboxSidebarProps = { workspaceSlug: string; diff --git a/apps/web/core/components/integration/github/auth.tsx b/apps/web/core/components/integration/github/auth.tsx index 0ba2dc9f5..b141ff798 100644 --- a/apps/web/core/components/integration/github/auth.tsx +++ b/apps/web/core/components/integration/github/auth.tsx @@ -6,7 +6,7 @@ import { IWorkspaceIntegration } from "@plane/types"; // ui import { Button } from "@plane/ui"; // hooks -import { useInstance } from "@/hooks/store"; +import { useInstance } from "@/hooks/store/use-instance"; import useIntegrationPopup from "@/hooks/use-integration-popup"; type Props = { diff --git a/apps/web/core/components/integration/github/import-data.tsx b/apps/web/core/components/integration/github/import-data.tsx index d1343b523..082a0ac22 100644 --- a/apps/web/core/components/integration/github/import-data.tsx +++ b/apps/web/core/components/integration/github/import-data.tsx @@ -11,7 +11,7 @@ import { truncateText } from "@plane/utils"; import { SelectRepository, TFormValues, TIntegrationSteps } from "@/components/integration"; // ui // helpers -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; // types type Props = { diff --git a/apps/web/core/components/integration/guide.tsx b/apps/web/core/components/integration/guide.tsx index 7cce8df86..d6e216109 100644 --- a/apps/web/core/components/integration/guide.tsx +++ b/apps/web/core/components/integration/guide.tsx @@ -17,11 +17,11 @@ import { IImporterService } from "@plane/types"; import { Button } from "@plane/ui"; // components import { DeleteImportModal, GithubImporterRoot, JiraImporterRoot, SingleImport } from "@/components/integration"; -import { ImportExportSettingsLoader } from "@/components/ui"; +import { ImportExportSettingsLoader } from "@/components/ui/loader/settings/import-and-export"; // constants import { IMPORTER_SERVICES_LIST } from "@/constants/fetch-keys"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // assets import GithubLogo from "@/public/services/github.png"; import JiraLogo from "@/public/services/jira.svg"; diff --git a/apps/web/core/components/integration/jira/give-details.tsx b/apps/web/core/components/integration/jira/give-details.tsx index 19eace8a5..292bd3c67 100644 --- a/apps/web/core/components/integration/jira/give-details.tsx +++ b/apps/web/core/components/integration/jira/give-details.tsx @@ -13,7 +13,8 @@ import { CustomSelect, Input } from "@plane/ui"; // helpers import { checkEmailValidity } from "@plane/utils"; import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useProject } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project"; // types export const JiraGetImportDetail: React.FC = observer(() => { diff --git a/apps/web/core/components/integration/single-integration-card.tsx b/apps/web/core/components/integration/single-integration-card.tsx index eb1de3ed3..9e33f77c4 100644 --- a/apps/web/core/components/integration/single-integration-card.tsx +++ b/apps/web/core/components/integration/single-integration-card.tsx @@ -13,7 +13,8 @@ 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 { useInstance } from "@/hooks/store/use-instance" +import { useUserPermissions } from "@/hooks/store/user"; import useIntegrationPopup from "@/hooks/use-integration-popup"; import { usePlatformOS } from "@/hooks/use-platform-os"; // services diff --git a/apps/web/core/components/integration/slack/select-channel.tsx b/apps/web/core/components/integration/slack/select-channel.tsx index 15da0bf4b..4a762a2c0 100644 --- a/apps/web/core/components/integration/slack/select-channel.tsx +++ b/apps/web/core/components/integration/slack/select-channel.tsx @@ -11,7 +11,7 @@ import { Loader } from "@plane/ui"; // fetch-keys import { SLACK_CHANNEL_INFO } from "@/constants/fetch-keys"; // hooks -import { useInstance } from "@/hooks/store"; +import { useInstance } from "@/hooks/store/use-instance"; import useIntegrationPopup from "@/hooks/use-integration-popup"; // services import { AppInstallationService } from "@/services/app_installation.service"; diff --git a/apps/web/core/components/issues/archive-issue-modal.tsx b/apps/web/core/components/issues/archive-issue-modal.tsx index 9d2037ff4..09242ecc9 100644 --- a/apps/web/core/components/issues/archive-issue-modal.tsx +++ b/apps/web/core/components/issues/archive-issue-modal.tsx @@ -9,7 +9,7 @@ import { TDeDupeIssue, TIssue } from "@plane/types"; // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; import { useIssues } from "@/hooks/store/use-issues"; type Props = { diff --git a/apps/web/core/components/issues/archived-issues-header.tsx b/apps/web/core/components/issues/archived-issues-header.tsx index d9504e321..dde2c485f 100644 --- a/apps/web/core/components/issues/archived-issues-header.tsx +++ b/apps/web/core/components/issues/archived-issues-header.tsx @@ -15,10 +15,14 @@ import { // components import { isIssueFilterActive } from "@plane/utils"; import { ArchiveTabsList } from "@/components/archives"; -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues"; +import { DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues/issue-layouts/filters"; // helpers // hooks -import { useIssues, useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useMember } from "@/hooks/store/use-member" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state"; export const ArchivedIssuesHeader: FC = observer(() => { // router diff --git a/apps/web/core/components/issues/attachment/attachment-detail.tsx b/apps/web/core/components/issues/attachment/attachment-detail.tsx index c1ecf7ba1..99ce4c707 100644 --- a/apps/web/core/components/issues/attachment/attachment-detail.tsx +++ b/apps/web/core/components/issues/attachment/attachment-detail.tsx @@ -18,10 +18,11 @@ import { // import { getFileIcon } from "@/components/icons"; // components -import { IssueAttachmentDeleteModal } from "@/components/issues"; +import { IssueAttachmentDeleteModal } from "@/components/issues/attachment/delete-attachment-modal"; // helpers // hooks -import { useIssueDetail, useMember } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member"; import { usePlatformOS } from "@/hooks/use-platform-os"; // types import { TAttachmentHelpers } from "../issue-detail-widgets/attachments/helper"; diff --git a/apps/web/core/components/issues/attachment/attachment-item-list.tsx b/apps/web/core/components/issues/attachment/attachment-item-list.tsx index e5fdd2626..d10f9fa36 100644 --- a/apps/web/core/components/issues/attachment/attachment-item-list.tsx +++ b/apps/web/core/components/issues/attachment/attachment-item-list.tsx @@ -6,7 +6,7 @@ import { useTranslation } from "@plane/i18n"; import { EIssueServiceType, TIssueServiceType } from "@plane/types"; // hooks import { TOAST_TYPE, setToast } from "@plane/ui"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // plane web hooks import { useFileSize } from "@/plane-web/hooks/use-file-size"; // types diff --git a/apps/web/core/components/issues/attachment/attachment-list-item.tsx b/apps/web/core/components/issues/attachment/attachment-list-item.tsx index bdae008f4..8725c94d6 100644 --- a/apps/web/core/components/issues/attachment/attachment-list-item.tsx +++ b/apps/web/core/components/issues/attachment/attachment-list-item.tsx @@ -14,7 +14,8 @@ import { ButtonAvatars } from "@/components/dropdowns/member/avatar"; import { getFileIcon } from "@/components/icons"; // helpers // hooks -import { useIssueDetail, useMember } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member"; import { usePlatformOS } from "@/hooks/use-platform-os"; type TIssueAttachmentsListItem = { diff --git a/apps/web/core/components/issues/attachment/attachments-list.tsx b/apps/web/core/components/issues/attachment/attachments-list.tsx index a25ee2589..b4f74c691 100644 --- a/apps/web/core/components/issues/attachment/attachments-list.tsx +++ b/apps/web/core/components/issues/attachment/attachments-list.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import { TAttachmentHelpers } from "../issue-detail-widgets/attachments/helper"; // components diff --git a/apps/web/core/components/issues/attachment/delete-attachment-modal.tsx b/apps/web/core/components/issues/attachment/delete-attachment-modal.tsx index 838c26696..f06b83941 100644 --- a/apps/web/core/components/issues/attachment/delete-attachment-modal.tsx +++ b/apps/web/core/components/issues/attachment/delete-attachment-modal.tsx @@ -9,7 +9,7 @@ import { AlertModalCore } from "@plane/ui"; // helper import { getFileName } from "@plane/utils"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import { TAttachmentOperations } from "../issue-detail-widgets/attachments/helper"; diff --git a/apps/web/core/components/issues/attachment/index.ts b/apps/web/core/components/issues/attachment/index.ts index af20960a8..1efe34c51 100644 --- a/apps/web/core/components/issues/attachment/index.ts +++ b/apps/web/core/components/issues/attachment/index.ts @@ -1,9 +1 @@ -export * from "./attachment-detail"; -export * from "./attachment-item-list"; -export * from "./attachment-list-item"; -export * from "./attachment-list-upload-item"; -export * from "./attachment-upload-details"; -export * from "./attachment-upload"; -export * from "./attachments-list"; -export * from "./delete-attachment-modal"; export * from "./root"; diff --git a/apps/web/core/components/issues/bulk-operations/index.ts b/apps/web/core/components/issues/bulk-operations/index.ts deleted file mode 100644 index bad4f3677..000000000 --- a/apps/web/core/components/issues/bulk-operations/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./upgrade-banner"; diff --git a/apps/web/core/components/issues/create-issue-toast-action-items.tsx b/apps/web/core/components/issues/create-issue-toast-action-items.tsx index f0a19249e..c1b1913d7 100644 --- a/apps/web/core/components/issues/create-issue-toast-action-items.tsx +++ b/apps/web/core/components/issues/create-issue-toast-action-items.tsx @@ -5,7 +5,8 @@ import { copyUrlToClipboard, generateWorkItemLink } from "@plane/utils"; // plane imports // helpers // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useProject } from "@/hooks/store/use-project"; type TCreateIssueToastActionItems = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/delete-issue-modal.tsx b/apps/web/core/components/issues/delete-issue-modal.tsx index 8f7265a16..da75081dd 100644 --- a/apps/web/core/components/issues/delete-issue-modal.tsx +++ b/apps/web/core/components/issues/delete-issue-modal.tsx @@ -11,7 +11,9 @@ import { TDeDupeIssue, TIssue } from "@plane/types"; import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // constants // hooks -import { useIssues, useProject, useUser, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project" +import { useUser, useUserPermissions } from "@/hooks/store/user"; // plane-web type Props = { diff --git a/apps/web/core/components/issues/description-input.tsx b/apps/web/core/components/issues/description-input.tsx index 1e99de3aa..a8c6376d6 100644 --- a/apps/web/core/components/issues/description-input.tsx +++ b/apps/web/core/components/issues/description-input.tsx @@ -11,11 +11,12 @@ import { EFileAssetType, TIssue, TNameDescriptionLoader } from "@plane/types"; import { Loader } from "@plane/ui"; // components import { getDescriptionPlaceholderI18n } from "@plane/utils"; -import { RichTextEditor } from "@/components/editor"; +import { RichTextEditor } from "@/components/editor/rich-text"; import { TIssueOperations } from "@/components/issues/issue-detail"; // helpers // hooks -import { useEditorAsset, useWorkspace } from "@/hooks/store"; +import { useEditorAsset } from "@/hooks/store/use-editor-asset" +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane web services import { WorkspaceService } from "@/plane-web/services"; const workspaceService = new WorkspaceService(); diff --git a/apps/web/core/components/issues/filters.tsx b/apps/web/core/components/issues/filters.tsx index 12d99143a..db6debd10 100644 --- a/apps/web/core/components/issues/filters.tsx +++ b/apps/web/core/components/issues/filters.tsx @@ -2,6 +2,7 @@ import { useCallback, useState } from "react"; import { observer } from "mobx-react"; +import { ChartNoAxesColumn, ListFilter, SlidersHorizontal } from "lucide-react"; // plane constants import { EIssueFilterType, ISSUE_STORE_TO_FILTERS_MAP } from "@plane/constants"; // i18n @@ -17,21 +18,22 @@ import { import { Button } from "@plane/ui"; // components import { isIssueFilterActive } from "@plane/utils"; +// helpers +// hooks +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useMember } from "@/hooks/store/use-member" +import { useIssues } from "@/hooks/store/use-issues"; +// plane web types +import { TProject } from "@/plane-web/types"; +import { WorkItemsModal } from "../analytics/work-items/modal"; import { DisplayFiltersSelection, FiltersDropdown, FilterSelection, - IssueLayoutIcon, LayoutSelection, MobileLayoutSelection, -} from "@/components/issues"; -// helpers -// hooks -import { useLabel, useProjectState, useMember, useIssues } from "@/hooks/store"; -// plane web types -import { TProject } from "@/plane-web/types"; -import { WorkItemsModal } from "../analytics/work-items/modal"; -import { ChartNoAxesColumn, ChevronDown, ListFilter, SlidersHorizontal } from "lucide-react"; +} from "./issue-layouts/filters"; type Props = { currentProjectDetails: TProject | undefined; @@ -47,7 +49,8 @@ const LAYOUTS = [ EIssueLayoutTypes.SPREADSHEET, EIssueLayoutTypes.GANTT, ]; -const HeaderFilters = observer((props: Props) => { + +export const HeaderFilters = observer((props: Props) => { const { currentProjectDetails, projectId, @@ -193,5 +196,3 @@ const HeaderFilters = observer((props: Props) => { ); }); - -export default HeaderFilters; diff --git a/apps/web/core/components/issues/index.ts b/apps/web/core/components/issues/index.ts deleted file mode 100644 index 483d53da9..000000000 --- a/apps/web/core/components/issues/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -export * from "./attachment"; -export * from "./bulk-operations"; -export * from "./issue-modal"; -export * from "./delete-issue-modal"; -export * from "./issue-layouts"; -export * from "./description-input"; -export * from "./title-input"; -export * from "./parent-issues-list-modal"; -export * from "./label"; -export * from "./confirm-issue-discard"; -export * from "./issue-update-status"; -export * from "./create-issue-toast-action-items"; -export * from "./relations"; -export * from "./issue-detail-widgets"; - -// issue details -export * from "./issue-detail"; - -export * from "./peek-overview"; - -// archived issue -export * from "./archive-issue-modal"; -export * from "./archived-issues-header"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/action-buttons.tsx b/apps/web/core/components/issues/issue-detail-widgets/action-buttons.tsx index 27b6b4265..090701f32 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/action-buttons.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/action-buttons.tsx @@ -5,16 +5,14 @@ import { Layers, Link, Paperclip, Waypoints } from "lucide-react"; // plane imports import { useTranslation } from "@plane/i18n"; import { TIssueServiceType, TWorkItemWidgets } from "@plane/types"; -// components -import { - IssueAttachmentActionButton, - IssueLinksActionButton, - RelationActionButton, - SubIssuesActionButton, - IssueDetailWidgetButton, -} from "@/components/issues/issue-detail-widgets"; // plane web imports import { WorkItemAdditionalWidgetActionButtons } from "@/plane-web/components/issues/issue-detail-widgets/action-buttons"; +// local imports +import { IssueAttachmentActionButton } from "./attachments"; +import { IssueLinksActionButton } from "./links"; +import { RelationActionButton } from "./relations"; +import { SubIssuesActionButton } from "./sub-issues"; +import { IssueDetailWidgetButton } from "./widget-button"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/attachments/content.tsx b/apps/web/core/components/issues/issue-detail-widgets/attachments/content.tsx index 1a3169104..b62de354b 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/attachments/content.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/attachments/content.tsx @@ -2,9 +2,8 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; import { EIssueServiceType, TIssueServiceType } from "@plane/types"; -// components -import { IssueAttachmentItemList } from "@/components/issues/attachment"; -// helper +// local imports +import { IssueAttachmentItemList } from "../../attachment/attachment-item-list"; import { useAttachmentOperations } from "./helper"; type Props = { diff --git a/apps/web/core/components/issues/issue-detail-widgets/attachments/helper.tsx b/apps/web/core/components/issues/issue-detail-widgets/attachments/helper.tsx index 1a2d35f5e..29fc7f0b6 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/attachments/helper.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/attachments/helper.tsx @@ -6,7 +6,7 @@ import { EIssueServiceType, TIssueServiceType } from "@plane/types"; import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import { TAttachmentUploadStatus } from "@/store/issue/issue-details/attachment.store"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/attachments/quick-action-button.tsx b/apps/web/core/components/issues/issue-detail-widgets/attachments/quick-action-button.tsx index 273987574..9d308defb 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/attachments/quick-action-button.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/attachments/quick-action-button.tsx @@ -8,7 +8,7 @@ import { Plus } from "lucide-react"; import { TIssueServiceType } from "@plane/types"; import { TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // plane web hooks import { useFileSize } from "@/plane-web/hooks/use-file-size"; // local imports diff --git a/apps/web/core/components/issues/issue-detail-widgets/attachments/root.tsx b/apps/web/core/components/issues/issue-detail-widgets/attachments/root.tsx index 509b21114..22a79a29c 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/attachments/root.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/attachments/root.tsx @@ -4,13 +4,11 @@ import { observer } from "mobx-react"; // plane imports import { TIssueServiceType } from "@plane/types"; import { Collapsible } from "@plane/ui"; -// components -import { - IssueAttachmentsCollapsibleContent, - IssueAttachmentsCollapsibleTitle, -} from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +// local imports +import { IssueAttachmentsCollapsibleContent } from "./content"; +import { IssueAttachmentsCollapsibleTitle } from "./title"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/attachments/title.tsx b/apps/web/core/components/issues/issue-detail-widgets/attachments/title.tsx index 4eb61fabd..ef436f25d 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/attachments/title.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/attachments/title.tsx @@ -4,10 +4,10 @@ import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; import { EIssueServiceType, TIssueServiceType } from "@plane/types"; import { CollapsibleButton } from "@plane/ui"; -// components -import { IssueAttachmentActionButton } from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +// local imports +import { IssueAttachmentActionButton } from "./quick-action-button"; type Props = { isOpen: boolean; diff --git a/apps/web/core/components/issues/issue-detail-widgets/index.ts b/apps/web/core/components/issues/issue-detail-widgets/index.ts index a3559aec8..1efe34c51 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/index.ts +++ b/apps/web/core/components/issues/issue-detail-widgets/index.ts @@ -1,9 +1 @@ -export * from "./attachments"; -export * from "./links"; -export * from "./relations"; export * from "./root"; -export * from "./sub-issues"; -export * from "./widget-button"; -export * from "./issue-detail-widget-collapsibles"; -export * from "./action-buttons"; -export * from "./issue-detail-widget-modals"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx b/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx index ec3302d61..f9fb24372 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-collapsibles.tsx @@ -3,18 +3,16 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; // plane imports import { TIssueServiceType, TWorkItemWidgets } from "@plane/types"; -// components -import { - AttachmentsCollapsible, - LinksCollapsible, - RelationsCollapsible, - SubIssuesCollapsible, -} from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // Plane-web import { WorkItemAdditionalWidgetCollapsibles } from "@/plane-web/components/issues/issue-detail-widgets/collapsibles"; import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; +// local imports +import { AttachmentsCollapsible } from "./attachments"; +import { LinksCollapsible } from "./links"; +import { RelationsCollapsible } from "./relations"; +import { SubIssuesCollapsible } from "./sub-issues"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-modals.tsx b/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-modals.tsx index d79879872..31b21e45f 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-modals.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/issue-detail-widget-modals.tsx @@ -3,15 +3,15 @@ import { observer } from "mobx-react"; import { ISearchIssueResponse, TIssue, TIssueServiceType, TWorkItemWidgets } from "@plane/types"; import { setToast, TOAST_TYPE } from "@plane/ui"; // components -import { ExistingIssuesListModal } from "@/components/core"; -import { CreateUpdateIssueModal } from "@/components/issues/issue-modal"; +import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // plane web imports import { WorkItemAdditionalWidgetModals } from "@/plane-web/components/issues/issue-detail-widgets/modals"; // local imports import { IssueLinkCreateUpdateModal } from "../issue-detail/links/create-update-link-modal"; // helpers +import { CreateUpdateIssueModal } from "../issue-modal/modal"; import { useLinkOperations } from "./links/helper"; import { useSubIssueOperations } from "./sub-issues/helper"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/links/helper.tsx b/apps/web/core/components/issues/issue-detail-widgets/links/helper.tsx index ad849eb3a..76bbb5c2b 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/links/helper.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/links/helper.tsx @@ -5,7 +5,7 @@ import { useTranslation } from "@plane/i18n"; import { TIssueLink, TIssueServiceType } from "@plane/types"; import { TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // local imports import { TLinkOperations } from "../../issue-detail/links"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/links/quick-action-button.tsx b/apps/web/core/components/issues/issue-detail-widgets/links/quick-action-button.tsx index 89d33729a..25ffc02ad 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/links/quick-action-button.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/links/quick-action-button.tsx @@ -5,7 +5,7 @@ import { Plus } from "lucide-react"; // plane imports import { TIssueServiceType } from "@plane/types"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; type Props = { customButton?: React.ReactNode; diff --git a/apps/web/core/components/issues/issue-detail-widgets/links/root.tsx b/apps/web/core/components/issues/issue-detail-widgets/links/root.tsx index 47007ecd2..3cd211a04 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/links/root.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/links/root.tsx @@ -4,10 +4,11 @@ import { observer } from "mobx-react"; // plane imports import { TIssueServiceType } from "@plane/types"; import { Collapsible } from "@plane/ui"; -// components -import { IssueLinksCollapsibleContent, IssueLinksCollapsibleTitle } from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +// local imports +import { IssueLinksCollapsibleContent } from "./content"; +import { IssueLinksCollapsibleTitle } from "./title"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/links/title.tsx b/apps/web/core/components/issues/issue-detail-widgets/links/title.tsx index 8307ab46d..e1aa75b43 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/links/title.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/links/title.tsx @@ -5,10 +5,10 @@ import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; import { TIssueServiceType } from "@plane/types"; import { CollapsibleButton } from "@plane/ui"; -// components -import { IssueLinksActionButton } from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +// local imports +import { IssueLinksActionButton } from "./quick-action-button"; type Props = { isOpen: boolean; diff --git a/apps/web/core/components/issues/issue-detail-widgets/relations/content.tsx b/apps/web/core/components/issues/issue-detail-widgets/relations/content.tsx index 08d694a34..7ace014ca 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/relations/content.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/relations/content.tsx @@ -6,16 +6,16 @@ import { useTranslation } from "@plane/i18n"; import { EIssueServiceType, TIssue, TIssueServiceType } from "@plane/types"; import { Collapsible } from "@plane/ui"; // components -import { RelationIssueList } from "@/components/issues"; -import { DeleteIssueModal } from "@/components/issues/delete-issue-modal"; -import { CreateUpdateIssueModal } from "@/components/issues/issue-modal"; +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // Plane-web import { CreateUpdateEpicModal } from "@/plane-web/components/epics"; import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; import { TIssueRelationTypes } from "@/plane-web/types"; // helper +import { DeleteIssueModal } from "../../delete-issue-modal"; +import { RelationIssueList } from "../../relations/issue-list"; import { useRelationOperations } from "./helper"; type Props = { diff --git a/apps/web/core/components/issues/issue-detail-widgets/relations/helper.tsx b/apps/web/core/components/issues/issue-detail-widgets/relations/helper.tsx index 1073b2063..91ed4bb66 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/relations/helper.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/relations/helper.tsx @@ -8,7 +8,7 @@ import { TOAST_TYPE, setToast } from "@plane/ui"; import { copyUrlToClipboard } from "@plane/utils"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; export type TRelationIssueOperations = { copyLink: (path: string) => void; diff --git a/apps/web/core/components/issues/issue-detail-widgets/relations/quick-action-button.tsx b/apps/web/core/components/issues/issue-detail-widgets/relations/quick-action-button.tsx index b03c1b323..18a3d1cdc 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/relations/quick-action-button.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/relations/quick-action-button.tsx @@ -7,7 +7,7 @@ import { useTranslation } from "@plane/i18n"; import { TIssueServiceType } from "@plane/types"; import { CustomMenu } from "@plane/ui"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // Plane-web import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; import { TIssueRelationTypes } from "@/plane-web/types"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/relations/root.tsx b/apps/web/core/components/issues/issue-detail-widgets/relations/root.tsx index d40c6d464..576e1e8f7 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/relations/root.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/relations/root.tsx @@ -4,10 +4,11 @@ import { observer } from "mobx-react"; // plane imports import { TIssueServiceType } from "@plane/types"; import { Collapsible } from "@plane/ui"; -// components -import { RelationsCollapsibleContent, RelationsCollapsibleTitle } from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +// local imports +import { RelationsCollapsibleContent } from "./content"; +import { RelationsCollapsibleTitle } from "./title"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/relations/title.tsx b/apps/web/core/components/issues/issue-detail-widgets/relations/title.tsx index 32b9318eb..3f6365e6b 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/relations/title.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/relations/title.tsx @@ -4,12 +4,12 @@ import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; import { EIssueServiceType, TIssueServiceType } from "@plane/types"; import { CollapsibleButton } from "@plane/ui"; -// components -import { RelationActionButton } from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // Plane-web import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; +// local imports +import { RelationActionButton } from "./quick-action-button"; type Props = { isOpen: boolean; diff --git a/apps/web/core/components/issues/issue-detail-widgets/root.tsx b/apps/web/core/components/issues/issue-detail-widgets/root.tsx index ef8b8c285..4f4473088 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/root.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/root.tsx @@ -3,12 +3,10 @@ import React, { FC } from "react"; // plane imports import { TIssueServiceType, TWorkItemWidgets } from "@plane/types"; -// components -import { - IssueDetailWidgetActionButtons, - IssueDetailWidgetCollapsibles, - IssueDetailWidgetModals, -} from "@/components/issues/issue-detail-widgets"; +// local imports +import { IssueDetailWidgetActionButtons } from "./action-buttons"; +import { IssueDetailWidgetCollapsibles } from "./issue-detail-widget-collapsibles"; +import { IssueDetailWidgetModals } from "./issue-detail-widget-modals"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/content.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/content.tsx index 00abc3799..d98e80f3f 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/content.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/content.tsx @@ -4,10 +4,10 @@ import { observer } from "mobx-react"; import { EIssueServiceType, EIssuesStoreType, TIssue, TIssueServiceType } from "@plane/types"; // components import { DeleteIssueModal } from "@/components/issues/delete-issue-modal"; -import { CreateUpdateIssueModal } from "@/components/issues/issue-modal"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // local imports +import { CreateUpdateIssueModal } from "../../issue-modal/modal"; import { useSubIssueOperations } from "./helper"; import { SubIssuesListRoot } from "./issues-list/root"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/display-filters.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/display-filters.tsx index 46d1f8d22..dfb246d54 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/display-filters.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/display-filters.tsx @@ -2,9 +2,16 @@ import { FC, useMemo } from "react"; import isEmpty from "lodash/isEmpty"; import { observer } from "mobx-react"; import { SlidersHorizontal } from "lucide-react"; +// plane imports import { IIssueDisplayFilterOptions, ILayoutDisplayFiltersOptions, IIssueDisplayProperties } from "@plane/types"; import { cn } from "@plane/utils"; -import { FilterDisplayProperties, FilterGroupBy, FilterOrderBy, FiltersDropdown } from "@/components/issues"; +// components +import { + FilterDisplayProperties, + FilterGroupBy, + FilterOrderBy, + FiltersDropdown, +} from "@/components/issues/issue-layouts/filters"; import { isDisplayFiltersApplied } from "@/components/issues/issue-layouts/utils"; type TSubIssueDisplayFiltersProps = { diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/filters.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/filters.tsx index 8ae6195ea..bf76004f9 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/filters.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/filters.tsx @@ -13,7 +13,7 @@ import { FilterStartDate, FilterState, FilterStateGroup, -} from "@/components/issues"; +} from "@/components/issues/issue-layouts/filters"; import { isFiltersApplied } from "@/components/issues/issue-layouts/utils"; import { FilterIssueTypes } from "@/plane-web/components/issues/filters/issue-types"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/helper.ts b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/helper.ts index 79b362fb7..3707cc276 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/helper.ts +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/helper.ts @@ -10,7 +10,8 @@ import { TOAST_TYPE, setToast } from "@plane/ui"; import { copyUrlToClipboard } from "@plane/utils"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useIssueDetail, useProjectState } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useProjectState } from "@/hooks/store/use-project-state"; // plane web helpers import { updateEpicAnalytics } from "@/plane-web/helpers/epic-analytics"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/list-item.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/list-item.tsx index 62e59eb26..1740d86be 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/list-item.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/list-item.tsx @@ -11,11 +11,12 @@ import { cn, generateWorkItemLink } from "@plane/utils"; import { useSubIssueOperations } from "@/components/issues/issue-detail-widgets/sub-issues/helper"; import { WithDisplayPropertiesHOC } from "@/components/issues/issue-layouts/properties/with-display-properties-HOC"; // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; import useIssuePeekOverviewRedirection from "@/hooks/use-issue-peek-overview-redirection"; 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"; // local components import { SubIssuesListItemProperties } from "./properties"; import { SubIssuesListRoot } from "./root"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/properties.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/properties.tsx index 92a8bc0d6..a9436cc61 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/properties.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/properties.tsx @@ -6,13 +6,11 @@ import { useTranslation } from "@plane/i18n"; import { IIssueDisplayProperties, TIssue } from "@plane/types"; import { getDate, renderFormattedPayloadDate, shouldHighlightIssueDueDate } from "@plane/utils"; // components -import { - PriorityDropdown, - MemberDropdown, - StateDropdown, - DateRangeDropdown, - DateDropdown, -} from "@/components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns/date"; +import { DateRangeDropdown } from "@/components/dropdowns/date-range"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; // hooks import { WithDisplayPropertiesHOC } from "@/components/issues/issue-layouts/properties/with-display-properties-HOC"; import { useProjectState } from "@/hooks/store/use-project-state"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx index 7b55d37ef..2d1fa603f 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/issues-list/root.tsx @@ -13,9 +13,9 @@ import { } from "@plane/types"; // hooks import { Button } from "@plane/ui"; -import { SectionEmptyState } from "@/components/empty-state"; +import { SectionEmptyState } from "@/components/empty-state/section-empty-state-root"; import { getGroupByColumns, isWorkspaceLevel } from "@/components/issues/issue-layouts/utils"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { SubIssuesListGroup } from "./list-group"; type Props = { diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx index ae1bc8742..454752445 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/quick-action-button.tsx @@ -9,7 +9,7 @@ import { TIssue, TIssueServiceType } from "@plane/types"; import { CustomMenu } from "@plane/ui"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; type Props = { issueId: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/root.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/root.tsx index a48d2ef5c..738414e80 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/root.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/root.tsx @@ -4,10 +4,11 @@ import { observer } from "mobx-react"; // plane imports import { TIssueServiceType } from "@plane/types"; import { Collapsible } from "@plane/ui"; -// components -import { SubIssuesCollapsibleContent, SubIssuesCollapsibleTitle } from "@/components/issues/issue-detail-widgets"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +// local imports +import { SubIssuesCollapsibleContent } from "./content"; +import { SubIssuesCollapsibleTitle } from "./title"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title-actions.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title-actions.tsx index b01dac11e..1674ea98a 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title-actions.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title-actions.tsx @@ -9,7 +9,9 @@ import { IIssueFilterOptions, TIssueServiceType, } from "@plane/types"; -import { useIssueDetail, useMember, useProjectState } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member" +import { useProjectState } from "@/hooks/store/use-project-state"; import { SubIssueDisplayFilters } from "./display-filters"; import { SubIssueFilters } from "./filters"; import { SubIssuesActionButton } from "./quick-action-button"; diff --git a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title.tsx b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title.tsx index c38a398cb..56a29d525 100644 --- a/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title.tsx +++ b/apps/web/core/components/issues/issue-detail-widgets/sub-issues/title.tsx @@ -7,7 +7,7 @@ import { useTranslation } from "@plane/i18n"; import { EIssueServiceType, TIssueServiceType } from "@plane/types"; import { CircularProgressIndicator, CollapsibleButton } from "@plane/ui"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { SubWorkItemTitleActions } from "./title-actions"; type Props = { diff --git a/apps/web/core/components/issues/issue-detail/cycle-select.tsx b/apps/web/core/components/issues/issue-detail/cycle-select.tsx index cbf7493a8..7c7f27da0 100644 --- a/apps/web/core/components/issues/issue-detail/cycle-select.tsx +++ b/apps/web/core/components/issues/issue-detail/cycle-select.tsx @@ -4,10 +4,10 @@ import { useTranslation } from "@plane/i18n"; // hooks // components import { cn } from "@plane/utils"; -import { CycleDropdown } from "@/components/dropdowns"; +import { CycleDropdown } from "@/components/dropdowns/cycle"; // ui // helpers -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import type { TIssueOperations } from "./root"; diff --git a/apps/web/core/components/issues/issue-detail/index.ts b/apps/web/core/components/issues/issue-detail/index.ts index 7b8590043..1efe34c51 100644 --- a/apps/web/core/components/issues/issue-detail/index.ts +++ b/apps/web/core/components/issues/issue-detail/index.ts @@ -1,14 +1 @@ -export * from "./issue-activity"; -export * from "./label"; -export * from "./links"; -export * from "./parent"; -export * from "./reactions"; -export * from "./cycle-select"; -export * from "./main-content"; -export * from "./module-select"; -export * from "./parent-select"; -export * from "./relation-select"; export * from "./root"; -export * from "./sidebar"; -export * from "./subscription"; -export * from "./issue-detail-quick-actions"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity-comment-root.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity-comment-root.tsx index 5b0d073a1..eec5db1a8 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity-comment-root.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity-comment-root.tsx @@ -6,9 +6,9 @@ import { TCommentsOperations } from "@plane/types"; // components import { CommentCard } from "@/components/comments/card/root"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // plane web components -import { IssueAdditionalPropertiesActivity } from "@/plane-web/components/issues"; +import { IssueAdditionalPropertiesActivity } from "@/plane-web/components/issues/issue-details/issue-properties-activity"; import { IssueActivityWorklog } from "@/plane-web/components/issues/worklog/activity/root"; // local imports import { IssueActivityItem } from "./activity/activity-list"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx index f05f5b98d..22e18556e 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/archived-at.tsx @@ -5,7 +5,7 @@ import { observer } from "mobx-react"; import { RotateCcw } from "lucide-react"; // hooks import { ArchiveIcon } from "@plane/ui"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent } from "./"; // ui diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx index 97f605815..e69837104 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/assignee.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // icons import { Users } from "lucide-react"; // hooks; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx index 3ba87df9c..e210d75f4 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/attachment.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Paperclip } from "lucide-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx index f763c3bcc..f24c9056b 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/cycle.tsx @@ -4,7 +4,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { ContrastIcon } from "@plane/ui"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent } from "./"; // icons diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/default.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/default.tsx index 3d2270750..7ef63f96e 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/default.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/default.tsx @@ -7,7 +7,7 @@ import { EInboxIssueSource } from "@plane/types"; import { LayersIcon } from "@plane/ui"; // hooks import { capitalizeFirstLetter } from "@plane/utils"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // local imports import { IssueActivityBlockComponent } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/description.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/description.tsx index b80d9470d..4f39767fc 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/description.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/description.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { MessageSquare } from "lucide-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx index f324cb83e..a97b4eb40 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/estimate.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Triangle } from "lucide-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx index 663d2aa2c..8d84489e9 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/activity-block.tsx @@ -2,16 +2,15 @@ import { FC, ReactNode } from "react"; import { Network } from "lucide-react"; -// hooks +// plane imports import { Tooltip } from "@plane/ui"; import { renderFormattedTime, renderFormattedDate, calculateTimeAgo } from "@plane/utils"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { usePlatformOS } from "@/hooks/use-platform-os"; -// ui -// components -import { IssueCreatorDisplay } from "@/plane-web/components/issues"; +// plane web imports +import { IssueCreatorDisplay } from "@/plane-web/components/issues/issue-details/issue-creator"; +// local imports import { IssueUser } from "../"; -// helpers type TIssueActivityBlockComponent = { icon?: ReactNode; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx index 80451cb02..5535b1bfa 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-link.tsx @@ -4,7 +4,7 @@ import { FC } from "react"; // hooks import { Tooltip } from "@plane/ui"; import { generateWorkItemLink } from "@plane/utils"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { usePlatformOS } from "@/hooks/use-platform-os"; // ui diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-user.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-user.tsx index 50b8db1ab..7d8e64236 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-user.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/helpers/issue-user.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import Link from "next/link"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; type TIssueUser = { activityId: string; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/inbox.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/inbox.tsx index f949f5859..5f3012c0e 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/inbox.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/inbox.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { Intake } from "@plane/ui"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent } from "./"; // icons diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/label.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/label.tsx index bd0e49c3b..ec66349b4 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/label.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/label.tsx @@ -2,7 +2,8 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Tag } from "lucide-react"; // hooks -import { useIssueDetail, useLabel } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useLabel } from "@/hooks/store/use-label"; // components import { IssueActivityBlockComponent, IssueLink, LabelActivityChip } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/link.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/link.tsx index 9e1304389..596d1a404 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/link.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/link.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { MessageSquare } from "lucide-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/module.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/module.tsx index 88a8c35a4..e59b52b09 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/module.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/module.tsx @@ -4,7 +4,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { DiceIcon } from "@plane/ui"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent } from "./"; // icons diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/name.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/name.tsx index ac8d454cf..99df9d2bb 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/name.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/name.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { MessageSquare } from "lucide-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/parent.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/parent.tsx index 2a3256c62..a4ea65439 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/parent.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/parent.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { LayoutPanelTop } from "lucide-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/priority.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/priority.tsx index 8669cfe83..bb605e522 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/priority.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/priority.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Signal } from "lucide-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx index d1ceb8f88..534d0dbb3 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/relation.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // Plane-web import { getRelationActivityContent, useTimeLineRelationOptions } from "@/plane-web/components/relations"; import { TIssueRelationTypes } from "@/plane-web/types"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/start_date.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/start_date.tsx index a55071bf9..e89ffa333 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/start_date.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/start_date.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { CalendarDays } from "lucide-react"; // hooks import { renderFormattedDate } from "@plane/utils"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; // helpers diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/state.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/state.tsx index d5c3e8d58..b441304ee 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/state.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/state.tsx @@ -4,7 +4,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // hooks import { DoubleCircleIcon } from "@plane/ui"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; // icons diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/target_date.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/target_date.tsx index 12457d59d..d1efd7aa6 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/target_date.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/actions/target_date.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { CalendarDays } from "lucide-react"; // hooks import { renderFormattedDate } from "@plane/utils"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // components import { IssueActivityBlockComponent, IssueLink } from "./"; // helpers diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/activity/activity-list.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/activity/activity-list.tsx index 32c49915c..a2050a20a 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/activity/activity-list.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/activity/activity-list.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // helpers import { getValidKeysFromObject } from "@plane/utils"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // plane web components import { IssueTypeActivity, AdditionalActivityRoot } from "@/plane-web/components/issues/issue-details"; import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/helper.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/helper.tsx index 884c2325e..25c175f7e 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/helper.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/helper.tsx @@ -3,7 +3,11 @@ import { useTranslation } from "@plane/i18n"; import { EFileAssetType, type TCommentsOperations } from "@plane/types"; import { setToast, TOAST_TYPE } from "@plane/ui"; import { copyUrlToClipboard, formatTextList, generateWorkItemLink } from "@plane/utils"; -import { useEditorAsset, useIssueDetail, useMember, useProject, useUser } from "@/hooks/store"; +import { useEditorAsset } from "@/hooks/store/use-editor-asset" +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member" +import { useProject } from "@/hooks/store/use-project" +import { useUser } from "@/hooks/store/user"; export const useCommentOperations = ( workspaceSlug: string | undefined, diff --git a/apps/web/core/components/issues/issue-detail/issue-activity/root.tsx b/apps/web/core/components/issues/issue-detail/issue-activity/root.tsx index 463192d6c..a07a9dbad 100644 --- a/apps/web/core/components/issues/issue-detail/issue-activity/root.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-activity/root.tsx @@ -11,13 +11,16 @@ import { useTranslation } from "@plane/i18n"; import { TFileSignedURLResponse, TIssueComment } from "@plane/types"; // components import { CommentCreate } from "@/components/comments/comment-create"; -import { ActivitySortRoot, IssueActivityCommentRoot } from "@/components/issues/issue-detail"; -// constants // hooks -import { useIssueDetail, useProject, useUser, useUserPermissions } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; +import { useUser, useUserPermissions } from "@/hooks/store/user"; // plane web components -import { ActivityFilterRoot, IssueActivityWorklogCreateButton } from "@/plane-web/components/issues/worklog"; +import { ActivityFilterRoot } from "@/plane-web/components/issues/worklog/activity/filter-root"; +import { IssueActivityWorklogCreateButton } from "@/plane-web/components/issues/worklog/activity/worklog-create-button"; +import { IssueActivityCommentRoot } from "./activity-comment-root"; import { useCommentOperations } from "./helper"; +import { ActivitySortRoot } from "./sort-root"; type TIssueActivity = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx b/apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx index 242c1399d..50a6e6639 100644 --- a/apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx +++ b/apps/web/core/components/issues/issue-detail/issue-detail-quick-actions.tsx @@ -3,20 +3,24 @@ import React, { FC, useRef } from "react"; import { observer } from "mobx-react"; import { LinkIcon } from "lucide-react"; +// plane imports import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType } from "@plane/types"; import { TOAST_TYPE, Tooltip, setToast } from "@plane/ui"; import { generateWorkItemLink, copyTextToClipboard } from "@plane/utils"; -// components -import { IssueSubscription } from "@/components/issues"; // helpers -// hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useIssueDetail, useIssues, useProject, useUser } from "@/hooks/store"; +// hooks +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project" +import { useUser } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// local imports import { WorkItemDetailQuickActions } from "../issue-layouts/quick-action-dropdowns"; +import { IssueSubscription } from "./subscription"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx b/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx index 15c00845e..4d99eb2ed 100644 --- a/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx +++ b/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx @@ -2,7 +2,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { X } from "lucide-react"; // types -import { useLabel } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label"; import { TLabelOperations } from "./root"; type TLabelListItem = { diff --git a/apps/web/core/components/issues/issue-detail/label/root.tsx b/apps/web/core/components/issues/issue-detail/label/root.tsx index 89670dbb3..c3d308f91 100644 --- a/apps/web/core/components/issues/issue-detail/label/root.tsx +++ b/apps/web/core/components/issues/issue-detail/label/root.tsx @@ -7,7 +7,9 @@ import { EIssueServiceType, IIssueLabel, TIssue, TIssueServiceType } from "@plan // components import { TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useIssueDetail, useLabel, useProjectInbox } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useLabel } from "@/hooks/store/use-label" +import { useProjectInbox } from "@/hooks/store/use-project-inbox"; // ui // types import { LabelList, IssueLabelSelectRoot } from "./"; diff --git a/apps/web/core/components/issues/issue-detail/label/select/label-select.tsx b/apps/web/core/components/issues/issue-detail/label/select/label-select.tsx index a2ad09307..ca05df111 100644 --- a/apps/web/core/components/issues/issue-detail/label/select/label-select.tsx +++ b/apps/web/core/components/issues/issue-detail/label/select/label-select.tsx @@ -10,7 +10,8 @@ import { EUserProjectRoles, IIssueLabel } from "@plane/types"; // helpers import { getTabIndex } from "@plane/utils"; // hooks -import { useLabel, useUserPermissions } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useUserPermissions } from "@/hooks/store/user"; import { usePlatformOS } from "@/hooks/use-platform-os"; //constants export interface IIssueLabelSelect { diff --git a/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx b/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx index f2c62919f..eede4642f 100644 --- a/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx +++ b/apps/web/core/components/issues/issue-detail/links/create-update-link-modal.tsx @@ -9,7 +9,7 @@ import type { TIssueLinkEditableFields, TIssueServiceType } from "@plane/types"; // plane ui import { Button, Input, ModalCore } from "@plane/ui"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import { TLinkOperations } from "./root"; diff --git a/apps/web/core/components/issues/issue-detail/links/link-detail.tsx b/apps/web/core/components/issues/issue-detail/links/link-detail.tsx index 9a24ce5b1..94c350ded 100644 --- a/apps/web/core/components/issues/issue-detail/links/link-detail.tsx +++ b/apps/web/core/components/issues/issue-detail/links/link-detail.tsx @@ -10,7 +10,8 @@ import { getIconForLink, copyTextToClipboard, calculateTimeAgo } from "@plane/ut // types // helpers // -import { useIssueDetail, useMember } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { TLinkOperationsModal } from "./create-update-link-modal"; diff --git a/apps/web/core/components/issues/issue-detail/links/link-item.tsx b/apps/web/core/components/issues/issue-detail/links/link-item.tsx index 107c6ef43..cf3ea8b77 100644 --- a/apps/web/core/components/issues/issue-detail/links/link-item.tsx +++ b/apps/web/core/components/issues/issue-detail/links/link-item.tsx @@ -10,7 +10,7 @@ import { Tooltip, TOAST_TYPE, setToast, CustomMenu } from "@plane/ui"; import { calculateTimeAgo, copyTextToClipboard } from "@plane/utils"; // helpers // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { TLinkOperationsModal } from "./create-update-link-modal"; diff --git a/apps/web/core/components/issues/issue-detail/links/link-list.tsx b/apps/web/core/components/issues/issue-detail/links/link-list.tsx index 01c757074..200f1c38c 100644 --- a/apps/web/core/components/issues/issue-detail/links/link-list.tsx +++ b/apps/web/core/components/issues/issue-detail/links/link-list.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // plane imports import { TIssueServiceType } from "@plane/types"; // computed -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // local imports import { IssueLinkItem } from "./link-item"; import { TLinkOperations } from "./root"; diff --git a/apps/web/core/components/issues/issue-detail/links/links.tsx b/apps/web/core/components/issues/issue-detail/links/links.tsx index 856d1ec4b..36a41de2f 100644 --- a/apps/web/core/components/issues/issue-detail/links/links.tsx +++ b/apps/web/core/components/issues/issue-detail/links/links.tsx @@ -1,7 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; // computed -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { IssueLinkDetail } from "./link-detail"; // hooks import { TLinkOperations } from "./root"; diff --git a/apps/web/core/components/issues/issue-detail/links/root.tsx b/apps/web/core/components/issues/issue-detail/links/root.tsx index 4512eb30b..6087f4c3b 100644 --- a/apps/web/core/components/issues/issue-detail/links/root.tsx +++ b/apps/web/core/components/issues/issue-detail/links/root.tsx @@ -6,7 +6,7 @@ import { Plus } from "lucide-react"; import { EIssueServiceType, TIssueLink } from "@plane/types"; import { TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // local imports import { IssueLinkCreateUpdateModal } from "./create-update-link-modal"; import { IssueLinkList } from "./links"; diff --git a/apps/web/core/components/issues/issue-detail/main-content.tsx b/apps/web/core/components/issues/issue-detail/main-content.tsx index 29a22c9c4..5cd7438de 100644 --- a/apps/web/core/components/issues/issue-detail/main-content.tsx +++ b/apps/web/core/components/issues/issue-detail/main-content.tsx @@ -3,33 +3,33 @@ import { useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; // plane imports -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; import { EIssueServiceType, TNameDescriptionLoader } from "@plane/types"; -// components import { getTextContent } from "@plane/utils"; +// components import { DescriptionVersionsRoot } from "@/components/core/description-versions"; -import { - IssueActivity, - NameDescriptionUpdateStatus, - IssueReaction, - IssueParentDetail, - IssueTitleInput, - IssueDescriptionInput, - IssueDetailWidgets, - PeekOverviewProperties, -} from "@/components/issues"; -// helpers // hooks -import { useIssueDetail, useMember, useProject, useUser } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useMember } from "@/hooks/store/use-member"; +import { useProject } from "@/hooks/store/use-project"; +import { useUser } from "@/hooks/store/user"; import useReloadConfirmations from "@/hooks/use-reload-confirmation"; import useSize from "@/hooks/use-window-size"; // plane web components import { DeDupeIssuePopoverRoot } from "@/plane-web/components/de-dupe"; -import { IssueTypeSwitcher } from "@/plane-web/components/issues"; +import { IssueTypeSwitcher } from "@/plane-web/components/issues/issue-details/issue-type-switcher"; import { useDebouncedDuplicateIssues } from "@/plane-web/hooks/use-debounced-duplicate-issues"; // services import { WorkItemVersionService } from "@/services/issue"; // local imports +import { IssueDescriptionInput } from "../description-input"; +import { IssueDetailWidgets } from "../issue-detail-widgets"; +import { NameDescriptionUpdateStatus } from "../issue-update-status"; +import { PeekOverviewProperties } from "../peek-overview/properties"; +import { IssueTitleInput } from "../title-input"; +import { IssueActivity } from "./issue-activity"; +import { IssueParentDetail } from "./parent"; +import { IssueReaction } from "./reactions"; import { TIssueOperations } from "./root"; // services init const workItemVersionService = new WorkItemVersionService(); diff --git a/apps/web/core/components/issues/issue-detail/module-select.tsx b/apps/web/core/components/issues/issue-detail/module-select.tsx index 41b802795..a038e0bf4 100644 --- a/apps/web/core/components/issues/issue-detail/module-select.tsx +++ b/apps/web/core/components/issues/issue-detail/module-select.tsx @@ -5,10 +5,10 @@ import { useTranslation } from "@plane/i18n"; // hooks // components import { cn } from "@plane/utils"; -import { ModuleDropdown } from "@/components/dropdowns"; +import { ModuleDropdown } from "@/components/dropdowns/module/dropdown"; // ui // helpers -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import type { TIssueOperations } from "./root"; diff --git a/apps/web/core/components/issues/issue-detail/parent-select.tsx b/apps/web/core/components/issues/issue-detail/parent-select.tsx index 9b2d544a9..31e0f001b 100644 --- a/apps/web/core/components/issues/issue-detail/parent-select.tsx +++ b/apps/web/core/components/issues/issue-detail/parent-select.tsx @@ -4,19 +4,18 @@ import React from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { Pencil, X } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; -// ui import { Tooltip } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { ParentIssuesListModal } from "@/components/issues"; -// helpers // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web components -import { IssueIdentifier } from "@/plane-web/components/issues"; -// types +import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; +// local imports +import { ParentIssuesListModal } from "../parent-issues-list-modal"; type TIssueParentSelect = { className?: string; diff --git a/apps/web/core/components/issues/issue-detail/parent/root.tsx b/apps/web/core/components/issues/issue-detail/parent/root.tsx index 0682d4b54..4c48a1407 100644 --- a/apps/web/core/components/issues/issue-detail/parent/root.tsx +++ b/apps/web/core/components/issues/issue-detail/parent/root.tsx @@ -12,11 +12,13 @@ import { ControlLink, CustomMenu } from "@plane/ui"; // helpers import { generateWorkItemLink } from "@plane/utils"; // hooks -import { useIssues, useProject, useProjectState } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; import useIssuePeekOverviewRedirection from "@/hooks/use-issue-peek-overview-redirection"; 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"; // types import { TIssueOperations } from "../root"; import { IssueParentSiblings } from "./siblings"; diff --git a/apps/web/core/components/issues/issue-detail/parent/sibling-item.tsx b/apps/web/core/components/issues/issue-detail/parent/sibling-item.tsx index 04cb3745d..d03bf7af4 100644 --- a/apps/web/core/components/issues/issue-detail/parent/sibling-item.tsx +++ b/apps/web/core/components/issues/issue-detail/parent/sibling-item.tsx @@ -8,9 +8,10 @@ import { CustomMenu } from "@plane/ui"; // helpers import { generateWorkItemLink } from "@plane/utils"; // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; // plane web components -import { IssueIdentifier } from "@/plane-web/components/issues"; +import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; type TIssueParentSiblingItem = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-detail/parent/siblings.tsx b/apps/web/core/components/issues/issue-detail/parent/siblings.tsx index 8c0314360..b26cff1a5 100644 --- a/apps/web/core/components/issues/issue-detail/parent/siblings.tsx +++ b/apps/web/core/components/issues/issue-detail/parent/siblings.tsx @@ -4,7 +4,7 @@ import useSWR from "swr"; import { TIssue } from "@plane/types"; // components // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import { IssueParentSiblingItem } from "./sibling-item"; diff --git a/apps/web/core/components/issues/issue-detail/reactions/issue-comment.tsx b/apps/web/core/components/issues/issue-detail/reactions/issue-comment.tsx index caaeb65ff..082070d57 100644 --- a/apps/web/core/components/issues/issue-detail/reactions/issue-comment.tsx +++ b/apps/web/core/components/issues/issue-detail/reactions/issue-comment.tsx @@ -9,7 +9,8 @@ import { cn, formatTextList } from "@plane/utils"; // helper import { renderEmoji } from "@/helpers/emoji.helper"; // hooks -import { useIssueDetail, useMember } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member"; // types import { ReactionSelector } from "./reaction-selector"; diff --git a/apps/web/core/components/issues/issue-detail/reactions/issue.tsx b/apps/web/core/components/issues/issue-detail/reactions/issue.tsx index 5e5994ff3..f12bf03fe 100644 --- a/apps/web/core/components/issues/issue-detail/reactions/issue.tsx +++ b/apps/web/core/components/issues/issue-detail/reactions/issue.tsx @@ -9,7 +9,8 @@ import { TOAST_TYPE, Tooltip, setToast } from "@plane/ui"; import { cn, formatTextList } from "@plane/utils"; // helpers import { renderEmoji } from "@/helpers/emoji.helper"; -import { useIssueDetail, useMember } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useMember } from "@/hooks/store/use-member"; // types import { ReactionSelector } from "./reaction-selector"; diff --git a/apps/web/core/components/issues/issue-detail/relation-select.tsx b/apps/web/core/components/issues/issue-detail/relation-select.tsx index d7d0a6947..b15a12947 100644 --- a/apps/web/core/components/issues/issue-detail/relation-select.tsx +++ b/apps/web/core/components/issues/issue-detail/relation-select.tsx @@ -3,22 +3,22 @@ import React from "react"; import { observer } from "mobx-react"; import Link from "next/link"; -import { CircleDot, CopyPlus, Pencil, X, XCircle } from "lucide-react"; +import { Pencil, X } from "lucide-react"; // Plane import { ISearchIssueResponse } from "@plane/types"; -import { RelatedIcon, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; +import { Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; import { cn, generateWorkItemLink } from "@plane/utils"; // components -import { ExistingIssuesListModal } from "@/components/core"; -// helpers +import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; // hooks -import { useIssueDetail, useIssues, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project"; import { usePlatformOS } from "@/hooks/use-platform-os"; -// Plane-web +// Plane web imports import { useTimeLineRelationOptions } from "@/plane-web/components/relations"; -import { TIssueRelationTypes } from "@/plane-web/types"; -// -import { TRelationObject } from "../issue-detail-widgets"; +import type { TIssueRelationTypes } from "@/plane-web/types"; +import type { TRelationObject } from "../issue-detail-widgets/relations"; type TIssueRelationSelect = { className?: string; diff --git a/apps/web/core/components/issues/issue-detail/root.tsx b/apps/web/core/components/issues/issue-detail/root.tsx index 66c12d1f8..19117a5e0 100644 --- a/apps/web/core/components/issues/issue-detail/root.tsx +++ b/apps/web/core/components/issues/issue-detail/root.tsx @@ -2,24 +2,26 @@ import { FC, useMemo } from "react"; import { observer } from "mobx-react"; -// types +// plane imports import { EUserPermissions, EUserPermissionsLevel, WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, TIssue } from "@plane/types"; -// ui import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; // components -import { EmptyState } from "@/components/common"; -import { IssueDetailsSidebar, IssuePeekOverview } from "@/components/issues"; -// constants +import { EmptyState } from "@/components/common/empty-state"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useAppTheme, useIssueDetail, useIssues, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; // images import emptyIssue from "@/public/empty-state/issue.svg"; // local components +import { IssuePeekOverview } from "../peek-overview"; import { IssueMainContent } from "./main-content"; +import { IssueDetailsSidebar } from "./sidebar"; export type TIssueOperations = { fetch: (workspaceSlug: string, projectId: string, issueId: string, loader?: boolean) => Promise; diff --git a/apps/web/core/components/issues/issue-detail/sidebar.tsx b/apps/web/core/components/issues/issue-detail/sidebar.tsx index c93baf884..65c5803e1 100644 --- a/apps/web/core/components/issues/issue-detail/sidebar.tsx +++ b/apps/web/core/components/issues/issue-detail/sidebar.tsx @@ -9,22 +9,26 @@ import { useTranslation } from "@plane/i18n"; import { ContrastIcon, DiceIcon, DoubleCircleIcon } from "@plane/ui"; import { cn, getDate, renderFormattedPayloadDate, shouldHighlightIssueDueDate } from "@plane/utils"; // components -import { - DateDropdown, - EstimateDropdown, - MemberDropdown, - PriorityDropdown, - StateDropdown, -} from "@/components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns/date"; +import { EstimateDropdown } from "@/components/dropdowns/estimate"; import { ButtonAvatars } from "@/components/dropdowns/member/avatar"; -import { IssueCycleSelect, IssueLabel, IssueModuleSelect } from "@/components/issues"; -// helpers +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; // hooks -import { useProjectEstimates, useIssueDetail, useProject, useProjectState, useMember } from "@/hooks/store"; +import { useProjectEstimates } from "@/hooks/store/estimates"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useMember } from "@/hooks/store/use-member"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; // plane web components -import { IssueParentSelectRoot, IssueWorklogProperty } from "@/plane-web/components/issues"; // components import { WorkItemAdditionalSidebarProperties } from "@/plane-web/components/issues/issue-details/additional-properties"; +import { IssueParentSelectRoot } from "@/plane-web/components/issues/issue-details/parent-select-root"; +import { IssueWorklogProperty } from "@/plane-web/components/issues/worklog/property"; +import { IssueCycleSelect } from "./cycle-select"; +import { IssueLabel } from "./label"; +import { IssueModuleSelect } from "./module-select"; import type { TIssueOperations } from "./root"; type Props = { diff --git a/apps/web/core/components/issues/issue-detail/subscription.tsx b/apps/web/core/components/issues/issue-detail/subscription.tsx index 504b625f6..518f3d844 100644 --- a/apps/web/core/components/issues/issue-detail/subscription.tsx +++ b/apps/web/core/components/issues/issue-detail/subscription.tsx @@ -11,7 +11,8 @@ import { useTranslation } from "@plane/i18n"; import { EIssueServiceType } from "@plane/types"; import { Button, Loader, TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useIssueDetail, useUserPermissions } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useUserPermissions } from "@/hooks/store/user"; export type TIssueSubscription = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-layouts/calendar/base-calendar-root.tsx b/apps/web/core/components/issues/issue-layouts/calendar/base-calendar-root.tsx index 9ca5d12f8..20c2d6e33 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/base-calendar-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/base-calendar-root.tsx @@ -3,19 +3,20 @@ import { FC, useCallback, useEffect } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssueGroupByToServerOptions, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { EIssuesStoreType, TGroupedIssues } from "@plane/types"; -// components import { TOAST_TYPE, setToast } from "@plane/ui"; -import { CalendarChart } from "@/components/issues"; -//constants // hooks -import { useIssues, useCalendarView, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useCalendarView } from "@/hooks/store/use-calendar-view" +import { useUserPermissions } from "@/hooks/store/user"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { useIssuesActions } from "@/hooks/use-issues-actions"; // types import { IQuickActionProps } from "../list/list-view-types"; import { handleDragDrop } from "./utils"; +import { CalendarChart } from "./calendar"; export type CalendarStoreType = | EIssuesStoreType.PROJECT diff --git a/apps/web/core/components/issues/issue-layouts/calendar/calendar.tsx b/apps/web/core/components/issues/issue-layouts/calendar/calendar.tsx index 47d75531d..d0d1d575c 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/calendar.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/calendar.tsx @@ -23,13 +23,11 @@ import { // ui import { Spinner } from "@plane/ui"; import { renderFormattedPayloadDate, cn } from "@plane/utils"; -// components -import { CalendarHeader, CalendarIssueBlocks, CalendarWeekDays, CalendarWeekHeader } from "@/components/issues"; // constants import { MONTHS_LIST } from "@/constants/calendar"; // helpers // hooks -import { useIssues } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; import useSize from "@/hooks/use-window-size"; // store import { IProjectEpicsFilter } from "@/plane-web/store/issue/epic"; @@ -38,8 +36,13 @@ import { ICalendarStore } from "@/store/issue/issue_calendar_view.store"; import { IModuleIssuesFilter } from "@/store/issue/module"; import { IProjectIssuesFilter } from "@/store/issue/project"; import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; +// local imports import { IssueLayoutHOC } from "../issue-layout-HOC"; import { TRenderQuickActions } from "../list/list-view-types"; +import { CalendarHeader } from "./header"; +import { CalendarIssueBlocks } from "./issue-blocks"; +import { CalendarWeekDays } from "./week-days"; +import { CalendarWeekHeader } from "./week-header"; type Props = { issuesFilterStore: diff --git a/apps/web/core/components/issues/issue-layouts/calendar/day-tile.tsx b/apps/web/core/components/issues/issue-layouts/calendar/day-tile.tsx index b484a5c49..83429b490 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/day-tile.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/day-tile.tsx @@ -11,7 +11,6 @@ import { TGroupedIssues, TIssue, TIssueMap, TPaginationData, ICalendarDate } fro import { TOAST_TYPE, setToast } from "@plane/ui"; // components import { cn, renderFormattedPayloadDate } from "@plane/utils"; -import { CalendarIssueBlocks } from "@/components/issues/issue-layouts/calendar"; import { highlightIssueOnDrop } from "@/components/issues/issue-layouts/utils"; // helpers import { MONTHS_LIST } from "@/constants/calendar"; @@ -23,6 +22,7 @@ import { IModuleIssuesFilter } from "@/store/issue/module"; import { IProjectIssuesFilter } from "@/store/issue/project"; import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; import { TRenderQuickActions } from "../list/list-view-types"; +import { CalendarIssueBlocks } from "./issue-blocks"; type Props = { issuesFilterStore: diff --git a/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx b/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx index f0563f5ba..4d0ad5bc9 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/months-dropdown.tsx @@ -8,7 +8,7 @@ import { Popover, Transition } from "@headlessui/react"; // constants import { getDate } from "@plane/utils"; import { MONTHS_LIST } from "@/constants/calendar"; -import { useCalendarView } from "@/hooks/store"; +import { useCalendarView } from "@/hooks/store/use-calendar-view"; import { IProjectEpicsFilter } from "@/plane-web/store/issue/epic"; import { ICycleIssuesFilter } from "@/store/issue/cycle"; import { IModuleIssuesFilter } from "@/store/issue/module"; diff --git a/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx b/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx index f41dbc06c..469f61254 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/dropdowns/options-dropdown.tsx @@ -22,7 +22,7 @@ import { ToggleSwitch } from "@plane/ui"; // types // constants import { CALENDAR_LAYOUTS } from "@/constants/calendar"; -import { useCalendarView } from "@/hooks/store"; +import { useCalendarView } from "@/hooks/store/use-calendar-view"; import useSize from "@/hooks/use-window-size"; import { IProjectEpicsFilter } from "@/plane-web/store/issue/epic"; import { ICycleIssuesFilter } from "@/store/issue/cycle"; diff --git a/apps/web/core/components/issues/issue-layouts/calendar/header.tsx b/apps/web/core/components/issues/issue-layouts/calendar/header.tsx index e5943f33b..55da82d03 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/header.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/header.tsx @@ -11,7 +11,6 @@ import { TIssueKanbanFilters, } from "@plane/types"; import { Row } from "@plane/ui"; -import { CalendarMonthsDropdown, CalendarOptionsDropdown } from "@/components/issues"; // icons import { useCalendarView } from "@/hooks/store/use-calendar-view"; import { IProjectEpicsFilter } from "@/plane-web/store/issue/epic"; @@ -19,6 +18,7 @@ import { ICycleIssuesFilter } from "@/store/issue/cycle"; import { IModuleIssuesFilter } from "@/store/issue/module"; import { IProjectIssuesFilter } from "@/store/issue/project"; import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; +import { CalendarMonthsDropdown, CalendarOptionsDropdown } from "./dropdowns"; interface ICalendarHeader { issuesFilterStore: diff --git a/apps/web/core/components/issues/issue-layouts/calendar/index.ts b/apps/web/core/components/issues/issue-layouts/calendar/index.ts deleted file mode 100644 index e9a722af0..000000000 --- a/apps/web/core/components/issues/issue-layouts/calendar/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./dropdowns"; -export * from "./roots"; -export * from "./calendar"; -export * from "./day-tile"; -export * from "./header"; -export * from "./issue-blocks"; -export * from "./issue-block-root"; -export * from "./issue-block"; -export * from "./week-days"; -export * from "./week-header"; -export * from "./quick-add-issue-actions"; diff --git a/apps/web/core/components/issues/issue-layouts/calendar/issue-block-root.tsx b/apps/web/core/components/issues/issue-layouts/calendar/issue-block-root.tsx index 2ca6a8f8e..10a965378 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/issue-block-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/issue-block-root.tsx @@ -5,10 +5,10 @@ import { observer } from "mobx-react"; // plane helpers import { useOutsideClickDetector } from "@plane/hooks"; // components -import { CalendarIssueBlock } from "@/components/issues"; -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { TRenderQuickActions } from "../list/list-view-types"; import { HIGHLIGHT_CLASS } from "../utils"; +import { CalendarIssueBlock } from "./issue-block"; // types type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx b/apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx index ce1181b73..93c18c9c3 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/issue-block.tsx @@ -14,12 +14,15 @@ import { Tooltip, ControlLink } from "@plane/ui"; import { cn, generateWorkItemLink } from "@plane/utils"; // helpers // hooks -import { useIssueDetail, useIssues, useProject, useProjectState } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import useIssuePeekOverviewRedirection from "@/hooks/use-issue-peek-overview-redirection"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web components -import { IssueIdentifier } from "@/plane-web/components/issues/issue-details"; +import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; // local components import { TRenderQuickActions } from "../list/list-view-types"; import { CalendarStoreType } from "./base-calendar-root"; diff --git a/apps/web/core/components/issues/issue-layouts/calendar/issue-blocks.tsx b/apps/web/core/components/issues/issue-layouts/calendar/issue-blocks.tsx index ff2bbe76b..dceb7a714 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/issue-blocks.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/issue-blocks.tsx @@ -3,10 +3,11 @@ import { useTranslation } from "@plane/i18n"; import { TIssue, TPaginationData } from "@plane/types"; // components import { renderFormattedPayloadDate } from "@plane/utils"; -import { CalendarQuickAddIssueActions, CalendarIssueBlockRoot } from "@/components/issues"; // helpers import { useIssuesStore } from "@/hooks/use-issue-layout-store"; import { TRenderQuickActions } from "../list/list-view-types"; +import { CalendarIssueBlockRoot } from "./issue-block-root"; +import { CalendarQuickAddIssueActions } from "./quick-add-issue-actions"; // types type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx b/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx index 8f05892f1..0b1f78caf 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/quick-add-issue-actions.tsx @@ -5,19 +5,16 @@ import { differenceInCalendarDays } from "date-fns/differenceInCalendarDays"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { PlusIcon } from "lucide-react"; -// i18n +// plane imports import { useTranslation } from "@plane/i18n"; -// types import { ISearchIssueResponse, TIssue, EIssueLayoutTypes } from "@plane/types"; -// ui import { CustomMenu, setPromiseToast } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { ExistingIssuesListModal } from "@/components/core"; -import { QuickAddIssueRoot } from "@/components/issues"; -// helpers +// components +import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { QuickAddIssueRoot } from "../quick-add"; type TCalendarQuickAddIssueActions = { prePopulatedData?: Partial; diff --git a/apps/web/core/components/issues/issue-layouts/calendar/roots/cycle-root.tsx b/apps/web/core/components/issues/issue-layouts/calendar/roots/cycle-root.tsx index d10e28b23..c1faa7933 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/roots/cycle-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/roots/cycle-root.tsx @@ -2,13 +2,12 @@ import { useCallback } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { EIssuesStoreType } from "@plane/types"; -//hooks -import { CycleIssueQuickActions } from "@/components/issues"; -import { useCycle, useIssues } from "@/hooks/store"; +// hooks +import { useCycle } from "@/hooks/store/use-cycle" +import { useIssues } from "@/hooks/store/use-issues"; // components +import { CycleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseCalendarRoot } from "../base-calendar-root"; -// types -// constants export const CycleCalendarLayout: React.FC = observer(() => { const { currentProjectCompletedCycleIds } = useCycle(); diff --git a/apps/web/core/components/issues/issue-layouts/calendar/roots/index.ts b/apps/web/core/components/issues/issue-layouts/calendar/roots/index.ts deleted file mode 100644 index 19de04806..000000000 --- a/apps/web/core/components/issues/issue-layouts/calendar/roots/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./cycle-root"; -export * from "./module-root"; -export * from "./project-view-root"; -export * from "./project-root"; diff --git a/apps/web/core/components/issues/issue-layouts/calendar/roots/module-root.tsx b/apps/web/core/components/issues/issue-layouts/calendar/roots/module-root.tsx index 0e1038e2f..075d395a3 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/roots/module-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/roots/module-root.tsx @@ -1,13 +1,12 @@ import { useCallback } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssuesStoreType } from "@plane/types"; // hooks -// components -import { ModuleIssueQuickActions } from "@/components/issues"; -// types -// constants -import { useIssues } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; +// local imports +import { ModuleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseCalendarRoot } from "../base-calendar-root"; export const ModuleCalendarLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/calendar/roots/project-root.tsx b/apps/web/core/components/issues/issue-layouts/calendar/roots/project-root.tsx index 9634f1f8b..6cf681fc7 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/roots/project-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/roots/project-root.tsx @@ -1,12 +1,11 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// hooks +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { ProjectIssueQuickActions } from "@/components/issues"; // hooks -import { useUserPermissions } from "@/hooks/store"; -// plane web constants -// components +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseCalendarRoot } from "../base-calendar-root"; export const CalendarLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/calendar/roots/project-view-root.tsx b/apps/web/core/components/issues/issue-layouts/calendar/roots/project-view-root.tsx index dc073fc9e..72ab231fb 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/roots/project-view-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/roots/project-view-root.tsx @@ -1,11 +1,8 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// hooks -import { ProjectIssueQuickActions } from "@/components/issues"; -// components -// types +// local imports +import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseCalendarRoot } from "../base-calendar-root"; -// constants export const ProjectViewCalendarLayout: React.FC = observer(() => { const { viewId } = useParams(); diff --git a/apps/web/core/components/issues/issue-layouts/calendar/week-days.tsx b/apps/web/core/components/issues/issue-layouts/calendar/week-days.tsx index 2f843d4d6..b9f2b2448 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/week-days.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/week-days.tsx @@ -1,12 +1,9 @@ import { observer } from "mobx-react"; -import { TGroupedIssues, TIssue, TIssueMap, TPaginationData, ICalendarDate, ICalendarWeek } from "@plane/types"; +// plane imports +import type { TGroupedIssues, TIssue, TIssueMap, TPaginationData, ICalendarDate, ICalendarWeek } from "@plane/types"; import { cn, getOrderedDays, renderFormattedPayloadDate } from "@plane/utils"; -// components -import { CalendarDayTile } from "@/components/issues"; -// helpers -// // hooks -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; // types import { IProjectEpicsFilter } from "@/plane-web/store/issue/epic"; import { ICycleIssuesFilter } from "@/store/issue/cycle"; @@ -14,6 +11,7 @@ import { IModuleIssuesFilter } from "@/store/issue/module"; import { IProjectIssuesFilter } from "@/store/issue/project"; import { IProjectViewIssuesFilter } from "@/store/issue/project-views"; import { TRenderQuickActions } from "../list/list-view-types"; +import { CalendarDayTile } from "./day-tile"; type Props = { issuesFilterStore: diff --git a/apps/web/core/components/issues/issue-layouts/calendar/week-header.tsx b/apps/web/core/components/issues/issue-layouts/calendar/week-header.tsx index d1164d1a5..b289c9798 100644 --- a/apps/web/core/components/issues/issue-layouts/calendar/week-header.tsx +++ b/apps/web/core/components/issues/issue-layouts/calendar/week-header.tsx @@ -4,7 +4,7 @@ import { getOrderedDays } from "@plane/utils"; import { DAYS_LIST } from "@/constants/calendar"; // helpers // hooks -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; type Props = { isLoading: boolean; diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/archived-issues.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/archived-issues.tsx index 73d138fcf..0d9c20d22 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/archived-issues.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/archived-issues.tsx @@ -6,9 +6,10 @@ import { EIssueFilterType, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, EUserProjectRoles, IIssueFilterOptions } from "@plane/types"; // components -import { DetailedEmptyState } from "@/components/empty-state"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; // hooks -import { useIssues, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx index 59a7acdaf..4877d686f 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/cycle.tsx @@ -11,10 +11,13 @@ import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, EUserProjectRoles, IIssueFilterOptions, ISearchIssueResponse } from "@plane/types"; import { TOAST_TYPE, setToast } from "@plane/ui"; // components -import { ExistingIssuesListModal } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; +import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useCycle, useIssues, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useCycle } from "@/hooks/store/use-cycle" +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; export const CycleEmptyState: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/global-view.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/global-view.tsx index 0d12f31dc..2f1ab4fdd 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/global-view.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/global-view.tsx @@ -5,10 +5,13 @@ import { EUserPermissionsLevel, WORK_ITEM_TRACKER_ELEMENTS } from "@plane/consta import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, EUserWorkspaceRoles } from "@plane/types"; // components -import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useProject, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; export const GlobalViewEmptyState: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/module.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/module.tsx index f71010c58..2a74709f7 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/module.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/module.tsx @@ -10,11 +10,13 @@ import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, EUserProjectRoles, IIssueFilterOptions, ISearchIssueResponse } from "@plane/types"; import { TOAST_TYPE, setToast } from "@plane/ui"; // components -import { ExistingIssuesListModal } from "@/components/core"; -import { DetailedEmptyState } from "@/components/empty-state"; +import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { captureClick } from "@/helpers/event-tracker.helper"; // hooks -import { useCommandPalette, useIssues, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; export const ModuleEmptyState: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/profile-view.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/profile-view.tsx index d67aad491..26f8e52ab 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/profile-view.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/profile-view.tsx @@ -2,7 +2,7 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components import { useTranslation } from "@plane/i18n"; -import { DetailedEmptyState } from "@/components/empty-state"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; // constants import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/project-issues.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/project-issues.tsx index 842a3485b..3ee8fd653 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/project-issues.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/project-issues.tsx @@ -6,10 +6,13 @@ import { EIssueFilterType, EUserPermissionsLevel, WORK_ITEM_TRACKER_ELEMENTS } f import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, EUserProjectRoles, IIssueFilterOptions } from "@plane/types"; // components -import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { captureClick } from "@/helpers/event-tracker.helper"; // hooks -import { useCommandPalette, useIssues, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; export const ProjectEmptyState: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/empty-states/project-view.tsx b/apps/web/core/components/issues/issue-layouts/empty-states/project-view.tsx index bd0ab5b2f..0db9d94e2 100644 --- a/apps/web/core/components/issues/issue-layouts/empty-states/project-view.tsx +++ b/apps/web/core/components/issues/issue-layouts/empty-states/project-view.tsx @@ -3,10 +3,11 @@ import { PlusIcon } from "lucide-react"; // components import { EUserPermissions, EUserPermissionsLevel, WORK_ITEM_TRACKER_ELEMENTS } from "@plane/constants"; import { EIssuesStoreType } from "@plane/types"; -import { EmptyState } from "@/components/common"; +import { EmptyState } from "@/components/common/empty-state"; import { captureClick } from "@/helpers/event-tracker.helper"; // hooks -import { useCommandPalette, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useUserPermissions } from "@/hooks/store/user"; // assets import emptyIssue from "@/public/empty-state/issue.svg"; diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/cycle.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/cycle.tsx index 2a2c37795..0a08aec5f 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/cycle.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/cycle.tsx @@ -5,7 +5,7 @@ import { X } from "lucide-react"; import { TCycleGroups } from "@plane/types"; // hooks import { CycleGroupIcon } from "@plane/ui"; -import { useCycle } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle"; // ui // types diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx index 17fcbbfec..9918ce415 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/filters-list.tsx @@ -1,12 +1,12 @@ import { observer } from "mobx-react"; import { X } from "lucide-react"; -// types +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IIssueFilterOptions, IIssueLabel, IState } from "@plane/types"; -// components import { Tag } from "@plane/ui"; import { replaceUnderscoreIfSnakeCase } from "@plane/utils"; +// components import { AppliedCycleFilters, AppliedDateFilters, @@ -17,13 +17,11 @@ import { AppliedProjectFilters, AppliedStateFilters, AppliedStateGroupFilters, -} from "@/components/issues"; -// constants -// helpers +} from "@/components/issues/issue-layouts/filters"; // hooks -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; // plane web components -import { AppliedIssueTypeFilters } from "@/plane-web/components/issues"; +import { AppliedIssueTypeFilters } from "@/plane-web/components/issues/filters/applied-filters/issue-types"; type Props = { appliedFilters: IIssueFilterOptions; diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/members.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/members.tsx index cf9dc582a..66607cc24 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/members.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/members.tsx @@ -7,7 +7,7 @@ import { Avatar } from "@plane/ui"; // helpers import { getFileURL } from "@plane/utils"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; type Props = { handleRemove: (val: string) => void; diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/module.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/module.tsx index 32f9b13d7..524938c47 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/module.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/module.tsx @@ -4,7 +4,7 @@ import { observer } from "mobx-react"; import { X } from "lucide-react"; // hooks import { DiceIcon } from "@plane/ui"; -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; // ui type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/project.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/project.tsx index 190d9f1fa..04efe576c 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/project.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/project.tsx @@ -1,9 +1,9 @@ import { observer } from "mobx-react"; import { X } from "lucide-react"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; type Props = { handleRemove: (val: string) => void; diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx index b27328a82..19f12e043 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/archived-issue.tsx @@ -1,12 +1,14 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssueFilterType } from "@plane/constants"; import { EIssuesStoreType, IIssueFilterOptions } from "@plane/types"; // hooks -import { AppliedFiltersList } from "@/components/issues"; -import { useIssues, useLabel, useProjectState } from "@/hooks/store"; -// components -// types +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state"; +// local imports +import { AppliedFiltersList } from "../filters-list"; export const ArchivedIssueAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx index f678f1a13..a1d3cef95 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/cycle-root.tsx @@ -1,13 +1,16 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssueFilterType, PROJECT_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; import { EIssuesStoreType, IIssueFilterOptions } from "@plane/types"; -// hooks import { Header, EHeaderVariant } from "@plane/ui"; -import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; -import { useIssues, useLabel, useProjectState } from "@/hooks/store"; -// components -// types +// hooks +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state"; +// local imports +import { SaveFilterView } from "../../../save-filter-view"; +import { AppliedFiltersList } from "../filters-list"; export const CycleAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx index b774d2d34..2d6b96f1c 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/draft-issue.tsx @@ -1,12 +1,14 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssueFilterType } from "@plane/constants"; import { EIssuesStoreType, IIssueFilterOptions } from "@plane/types"; // hooks -import { AppliedFiltersList } from "@/components/issues"; -import { useIssues, useLabel, useProjectState } from "@/hooks/store"; -// components -// types +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state"; +// local imports +import { AppliedFiltersList } from "../filters-list"; export const DraftIssueAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx index bf3fa63ce..31a8de982 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/global-view-root.tsx @@ -18,13 +18,16 @@ import { EIssuesStoreType, EViewAccess, IIssueFilterOptions, TStaticViewTypes } import { Header, EHeaderVariant, Loader } from "@plane/ui"; import { cn } from "@plane/utils"; // components -import { AppliedFiltersList } from "@/components/issues"; import { UpdateViewComponent } from "@/components/views/update-view-component"; -import { CreateUpdateWorkspaceViewModal } from "@/components/workspace"; +import { CreateUpdateWorkspaceViewModal } from "@/components/workspace/views/modal"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useGlobalView, useIssues, useLabel, useUser, useUserPermissions } from "@/hooks/store"; +import { useGlobalView } from "@/hooks/store/use-global-view" +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useUser, useUserPermissions } from "@/hooks/store/user"; import { getAreFiltersEqual } from "../../../utils"; +import { AppliedFiltersList } from "../filters-list"; type Props = { globalViewId: string; diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx index d7174ceef..45a24e48b 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/module-root.tsx @@ -1,13 +1,15 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssueFilterType, PROJECT_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; import { EIssuesStoreType, IIssueFilterOptions } from "@plane/types"; -// hooks import { Header, EHeaderVariant } from "@plane/ui"; -import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; -import { useIssues, useLabel, useProjectState } from "@/hooks/store"; -// components -// types +// hooks +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state"; +import { SaveFilterView } from "../../../save-filter-view"; +import { AppliedFiltersList } from "../filters-list"; export const ModuleAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx index cbd41be9e..8b6b5fb2a 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/profile-issues-root.tsx @@ -1,13 +1,13 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssueFilterType } from "@plane/constants"; import { EIssuesStoreType, IIssueFilterOptions } from "@plane/types"; // hooks -// components -import { AppliedFiltersList } from "@/components/issues"; -// types -import { useIssues, useLabel } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label"; import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-properties"; +import { AppliedFiltersList } from "../filters-list"; export const ProfileIssuesAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx index b834eb9da..421359e79 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-root.tsx @@ -1,6 +1,6 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// types +// plane imports import { EIssueFilterType, EUserPermissions, @@ -8,15 +8,15 @@ import { PROJECT_VIEW_TRACKER_ELEMENTS, } from "@plane/constants"; import { EIssuesStoreType, IIssueFilterOptions } from "@plane/types"; -// ui import { Header, EHeaderVariant } from "@plane/ui"; -// components -import { AppliedFiltersList, SaveFilterView } from "@/components/issues"; -// constants // hooks -import { useLabel, useProjectState, useUserPermissions } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useUserPermissions } from "@/hooks/store/user"; import { useIssues } from "@/hooks/store/use-issues"; -// plane web constants +// local imports +import { SaveFilterView } from "../../../save-filter-view"; +import { AppliedFiltersList } from "../filters-list"; type TProjectAppliedFiltersRootProps = { storeType?: EIssuesStoreType.PROJECT | EIssuesStoreType.EPIC; diff --git a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx index c458d692f..de13ce159 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/applied-filters/roots/project-view-root.tsx @@ -15,13 +15,17 @@ import { import { EIssuesStoreType, EViewAccess, IIssueFilterOptions } from "@plane/types"; // components import { Header, EHeaderVariant } from "@plane/ui"; -import { AppliedFiltersList } from "@/components/issues"; -import { CreateUpdateProjectViewModal } from "@/components/views"; +import { CreateUpdateProjectViewModal } from "@/components/views/modal"; import { UpdateViewComponent } from "@/components/views/update-view-component"; // constants // hooks -import { useIssues, useLabel, useProjectState, useProjectView, useUser, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useProjectView } from "@/hooks/store/use-project-view" +import { useUser, useUserPermissions } from "@/hooks/store/user"; import { getAreFiltersEqual } from "../../../utils"; +import { AppliedFiltersList } from "../filters-list"; export const ProjectViewAppliedFiltersRoot: React.FC = observer(() => { // router diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx index 12338658e..471ded192 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/display-filters-selection.tsx @@ -14,7 +14,7 @@ import { FilterGroupBy, FilterOrderBy, FilterSubGroupBy, -} from "@/components/issues"; +} from "@/components/issues/issue-layouts/filters"; type Props = { displayFilters: IIssueDisplayFilterOptions | undefined; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx index 51780d227..c3eba13a4 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/extra-options.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { useTranslation } from "@plane/i18n"; import { IIssueDisplayFilterOptions, TIssueExtraOptions } from "@plane/types"; // components -import { FilterOption } from "@/components/issues"; +import { FilterOption } from "@/components/issues/issue-layouts/filters"; // constants const ISSUE_EXTRA_OPTIONS: { diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx index 2622eae9d..29a270a65 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/group-by.tsx @@ -4,7 +4,7 @@ import { ISSUE_GROUP_BY_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IIssueDisplayFilterOptions, TIssueGroupByOptions } from "@plane/types"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; type Props = { displayFilters: IIssueDisplayFilterOptions | undefined; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/issue-grouping.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/issue-grouping.tsx index d3d106a93..c01378242 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/issue-grouping.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/issue-grouping.tsx @@ -2,7 +2,7 @@ import React from "react"; import { observer } from "mobx-react"; import { TIssueGroupingFilters } from "@plane/types"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // constants type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx index 5c4a6ba50..511e6536d 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/order-by.tsx @@ -5,7 +5,7 @@ import { useTranslation } from "@plane/i18n"; import { TIssueOrderByOptions } from "@plane/types"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; type Props = { selectedOrderBy: TIssueOrderByOptions | undefined; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx index e19f6d011..032d28d29 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/display-filters/sub-group-by.tsx @@ -4,7 +4,7 @@ import { ISSUE_GROUP_BY_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IIssueDisplayFilterOptions, TIssueGroupByOptions } from "@plane/types"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // constants type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/assignee.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/assignee.tsx index f4a261316..8d137d014 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/assignee.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/assignee.tsx @@ -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; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/created-by.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/created-by.tsx index 9dd7c1d09..2067802cf 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/created-by.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/created-by.tsx @@ -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; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/cycle.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/cycle.tsx index 8169b43c8..bfb5dfe04 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/cycle.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/cycle.tsx @@ -7,8 +7,8 @@ import { useParams } from "next/navigation"; import { TCycleGroups } from "@plane/types"; // components import { Loader, CycleGroupIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "@/components/issues"; -import { useCycle } from "@/hooks/store"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; +import { useCycle } from "@/hooks/store/use-cycle"; // ui // types diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/due-date.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/due-date.tsx index 8f3dfa58d..a5e815ed4 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/due-date.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/due-date.tsx @@ -3,8 +3,8 @@ import { observer } from "mobx-react"; // constants import { DATE_AFTER_FILTER_OPTIONS } from "@plane/constants"; // components -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"; type Props = { appliedFilters: string[] | null; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx index 28e29ab62..04afbba80 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/filters-selection.tsx @@ -2,10 +2,9 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { Search, X } from "lucide-react"; -// i18n +// plane imports import { EUserPermissions } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -// types import { IIssueDisplayFilterOptions, IIssueFilterOptions, @@ -28,12 +27,13 @@ import { FilterCycle, FilterModule, FilterIssueGrouping, -} from "@/components/issues"; +} from "@/components/issues/issue-layouts/filters"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; import { usePlatformOS } from "@/hooks/use-platform-os"; -// plane web components -import { FilterIssueTypes, FilterTeamProjects } from "@/plane-web/components/issues"; +// plane web imports +import { FilterIssueTypes } from "@/plane-web/components/issues/filters/issue-types"; +import { FilterTeamProjects } from "@/plane-web/components/issues/filters/team-project"; type Props = { filters: IIssueFilterOptions; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/labels.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/labels.tsx index 70800af0e..5b80a2fbb 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/labels.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/labels.tsx @@ -6,7 +6,7 @@ import { observer } from "mobx-react"; import { IIssueLabel } from "@plane/types"; // components import { Loader } from "@plane/ui"; -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // ui // types diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/mentions.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/mentions.tsx index 7e60eb5bb..31294c7dc 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/mentions.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/mentions.tsx @@ -7,10 +7,11 @@ import { observer } from "mobx-react"; import { Loader, Avatar } 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; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/module.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/module.tsx index ea972db03..7b02e9536 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/module.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/module.tsx @@ -6,8 +6,8 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // components import { Loader, DiceIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "@/components/issues"; -import { useModule } from "@/hooks/store"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; +import { useModule } from "@/hooks/store/use-module"; // ui type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/priority.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/priority.tsx index dee916534..d519f6384 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/priority.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/priority.tsx @@ -9,7 +9,7 @@ import { useTranslation } from "@plane/i18n"; import { PriorityIcon } from "@plane/ui"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; type Props = { appliedFilters: string[] | null; handleUpdate: (val: string) => void; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/project.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/project.tsx index 02fac50a3..d1038be5e 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/project.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/project.tsx @@ -6,10 +6,10 @@ import { observer } from "mobx-react"; // ui import { Loader } from "@plane/ui"; // components -import { Logo } from "@/components/common"; -import { FilterHeader, FilterOption } from "@/components/issues"; +import { Logo } from "@/components/common/logo"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; type Props = { appliedFilters: string[] | null; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/start-date.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/start-date.tsx index c667696e7..d747ef8e1 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/start-date.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/start-date.tsx @@ -3,8 +3,8 @@ import { observer } from "mobx-react"; // constants import { DATE_AFTER_FILTER_OPTIONS } from "@plane/constants"; // components -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"; type Props = { appliedFilters: string[] | null; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/state-group.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/state-group.tsx index cdad192b6..be38f0c73 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/state-group.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/state-group.tsx @@ -6,7 +6,7 @@ import { observer } from "mobx-react"; import { STATE_GROUPS } from "@plane/constants"; import { StateGroupIcon } from "@plane/ui"; // components -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; type Props = { appliedFilters: string[] | null; diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/filters/state.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/filters/state.tsx index 784ffc076..f8506c817 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/filters/state.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/filters/state.tsx @@ -7,7 +7,7 @@ import { EIconSize } from "@plane/constants"; import { IState } from "@plane/types"; // components import { Loader, StateGroupIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; // ui // types diff --git a/apps/web/core/components/issues/issue-layouts/filters/header/layout-selection.tsx b/apps/web/core/components/issues/issue-layouts/filters/header/layout-selection.tsx index 399979727..baa43a848 100644 --- a/apps/web/core/components/issues/issue-layouts/filters/header/layout-selection.tsx +++ b/apps/web/core/components/issues/issue-layouts/filters/header/layout-selection.tsx @@ -8,7 +8,7 @@ import { EIssueLayoutTypes } from "@plane/types"; // ui import { Tooltip } from "@plane/ui"; // types -import { IssueLayoutIcon } from "@/components/issues"; +import { IssueLayoutIcon } from "@/components/issues/issue-layouts/layout-icon"; import { usePlatformOS } from "@/hooks/use-platform-os"; // hooks diff --git a/apps/web/core/components/issues/issue-layouts/gantt/base-gantt-root.tsx b/apps/web/core/components/issues/issue-layouts/gantt/base-gantt-root.tsx index 89f63d96b..aebefc6c3 100644 --- a/apps/web/core/components/issues/issue-layouts/gantt/base-gantt-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/gantt/base-gantt-root.tsx @@ -1,21 +1,19 @@ import React, { useCallback, useEffect } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// plane constants +// plane imports import { ALL_ISSUES, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, IBlockUpdateData, TIssue, EIssueLayoutTypes } from "@plane/types"; import { setToast, TOAST_TYPE } from "@plane/ui"; -// hooks import { renderFormattedPayloadDate } from "@plane/utils"; +// components import { ETimeLineTypeType, TimeLineTypeContext } from "@/components/gantt-chart/contexts"; import { GanttChartRoot } from "@/components/gantt-chart/root"; import { IssueGanttSidebar } from "@/components/gantt-chart/sidebar/issues/sidebar"; -import { QuickAddIssueRoot, IssueGanttBlock, GanttQuickAddIssueButton } from "@/components/issues"; -//constants -// helpers -//hooks -import { useIssues, useUserPermissions } from "@/hooks/store"; +// hooks +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { useIssuesActions } from "@/hooks/use-issues-actions"; import { useTimeLineChart } from "@/hooks/use-timeline-chart"; @@ -23,6 +21,8 @@ import { useTimeLineChart } from "@/hooks/use-timeline-chart"; import { useBulkOperationStatus } from "@/plane-web/hooks/use-bulk-operation-status"; import { IssueLayoutHOC } from "../issue-layout-HOC"; +import { IssueGanttBlock } from "./blocks"; +import { GanttQuickAddIssueButton, QuickAddIssueRoot } from "../quick-add"; interface IBaseGanttRoot { viewId?: string | undefined; diff --git a/apps/web/core/components/issues/issue-layouts/gantt/blocks.tsx b/apps/web/core/components/issues/issue-layouts/gantt/blocks.tsx index e2babd371..a4fa8f83e 100644 --- a/apps/web/core/components/issues/issue-layouts/gantt/blocks.tsx +++ b/apps/web/core/components/issues/issue-layouts/gantt/blocks.tsx @@ -9,12 +9,15 @@ import { findTotalDaysInRange, generateWorkItemLink } from "@plane/utils"; import { SIDEBAR_WIDTH } from "@/components/gantt-chart/constants"; // helpers // hooks -import { useIssueDetail, useIssues, useProject, useProjectState } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import useIssuePeekOverviewRedirection from "@/hooks/use-issue-peek-overview-redirection"; 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"; // import { IssueStats } from "@/plane-web/components/issues/issue-layouts/issue-stats"; import { getBlockViewDetails } from "../utils"; diff --git a/apps/web/core/components/issues/issue-layouts/gantt/index.ts b/apps/web/core/components/issues/issue-layouts/gantt/index.ts index b0eb6d232..6728bd659 100644 --- a/apps/web/core/components/issues/issue-layouts/gantt/index.ts +++ b/apps/web/core/components/issues/issue-layouts/gantt/index.ts @@ -1,2 +1 @@ -export * from "./blocks"; export * from "./base-gantt-root"; diff --git a/apps/web/core/components/issues/issue-layouts/index.ts b/apps/web/core/components/issues/issue-layouts/index.ts deleted file mode 100644 index 75bf1d599..000000000 --- a/apps/web/core/components/issues/issue-layouts/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -// filters -export * from "./filters"; -export * from "./empty-states"; -export * from "./quick-action-dropdowns"; - -// roots -export * from "./roots"; - -// layouts -export * from "./list"; -export * from "./calendar"; -export * from "./gantt"; -export * from "./kanban"; -export * from "./spreadsheet"; -export * from "./layout-icon"; - -// properties -export * from "./properties"; - -// save view -export * from "./save-filter-view"; - -// quick add -export * from "./quick-add"; diff --git a/apps/web/core/components/issues/issue-layouts/issue-layout-HOC.tsx b/apps/web/core/components/issues/issue-layouts/issue-layout-HOC.tsx index ba26b3f0d..916a91388 100644 --- a/apps/web/core/components/issues/issue-layouts/issue-layout-HOC.tsx +++ b/apps/web/core/components/issues/issue-layouts/issue-layout-HOC.tsx @@ -1,15 +1,16 @@ import { observer } from "mobx-react"; -// plane constants +// plane imports import { EIssueLayoutTypes } from "@plane/types"; -import { - CalendarLayoutLoader, - GanttLayoutLoader, - KanbanLayoutLoader, - ListLayoutLoader, - SpreadsheetLayoutLoader, -} from "@/components/ui"; -import { useIssues } from "@/hooks/store"; +// components +import { CalendarLayoutLoader } from "@/components/ui/loader/layouts/calendar-layout-loader"; +import { GanttLayoutLoader } from "@/components/ui/loader/layouts/gantt-layout-loader"; +import { KanbanLayoutLoader } from "@/components/ui/loader/layouts/kanban-layout-loader"; +import { ListLayoutLoader } from "@/components/ui/loader/layouts/list-layout-loader"; +import { SpreadsheetLayoutLoader } from "@/components/ui/loader/layouts/spreadsheet-layout-loader"; +// hooks +import { useIssues } from "@/hooks/store/use-issues"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; +// local imports import { IssueLayoutEmptyState } from "./empty-states"; const ActiveLoader = (props: { layout: EIssueLayoutTypes }) => { diff --git a/apps/web/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx b/apps/web/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx index bed7a3ba0..2ea62cbb7 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/base-kanban-root.tsx @@ -8,11 +8,13 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { EIssueFilterType, EUserPermissions, EUserPermissionsLevel, WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { EIssueServiceType, EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; -import { DeleteIssueModal } from "@/components/issues"; //constants //hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useIssueDetail, useIssues, useKanbanView, useUserPermissions } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useIssues } from "@/hooks/store/use-issues" +import { useKanbanView } from "@/hooks/store/use-kanban-view" +import { useUserPermissions } from "@/hooks/store/user"; import { useGroupIssuesDragNDrop } from "@/hooks/use-group-dragndrop"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { useIssuesActions } from "@/hooks/use-issues-actions"; @@ -25,6 +27,7 @@ import { IQuickActionProps, TRenderQuickActions } from "../list/list-view-types" import { getSourceFromDropPayload } from "../utils"; import { KanBan } from "./default"; import { KanBanSwimLanes } from "./swimlanes"; +import { DeleteIssueModal } from "../../delete-issue-modal"; export type KanbanStoreType = | EIssuesStoreType.PROJECT diff --git a/apps/web/core/components/issues/issue-layouts/kanban/block.tsx b/apps/web/core/components/issues/issue-layouts/kanban/block.tsx index f0fe531de..7e4e898f8 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/block.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/block.tsx @@ -18,11 +18,13 @@ import RenderIfVisible from "@/components/core/render-if-visible-HOC"; import { HIGHLIGHT_CLASS } from "@/components/issues/issue-layouts/utils"; // helpers // hooks -import { useIssueDetail, useKanbanView, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useKanbanView } from "@/hooks/store/use-kanban-view"; +import { useProject } from "@/hooks/store/use-project"; import useIssuePeekOverviewRedirection from "@/hooks/use-issue-peek-overview-redirection"; 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"; // local components import { IssueStats } from "@/plane-web/components/issues/issue-layouts/issue-stats"; import { TRenderQuickActions } from "../list/list-view-types"; diff --git a/apps/web/core/components/issues/issue-layouts/kanban/blocks-list.tsx b/apps/web/core/components/issues/issue-layouts/kanban/blocks-list.tsx index 2fb4da801..b6f5603e2 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/blocks-list.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/blocks-list.tsx @@ -1,10 +1,10 @@ import { MutableRefObject } from "react"; import { observer } from "mobx-react"; -//types +// plane imports import { TIssue, IIssueDisplayProperties, IIssueMap } from "@plane/types"; -import { KanbanIssueBlock } from "@/components/issues"; +// local imports import { TRenderQuickActions } from "../list/list-view-types"; -// components +import { KanbanIssueBlock } from "./block"; interface IssueBlocksListProps { sub_group_id: string; diff --git a/apps/web/core/components/issues/issue-layouts/kanban/default.tsx b/apps/web/core/components/issues/issue-layouts/kanban/default.tsx index 32cddc5a2..def5e5924 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/default.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/default.tsx @@ -18,9 +18,9 @@ import { import { ContentWrapper } from "@plane/ui"; // components import RenderIfVisible from "@/components/core/render-if-visible-HOC"; -import { KanbanColumnLoader } from "@/components/ui"; +import { KanbanColumnLoader } from "@/components/ui/loader/layouts/kanban-layout-loader"; // hooks -import { useKanbanView } from "@/hooks/store"; +import { useKanbanView } from "@/hooks/store/use-kanban-view"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; // types // parent components diff --git a/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx b/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx index d40fbf0d5..d9caaad1b 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/headers/group-by-card.tsx @@ -10,8 +10,8 @@ import { TIssue, ISearchIssueResponse, TIssueKanbanFilters, TIssueGroupByOptions // ui import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; // components -import { ExistingIssuesListModal } from "@/components/core"; -import { CreateUpdateIssueModal } from "@/components/issues"; +import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; // constants import { captureClick } from "@/helpers/event-tracker.helper"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; diff --git a/apps/web/core/components/issues/issue-layouts/kanban/index.ts b/apps/web/core/components/issues/issue-layouts/kanban/index.ts deleted file mode 100644 index f84f7c8af..000000000 --- a/apps/web/core/components/issues/issue-layouts/kanban/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./block"; -export * from "./roots"; -export * from "./blocks-list"; diff --git a/apps/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx b/apps/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx index ed834eea7..1b6450722 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/kanban-group.tsx @@ -22,12 +22,10 @@ import { } from "@plane/types"; import { TOAST_TYPE, setToast } from "@plane/ui"; import { cn } from "@plane/utils"; -import { KanbanQuickAddIssueButton, QuickAddIssueRoot } from "@/components/issues"; import { highlightIssueOnDrop } from "@/components/issues/issue-layouts/utils"; -import { KanbanIssueBlockLoader } from "@/components/ui"; -// helpers +import { KanbanIssueBlockLoader } from "@/components/ui/loader/layouts/kanban-layout-loader"; // hooks -import { useProjectState } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state"; import { useIntersectionObserver } from "@/hooks/use-intersection-observer"; import { useIssuesStore } from "@/hooks/use-issue-layout-store"; // Plane-web @@ -35,8 +33,9 @@ import { useWorkFlowFDragNDrop } from "@/plane-web/components/workflow"; // import { GroupDragOverlay } from "../group-drag-overlay"; import { TRenderQuickActions } from "../list/list-view-types"; +import { KanbanQuickAddIssueButton, QuickAddIssueRoot } from "../quick-add"; import { GroupDropLocation, getSourceFromDropPayload, getDestinationFromDropPayload, getIssueBlockId } from "../utils"; -import { KanbanIssueBlocksList } from "."; +import { KanbanIssueBlocksList } from "./blocks-list"; interface IKanbanGroup { groupId: string; @@ -153,13 +152,12 @@ export const KanbanGroup = observer((props: IKanbanGroup) => { if (!source || !destination) return; - if (isWorkflowDropDisabled || isDropDisabled) { - dropErrorMessage && - setToast({ - type: TOAST_TYPE.WARNING, - title: t("common.warning"), - message: dropErrorMessage, - }); + if ((isWorkflowDropDisabled || isDropDisabled) && dropErrorMessage) { + setToast({ + type: TOAST_TYPE.WARNING, + title: t("common.warning"), + message: dropErrorMessage, + }); return; } diff --git a/apps/web/core/components/issues/issue-layouts/kanban/roots/cycle-root.tsx b/apps/web/core/components/issues/issue-layouts/kanban/roots/cycle-root.tsx index 16f0990d9..e9404a2de 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/roots/cycle-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/roots/cycle-root.tsx @@ -4,11 +4,12 @@ import { useParams } from "next/navigation"; // components import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { EIssuesStoreType } from "@plane/types"; -import { CycleIssueQuickActions } from "@/components/issues"; -// constants // hooks -import { useCycle, useIssues, useUserPermissions } from "@/hooks/store"; -// components +import { useCycle } from "@/hooks/store/use-cycle" +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { CycleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseKanBanRoot } from "../base-kanban-root"; export const CycleKanBanLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx b/apps/web/core/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx index c2542b182..568dd315f 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/roots/draft-issue-root.tsx @@ -1,6 +1,6 @@ import { observer } from "mobx-react"; -// components -import { DraftIssueQuickActions } from "@/components/issues"; +// local imports +import { DraftIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseKanBanRoot } from "../base-kanban-root"; export const DraftKanBanLayout: React.FC = observer(() => ); diff --git a/apps/web/core/components/issues/issue-layouts/kanban/roots/index.ts b/apps/web/core/components/issues/issue-layouts/kanban/roots/index.ts deleted file mode 100644 index 139c09a7a..000000000 --- a/apps/web/core/components/issues/issue-layouts/kanban/roots/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./cycle-root"; -export * from "./module-root"; -export * from "./profile-issues-root"; -export * from "./project-root"; -export * from "./project-view-root"; diff --git a/apps/web/core/components/issues/issue-layouts/kanban/roots/module-root.tsx b/apps/web/core/components/issues/issue-layouts/kanban/roots/module-root.tsx index 7944ffc79..8587a509f 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/roots/module-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/roots/module-root.tsx @@ -1,13 +1,12 @@ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssuesStoreType } from "@plane/types"; -// hook -import { ModuleIssueQuickActions } from "@/components/issues"; -import { useIssues } from "@/hooks/store"; -// components -// types -// constants +// hooks +import { useIssues } from "@/hooks/store/use-issues"; +// local imports +import { ModuleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseKanBanRoot } from "../base-kanban-root"; export const ModuleKanBanLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx b/apps/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx index fed04333e..be1e43361 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/roots/profile-issues-root.tsx @@ -1,13 +1,11 @@ import { observer } from "mobx-react"; -// hooks import { useParams } from "next/navigation"; +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { ProjectIssueQuickActions } from "@/components/issues"; -import { useUserPermissions } from "@/hooks/store"; - -// components -// types -// constants +// hooks +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseKanBanRoot } from "../base-kanban-root"; export const ProfileIssuesKanBanLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/kanban/roots/project-root.tsx b/apps/web/core/components/issues/issue-layouts/kanban/roots/project-root.tsx index 32f22a459..bcb3a596a 100644 --- a/apps/web/core/components/issues/issue-layouts/kanban/roots/project-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/kanban/roots/project-root.tsx @@ -1,12 +1,11 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// components +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { ProjectIssueQuickActions } from "@/components/issues"; // hooks -import { useUserPermissions } from "@/hooks/store"; -// plane web constants -// local components +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseKanBanRoot } from "../base-kanban-root"; export const KanBanLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/list/base-list-root.tsx b/apps/web/core/components/issues/issue-layouts/list/base-list-root.tsx index 5f0e71f7f..8e9e50be1 100644 --- a/apps/web/core/components/issues/issue-layouts/list/base-list-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/base-list-root.tsx @@ -13,7 +13,8 @@ import { } from "@plane/types"; // constants // hooks -import { useIssues, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; // hooks import { useGroupIssuesDragNDrop } from "@/hooks/use-group-dragndrop"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; diff --git a/apps/web/core/components/issues/issue-layouts/list/block-root.tsx b/apps/web/core/components/issues/issue-layouts/list/block-root.tsx index ca5c45616..67a001233 100644 --- a/apps/web/core/components/issues/issue-layouts/list/block-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/block-root.tsx @@ -12,14 +12,14 @@ import { EIssueServiceType, IIssueDisplayProperties, TIssue, TIssueMap } from "@ // components import { DropIndicator } from "@plane/ui"; import RenderIfVisible from "@/components/core/render-if-visible-HOC"; -import { IssueBlock } from "@/components/issues/issue-layouts/list"; -import { ListLoaderItemRow } from "@/components/ui"; +import { ListLoaderItemRow } from "@/components/ui/loader/layouts/list-layout-loader"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; import { usePlatformOS } from "@/hooks/use-platform-os"; // types import { HIGHLIGHT_CLASS, getIssueBlockId, isIssueNew } from "../utils"; +import { IssueBlock } from "./block"; import { TRenderQuickActions } from "./list-view-types"; type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/list/block.tsx b/apps/web/core/components/issues/issue-layouts/list/block.tsx index 755d46295..d6613b68a 100644 --- a/apps/web/core/components/issues/issue-layouts/list/block.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/block.tsx @@ -12,15 +12,17 @@ import { EIssueServiceType, TIssue, IIssueDisplayProperties, TIssueMap } from "@ import { Spinner, Tooltip, ControlLink, setToast, TOAST_TYPE, Row } from "@plane/ui"; import { cn, generateWorkItemLink } from "@plane/utils"; // components -import { MultipleSelectEntityAction } from "@/components/core"; +import { MultipleSelectEntityAction } from "@/components/core/multiple-select"; import { IssueProperties } from "@/components/issues/issue-layouts/properties"; // helpers // hooks -import { useAppTheme, useIssueDetail, useProject } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; 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"; import { IssueStats } from "@/plane-web/components/issues/issue-layouts/issue-stats"; // types import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC"; diff --git a/apps/web/core/components/issues/issue-layouts/list/blocks-list.tsx b/apps/web/core/components/issues/issue-layouts/list/blocks-list.tsx index 4c84322d1..2a4100e46 100644 --- a/apps/web/core/components/issues/issue-layouts/list/blocks-list.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/blocks-list.tsx @@ -1,11 +1,11 @@ import { FC, MutableRefObject } from "react"; // components import { TIssue, IIssueDisplayProperties, TIssueMap, TGroupedIssues } from "@plane/types"; -import { IssueBlockRoot } from "@/components/issues/issue-layouts/list"; // hooks import { TSelectionHelper } from "@/hooks/use-multiple-select"; // types import { TRenderQuickActions } from "./list-view-types"; +import { IssueBlockRoot } from "./block-root"; interface Props { issueIds: TGroupedIssues | any; diff --git a/apps/web/core/components/issues/issue-layouts/list/default.tsx b/apps/web/core/components/issues/issue-layouts/list/default.tsx index be7e78365..ab00e40c3 100644 --- a/apps/web/core/components/issues/issue-layouts/list/default.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/default.tsx @@ -17,11 +17,11 @@ import { TIssueKanbanFilters, } from "@plane/types"; // components -import { MultipleSelectGroup } from "@/components/core"; +import { MultipleSelectGroup } from "@/components/core/multiple-select"; // hooks import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; // plane web components -import { IssueBulkOperationsRoot } from "@/plane-web/components/issues"; +import { IssueBulkOperationsRoot } from "@/plane-web/components/issues/bulk-operations"; // plane web hooks import { useBulkOperationStatus } from "@/plane-web/hooks/use-bulk-operation-status"; // utils diff --git a/apps/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx b/apps/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx index f107c28b6..2e34570d3 100644 --- a/apps/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/headers/group-by-card.tsx @@ -11,8 +11,9 @@ import { TIssue, ISearchIssueResponse, TIssueGroupByOptions } from "@plane/types import { CustomMenu, TOAST_TYPE, setToast } from "@plane/ui"; // components import { cn } from "@plane/utils"; -import { ExistingIssuesListModal, MultipleSelectGroupAction } from "@/components/core"; -import { CreateUpdateIssueModal } from "@/components/issues"; +import { ExistingIssuesListModal } from "@/components/core/modals/existing-issues-list-modal"; +import { MultipleSelectGroupAction } from "@/components/core/multiple-select"; +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; // constants import { captureClick } from "@/helpers/event-tracker.helper"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; diff --git a/apps/web/core/components/issues/issue-layouts/list/index.ts b/apps/web/core/components/issues/issue-layouts/list/index.ts deleted file mode 100644 index 2171c1873..000000000 --- a/apps/web/core/components/issues/issue-layouts/list/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./roots"; -export * from "./block-root"; -export * from "./block"; -export * from "./roots"; -export * from "./blocks-list"; diff --git a/apps/web/core/components/issues/issue-layouts/list/list-group.tsx b/apps/web/core/components/issues/issue-layouts/list/list-group.tsx index 577a52adc..e5f567d35 100644 --- a/apps/web/core/components/issues/issue-layouts/list/list-group.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/list-group.tsx @@ -4,11 +4,9 @@ import { MutableRefObject, useEffect, useRef, useState } from "react"; import { combine } from "@atlaskit/pragmatic-drag-and-drop/combine"; import { dropTargetForElements } from "@atlaskit/pragmatic-drag-and-drop/element/adapter"; import { observer } from "mobx-react"; -// plane constants +// plane imports import { DRAG_ALLOWED_GROUPS } from "@plane/constants"; -// plane i18n import { useTranslation } from "@plane/i18n"; -// plane ui import { IGroupByColumn, TIssueMap, @@ -20,12 +18,11 @@ import { EIssueLayoutTypes, } from "@plane/types"; import { Row, setToast, TOAST_TYPE } from "@plane/ui"; -// plane utils import { cn } from "@plane/utils"; // components -import { ListLoaderItemRow } from "@/components/ui"; +import { ListLoaderItemRow } from "@/components/ui/loader/layouts/list-layout-loader"; // hooks -import { useProjectState } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state"; import { useIntersectionObserver } from "@/hooks/use-intersection-observer"; import { useIssuesStore } from "@/hooks/use-issue-layout-store"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; diff --git a/apps/web/core/components/issues/issue-layouts/list/roots/archived-issue-root.tsx b/apps/web/core/components/issues/issue-layouts/list/roots/archived-issue-root.tsx index e7c7670ae..8724f4959 100644 --- a/apps/web/core/components/issues/issue-layouts/list/roots/archived-issue-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/roots/archived-issue-root.tsx @@ -1,10 +1,7 @@ import { FC } from "react"; import { observer } from "mobx-react"; -// hooks -import { ArchivedIssueQuickActions } from "@/components/issues"; -// components -// types -// constants +// local imports +import { ArchivedIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseListRoot } from "../base-list-root"; export const ArchivedIssueListLayout: FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/list/roots/cycle-root.tsx b/apps/web/core/components/issues/issue-layouts/list/roots/cycle-root.tsx index a542537dc..4fe718055 100644 --- a/apps/web/core/components/issues/issue-layouts/list/roots/cycle-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/roots/cycle-root.tsx @@ -1,14 +1,15 @@ import React, { useCallback } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// components +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { EIssuesStoreType } from "@plane/types"; -import { CycleIssueQuickActions } from "@/components/issues"; -// constants // hooks -import { useCycle, useIssues, useUserPermissions } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle" +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; // types +import { CycleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseListRoot } from "../base-list-root"; export const CycleListLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/list/roots/draft-issue-root.tsx b/apps/web/core/components/issues/issue-layouts/list/roots/draft-issue-root.tsx index bb037020e..4b3c8c538 100644 --- a/apps/web/core/components/issues/issue-layouts/list/roots/draft-issue-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/roots/draft-issue-root.tsx @@ -1,11 +1,8 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// hooks -import { DraftIssueQuickActions } from "@/components/issues"; -// components -// types -// constants +// local imports +import { DraftIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseListRoot } from "../base-list-root"; export const DraftIssueListLayout: FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/list/roots/index.ts b/apps/web/core/components/issues/issue-layouts/list/roots/index.ts deleted file mode 100644 index aae6f833c..000000000 --- a/apps/web/core/components/issues/issue-layouts/list/roots/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./cycle-root"; -export * from "./module-root"; -export * from "./profile-issues-root"; -export * from "./project-root"; -export * from "./project-view-root"; -export * from "./archived-issue-root"; diff --git a/apps/web/core/components/issues/issue-layouts/list/roots/module-root.tsx b/apps/web/core/components/issues/issue-layouts/list/roots/module-root.tsx index c04be1ac1..fa7b514d0 100644 --- a/apps/web/core/components/issues/issue-layouts/list/roots/module-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/roots/module-root.tsx @@ -1,13 +1,12 @@ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; +// plane imports import { EIssuesStoreType } from "@plane/types"; -// mobx store -import { ModuleIssueQuickActions } from "@/components/issues"; -import { useIssues } from "@/hooks/store"; -// components -// types -// constants +// hooks +import { useIssues } from "@/hooks/store/use-issues"; +// local imports +import { ModuleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseListRoot } from "../base-list-root"; export const ModuleListLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx b/apps/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx index 0ebf46b50..f3ec22595 100644 --- a/apps/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/roots/profile-issues-root.tsx @@ -1,14 +1,11 @@ import { FC } from "react"; import { observer } from "mobx-react"; -// hooks import { useParams } from "next/navigation"; import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { ProjectIssueQuickActions } from "@/components/issues"; -import { useUserPermissions } from "@/hooks/store"; - -// components -// types -// constants +// hooks +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseListRoot } from "../base-list-root"; export const ProfileIssuesListLayout: FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/list/roots/project-root.tsx b/apps/web/core/components/issues/issue-layouts/list/roots/project-root.tsx index bb98b73e1..f976a57a2 100644 --- a/apps/web/core/components/issues/issue-layouts/list/roots/project-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/list/roots/project-root.tsx @@ -1,13 +1,12 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// components +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { ProjectIssueQuickActions } from "@/components/issues"; // hooks -import { useUserPermissions } from "@/hooks/store"; -// plane web constants -// components +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseListRoot } from "../base-list-root"; export const ListLayout: FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/properties/all-properties.tsx b/apps/web/core/components/issues/issue-layouts/properties/all-properties.tsx index 852c5f5a3..62fdec30a 100644 --- a/apps/web/core/components/issues/issue-layouts/properties/all-properties.tsx +++ b/apps/web/core/components/issues/issue-layouts/properties/all-properties.tsx @@ -21,21 +21,22 @@ import { shouldHighlightIssueDueDate, } from "@plane/utils"; // components -import { - EstimateDropdown, - PriorityDropdown, - MemberDropdown, - ModuleDropdown, - CycleDropdown, - StateDropdown, - DateRangeDropdown, - DateDropdown, -} from "@/components/dropdowns"; -// constants +import { CycleDropdown } from "@/components/dropdowns/cycle"; +import { DateDropdown } from "@/components/dropdowns/date"; +import { DateRangeDropdown } from "@/components/dropdowns/date-range"; +import { EstimateDropdown } from "@/components/dropdowns/estimate"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { ModuleDropdown } from "@/components/dropdowns/module/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; // helpers -// hooks import { captureSuccess } from "@/helpers/event-tracker.helper"; -import { useLabel, useIssues, useProjectState, useProject, useProjectEstimates } from "@/hooks/store"; +// hooks +import { useProjectEstimates } from "@/hooks/store/estimates"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useLabel } from "@/hooks/store/use-label"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; import { useAppRouter } from "@/hooks/use-app-router"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/issues/issue-layouts/properties/label-dropdown.tsx b/apps/web/core/components/issues/issue-layouts/properties/label-dropdown.tsx index 354567eaf..8d17dbfe0 100644 --- a/apps/web/core/components/issues/issue-layouts/properties/label-dropdown.tsx +++ b/apps/web/core/components/issues/issue-layouts/properties/label-dropdown.tsx @@ -13,7 +13,8 @@ import { EUserProjectRoles, IIssueLabel } from "@plane/types"; // components import { ComboDropDown } from "@plane/ui"; // hooks -import { useLabel, useUserPermissions } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useUserPermissions } from "@/hooks/store/user"; import { useDropdownKeyDown } from "@/hooks/use-dropdown-key-down"; import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/issues/issue-layouts/properties/labels.tsx b/apps/web/core/components/issues/issue-layouts/properties/labels.tsx index b8f21bfba..473be0e96 100644 --- a/apps/web/core/components/issues/issue-layouts/properties/labels.tsx +++ b/apps/web/core/components/issues/issue-layouts/properties/labels.tsx @@ -14,7 +14,7 @@ import { IIssueLabel } from "@plane/types"; import { Tooltip } from "@plane/ui"; // hooks import { cn } from "@plane/utils"; -import { useLabel } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { LabelDropdown } from "./label-dropdown"; diff --git a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx index 2087a1bdc..9c4dc934d 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/all-issue.tsx @@ -9,15 +9,17 @@ import { ARCHIVABLE_STATE_GROUPS, WORK_ITEM_TRACKER_ELEMENTS } from "@plane/cons import { EIssuesStoreType, TIssue } from "@plane/types"; import { ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useProject, useProjectState } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; -import { IQuickActionProps } from "../list/list-view-types"; // helper +import { ArchiveIssueModal } from "../../archive-issue-modal"; +import { DeleteIssueModal } from "../../delete-issue-modal"; +import { CreateUpdateIssueModal } from "../../issue-modal/modal"; +import { IQuickActionProps } from "../list/list-view-types"; import { useAllIssueMenuItems, MenuItemFactoryProps } from "./helper"; export const AllIssueQuickActions: React.FC = observer((props) => { diff --git a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx index 347a07c1f..d87c78471 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/archived-issue.tsx @@ -8,15 +8,13 @@ import { EUserPermissions, EUserPermissionsLevel, WORK_ITEM_TRACKER_ELEMENTS } f import { EIssuesStoreType } from "@plane/types"; import { ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { DeleteIssueModal } from "@/components/issues"; -// helpers // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useIssues, useUserPermissions } from "@/hooks/store"; -// types +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { DeleteIssueModal } from "../../delete-issue-modal"; import { IQuickActionProps } from "../list/list-view-types"; -// helper import { useArchivedIssueMenuItems, MenuItemFactoryProps } from "./helper"; export const ArchivedIssueQuickActions: React.FC = observer((props) => { diff --git a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx index 055335c8c..af2bd06ff 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/cycle-issue.tsx @@ -14,16 +14,20 @@ import { import { EIssuesStoreType, TIssue } from "@plane/types"; import { ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useIssues, useProject, useProjectState, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useUserPermissions } from "@/hooks/store/user"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; // types -import { IQuickActionProps } from "../list/list-view-types"; // helper +import { ArchiveIssueModal } from "../../archive-issue-modal"; +import { DeleteIssueModal } from "../../delete-issue-modal"; +import { CreateUpdateIssueModal } from "../../issue-modal/modal"; +import { IQuickActionProps } from "../list/list-view-types"; import { useCycleIssueMenuItems, MenuItemFactoryProps } from "./helper"; export const CycleIssueQuickActions: React.FC = observer((props) => { diff --git a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx index 386c5f1e9..8950c491b 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/draft-issue.tsx @@ -9,12 +9,12 @@ import { EUserPermissions, EUserPermissionsLevel, WORK_ITEM_TRACKER_ELEMENTS } f import { EIssuesStoreType, TIssue } from "@plane/types"; import { ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; // local imports +import { DeleteIssueModal } from "../../delete-issue-modal"; +import { CreateUpdateIssueModal } from "../../issue-modal/modal"; import { IQuickActionProps } from "../list/list-view-types"; import { useDraftIssueMenuItems, MenuItemFactoryProps } from "./helper"; diff --git a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/issue-detail.tsx b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/issue-detail.tsx index 5a33febc6..02db31eee 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/issue-detail.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/issue-detail.tsx @@ -14,15 +14,19 @@ import { import { EIssuesStoreType, TIssue } from "@plane/types"; import { ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useIssues, useProject, useProjectState, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useUserPermissions } from "@/hooks/store/user"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; -import { IQuickActionProps } from "../list/list-view-types"; // helper +import { ArchiveIssueModal } from "../../archive-issue-modal"; +import { DeleteIssueModal } from "../../delete-issue-modal"; +import { CreateUpdateIssueModal } from "../../issue-modal/modal"; +import { IQuickActionProps } from "../list/list-view-types"; import { MenuItemFactoryProps, useWorkItemDetailMenuItems } from "./helper"; type TWorkItemDetailQuickActionProps = IQuickActionProps & { diff --git a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx index 5d512ce47..8b5db5b56 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/module-issue.tsx @@ -14,15 +14,19 @@ import { import { EIssuesStoreType, TIssue } from "@plane/types"; import { ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useIssues, useProjectState, useUserPermissions, useProject } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; +import { useUserPermissions } from "@/hooks/store/user"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; -import { IQuickActionProps } from "../list/list-view-types"; // helper +import { ArchiveIssueModal } from "../../archive-issue-modal"; +import { DeleteIssueModal } from "../../delete-issue-modal"; +import { CreateUpdateIssueModal } from "../../issue-modal/modal"; +import { IQuickActionProps } from "../list/list-view-types"; import { useModuleIssueMenuItems, MenuItemFactoryProps } from "./helper"; export const ModuleIssueQuickActions: React.FC = observer((props) => { diff --git a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx index 266ebbe74..a9a719952 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-action-dropdowns/project-issue.tsx @@ -14,15 +14,19 @@ import { import { EIssuesStoreType, TIssue } from "@plane/types"; import { ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { ArchiveIssueModal, CreateUpdateIssueModal, DeleteIssueModal } from "@/components/issues"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useIssues, useProject, useProjectState, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useUserPermissions } from "@/hooks/store/user"; // plane-web components import { DuplicateWorkItemModal } from "@/plane-web/components/issues/issue-layouts/quick-action-dropdowns"; -import { IQuickActionProps } from "../list/list-view-types"; // helper +import { ArchiveIssueModal } from "../../archive-issue-modal"; +import { DeleteIssueModal } from "../../delete-issue-modal"; +import { CreateUpdateIssueModal } from "../../issue-modal/modal"; +import { IQuickActionProps } from "../list/list-view-types"; import { useProjectIssueMenuItems, MenuItemFactoryProps } from "./helper"; export const ProjectIssueQuickActions: React.FC = observer((props) => { diff --git a/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx b/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx index 00ae3585d..bda83937f 100644 --- a/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx +++ b/apps/web/core/components/issues/issue-layouts/quick-add/root.tsx @@ -5,22 +5,18 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { useForm, UseFormRegister } from "react-hook-form"; import { PlusIcon } from "lucide-react"; -// plane constants +// plane imports import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; -// i18n import { useTranslation } from "@plane/i18n"; import { IProject, TIssue, EIssueLayoutTypes } from "@plane/types"; -// ui import { setPromiseToast } from "@plane/ui"; import { cn, createIssuePayload } from "@plane/utils"; -// components -import { CreateIssueToastActionItems } from "@/components/issues"; -// constants // helpers -// hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -// plane web components -import { QuickAddIssueFormRoot } from "@/plane-web/components/issues"; +// plane web imports +import { QuickAddIssueFormRoot } from "@/plane-web/components/issues/quick-add"; +// local imports +import { CreateIssueToastActionItems } from "../../create-issue-toast-action-items"; export type TQuickAddIssueForm = { ref: React.RefObject; diff --git a/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx index d9a9fbf8b..5b109d432 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/all-issue-layout-root.tsx @@ -7,9 +7,10 @@ import useSWR from "swr"; import { EIssueFilterType, ISSUE_DISPLAY_FILTERS_BY_PAGE } from "@plane/constants"; import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; // components -import { EmptyState } from "@/components/common"; +import { EmptyState } from "@/components/common/empty-state"; import { WorkspaceActiveLayout } from "@/components/views/helper"; -import { useGlobalView, useIssues } from "@/hooks/store"; +import { useGlobalView } from "@/hooks/store/use-global-view" +import { useIssues } from "@/hooks/store/use-issues"; import { useAppRouter } from "@/hooks/use-app-router"; import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-properties"; // store diff --git a/apps/web/core/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx index b96afb599..1a16dc42a 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/archived-issue-layout-root.tsx @@ -3,13 +3,15 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; import { EIssuesStoreType } from "@plane/types"; -// mobx store // components -import { LogoSpinner } from "@/components/common"; -import { ArchivedIssueListLayout, ArchivedIssueAppliedFiltersRoot, IssuePeekOverview } from "@/components/issues"; -// ui -import { useIssues } from "@/hooks/store"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +// hooks +import { useIssues } from "@/hooks/store/use-issues"; import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; +// local imports +import { IssuePeekOverview } from "../../peek-overview"; +import { ArchivedIssueAppliedFiltersRoot } from "../filters"; +import { ArchivedIssueListLayout } from "../list/roots/archived-issue-root"; export const ArchivedIssueLayoutRoot: React.FC = observer(() => { // router diff --git a/apps/web/core/components/issues/issue-layouts/roots/cycle-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/cycle-layout-root.tsx index 4ffba95c9..c924a3da3 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/cycle-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/cycle-layout-root.tsx @@ -6,21 +6,21 @@ import useSWR from "swr"; // plane constants import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; // components -import { LogoSpinner } from "@/components/common"; -import { TransferIssues, TransferIssuesModal } from "@/components/cycles"; -import { - CycleAppliedFiltersRoot, - CycleCalendarLayout, - BaseGanttRoot, - CycleKanBanLayout, - CycleListLayout, - CycleSpreadsheetLayout, - IssuePeekOverview, -} from "@/components/issues"; -// constants +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { TransferIssues } from "@/components/cycles/transfer-issues"; +import { TransferIssuesModal } from "@/components/cycles/transfer-issues-modal"; // hooks -import { useCycle, useIssues } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle" +import { useIssues } from "@/hooks/store/use-issues"; import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; +// local imports +import { IssuePeekOverview } from "../../peek-overview"; +import { CycleCalendarLayout } from "../calendar/roots/cycle-root"; +import { CycleAppliedFiltersRoot } from "../filters"; +import { BaseGanttRoot } from "../gantt"; +import { CycleKanBanLayout } from "../kanban/roots/cycle-root"; +import { CycleListLayout } from "../list/roots/cycle-root"; +import { CycleSpreadsheetLayout } from "../spreadsheet/roots/cycle-root"; const CycleIssueLayout = (props: { activeLayout: EIssueLayoutTypes | undefined; diff --git a/apps/web/core/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx index 9de55b2ec..56254ddb8 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/draft-issue-layout-root.tsx @@ -5,10 +5,10 @@ import useSWR from "swr"; // plane constants import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; // components -import { LogoSpinner } from "@/components/common"; +import { LogoSpinner } from "@/components/common/logo-spinner"; import { IssuePeekOverview } from "@/components/issues/peek-overview"; // hooks -import { useIssues } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; // components import { DraftIssueAppliedFiltersRoot } from "../filters/applied-filters/roots/draft-issue"; diff --git a/apps/web/core/components/issues/issue-layouts/roots/index.ts b/apps/web/core/components/issues/issue-layouts/roots/index.ts deleted file mode 100644 index 727e3e393..000000000 --- a/apps/web/core/components/issues/issue-layouts/roots/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./project-layout-root"; -export * from "./module-layout-root"; -export * from "./cycle-layout-root"; -export * from "./project-view-layout-root"; -export * from "./archived-issue-layout-root"; -export * from "./draft-issue-layout-root"; -export * from "./all-issue-layout-root"; diff --git a/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx index 14e20ae53..158a5daa6 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/module-layout-root.tsx @@ -2,24 +2,22 @@ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; -// plane constants +// plane imports import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; -// components import { Row, ERowVariant } from "@plane/ui"; -import { LogoSpinner } from "@/components/common"; -import { - IssuePeekOverview, - ModuleAppliedFiltersRoot, - ModuleCalendarLayout, - BaseGanttRoot, - ModuleKanBanLayout, - ModuleListLayout, - ModuleSpreadsheetLayout, -} from "@/components/issues"; -// constants -import { useIssues } from "@/hooks/store"; +// components +import { LogoSpinner } from "@/components/common/logo-spinner"; +// hooks +import { useIssues } from "@/hooks/store/use-issues"; import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; -// types +// local imports +import { IssuePeekOverview } from "../../peek-overview"; +import { ModuleCalendarLayout } from "../calendar/roots/module-root"; +import { ModuleAppliedFiltersRoot } from "../filters"; +import { BaseGanttRoot } from "../gantt"; +import { ModuleKanBanLayout } from "../kanban/roots/module-root"; +import { ModuleListLayout } from "../list/roots/module-root"; +import { ModuleSpreadsheetLayout } from "../spreadsheet/roots/module-root"; const ModuleIssueLayout = (props: { activeLayout: EIssueLayoutTypes | undefined; moduleId: string }) => { switch (props.activeLayout) { diff --git a/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx index 2d1be0cc2..d2b789ce6 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx @@ -8,19 +8,18 @@ import useSWR from "swr"; import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; // components import { Spinner } from "@plane/ui"; -import { LogoSpinner } from "@/components/common"; -import { - ListLayout, - CalendarLayout, - BaseGanttRoot, - KanBanLayout, - ProjectAppliedFiltersRoot, - ProjectSpreadsheetLayout, - IssuePeekOverview, -} from "@/components/issues"; +import { LogoSpinner } from "@/components/common/logo-spinner"; // hooks -import { useIssues } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues"; import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; +// local imports +import { IssuePeekOverview } from "../../peek-overview"; +import { CalendarLayout } from "../calendar/roots/project-root"; +import { ProjectAppliedFiltersRoot } from "../filters"; +import { BaseGanttRoot } from "../gantt"; +import { KanBanLayout } from "../kanban/roots/project-root"; +import { ListLayout } from "../list/roots/project-root"; +import { ProjectSpreadsheetLayout } from "../spreadsheet/roots/project-root"; const ProjectIssueLayout = (props: { activeLayout: EIssueLayoutTypes | undefined }) => { switch (props.activeLayout) { diff --git a/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx b/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx index b6bf4755b..050cfc056 100644 --- a/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/roots/project-view-layout-root.tsx @@ -5,18 +5,18 @@ import useSWR from "swr"; // plane constants import { EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; // components -import { LogoSpinner } from "@/components/common"; -import { - IssuePeekOverview, - ProjectViewAppliedFiltersRoot, - ProjectViewCalendarLayout, - BaseGanttRoot, - ProjectViewKanBanLayout, - ProjectViewListLayout, - ProjectViewSpreadsheetLayout, -} from "@/components/issues"; -import { useIssues } from "@/hooks/store"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +// hooks +import { useIssues } from "@/hooks/store/use-issues"; import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; +// local imports +import { IssuePeekOverview } from "../../peek-overview"; +import { ProjectViewCalendarLayout } from "../calendar/roots/project-view-root"; +import { ProjectViewAppliedFiltersRoot } from "../filters"; +import { BaseGanttRoot } from "../gantt"; +import { ProjectViewKanBanLayout } from "../kanban/roots/project-view-root"; +import { ProjectViewListLayout } from "../list/roots/project-view-root"; +import { ProjectViewSpreadsheetLayout } from "../spreadsheet/roots/project-view-root"; // types const ProjectViewIssueLayout = (props: { activeLayout: EIssueLayoutTypes | undefined; viewId: string }) => { diff --git a/apps/web/core/components/issues/issue-layouts/save-filter-view.tsx b/apps/web/core/components/issues/issue-layouts/save-filter-view.tsx index 524391dba..7c25038b3 100644 --- a/apps/web/core/components/issues/issue-layouts/save-filter-view.tsx +++ b/apps/web/core/components/issues/issue-layouts/save-filter-view.tsx @@ -4,7 +4,7 @@ import { FC, useState } from "react"; import { IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueFilterOptions } from "@plane/types"; import { Button } from "@plane/ui"; // components -import { CreateUpdateProjectViewModal } from "@/components/views"; +import { CreateUpdateProjectViewModal } from "@/components/views/modal"; interface ISaveFilterView { workspaceSlug: string; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx index c3ddad73e..7e61fb3aa 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/base-spreadsheet-root.tsx @@ -5,7 +5,8 @@ import { useParams } from "next/navigation"; import { ALL_ISSUES, EIssueFilterType, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { EIssuesStoreType, IIssueDisplayFilterOptions, EIssueLayoutTypes } from "@plane/types"; // hooks -import { useIssues, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { useIssuesActions } from "@/hooks/use-issues-actions"; // local imports diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx index e6e54fcc3..4b91e74a5 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/assignee-column.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // types import { TIssue } from "@plane/types"; // components -import { MemberDropdown } from "@/components/dropdowns"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; type Props = { issue: TIssue; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx index fc923331b..adbc221fc 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/cycle-column.tsx @@ -5,7 +5,7 @@ import { useParams } from "next/navigation"; import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { TIssue } from "@plane/types"; // components -import { CycleDropdown } from "@/components/dropdowns"; +import { CycleDropdown } from "@/components/dropdowns/cycle"; // hooks import { captureSuccess } from "@/helpers/event-tracker.helper"; import { useIssuesStore } from "@/hooks/use-issue-layout-store"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx index 98612b46f..5d8246b70 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/due-date-column.tsx @@ -5,10 +5,10 @@ import { CalendarCheck2 } from "lucide-react"; import { TIssue } from "@plane/types"; import { cn, getDate, renderFormattedPayloadDate, shouldHighlightIssueDueDate } from "@plane/utils"; // components -import { DateDropdown } from "@/components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns/date"; // helpers // hooks -import { useProjectState } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state"; type Props = { issue: TIssue; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx index d63b49da3..47633a7c1 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/estimate-column.tsx @@ -2,7 +2,7 @@ import { observer } from "mobx-react"; // types import { TIssue } from "@plane/types"; // components -import { EstimateDropdown } from "@/components/dropdowns"; +import { EstimateDropdown } from "@/components/dropdowns/estimate"; type Props = { issue: TIssue; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx index 49de4064a..b3dbec5f9 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/label-column.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // types import { TIssue } from "@plane/types"; // hooks -import { useLabel } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label"; // components import { IssuePropertyLabels } from "../../properties"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx index b30f7716f..dcd1c03e5 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/module-column.tsx @@ -6,7 +6,7 @@ import { useParams } from "next/navigation"; import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { TIssue } from "@plane/types"; // components -import { ModuleDropdown } from "@/components/dropdowns"; +import { ModuleDropdown } from "@/components/dropdowns/module/dropdown"; // constants // hooks import { captureSuccess } from "@/helpers/event-tracker.helper"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx index a23236f48..89f594cea 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/priority-column.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // types import { TIssue } from "@plane/types"; // components -import { PriorityDropdown } from "@/components/dropdowns"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; type Props = { issue: TIssue; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx index 397e68905..fac7bfdc3 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/start-date-column.tsx @@ -5,7 +5,7 @@ import { CalendarClock } from "lucide-react"; import { TIssue } from "@plane/types"; // components import { getDate, renderFormattedPayloadDate } from "@plane/utils"; -import { DateDropdown } from "@/components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns/date"; // helpers type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx index 6a2593836..e3c64df45 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/columns/state-column.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; // types import { TIssue } from "@plane/types"; // components -import { StateDropdown } from "@/components/dropdowns"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; type Props = { issue: TIssue; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/index.ts b/apps/web/core/components/issues/issue-layouts/spreadsheet/index.ts deleted file mode 100644 index 75d40695f..000000000 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./columns"; -export * from "./roots"; -export * from "./spreadsheet-view"; -export * from "./spreadsheet-header-column"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx index 8594e72fa..750dfb35a 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/issue-row.tsx @@ -13,16 +13,18 @@ import { EIssueServiceType, IIssueDisplayProperties, TIssue } from "@plane/types import { ControlLink, Row, Tooltip } from "@plane/ui"; import { cn, generateWorkItemLink } from "@plane/utils"; // components -import { MultipleSelectEntityAction } from "@/components/core"; +import { MultipleSelectEntityAction } from "@/components/core/multiple-select"; import RenderIfVisible from "@/components/core/render-if-visible-HOC"; // helper // hooks -import { useIssueDetail, useIssues, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useIssues } from "@/hooks/store/use-issues"; +import { useProject } from "@/hooks/store/use-project"; import useIssuePeekOverviewRedirection from "@/hooks/use-issue-peek-overview-redirection"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; 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"; // local components import { TRenderQuickActions } from "../list/list-view-types"; import { isIssueNew } from "../utils"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx index 707a114ce..83eb1a623 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/cycle-root.tsx @@ -3,7 +3,8 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // hooks import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { useCycle, useUserPermissions } from "@/hooks/store"; +import { useCycle } from "@/hooks/store/use-cycle" +import { useUserPermissions } from "@/hooks/store/user"; // components import { CycleIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseSpreadsheetRoot } from "../base-spreadsheet-root"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/index.ts b/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/index.ts deleted file mode 100644 index 10037416c..000000000 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./cycle-root"; -export * from "./module-root"; -export * from "./project-root"; -export * from "./project-view-root"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx index d79059863..b949cc542 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/project-root.tsx @@ -1,13 +1,12 @@ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// components +// plane imports import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; -import { ProjectIssueQuickActions } from "@/components/issues"; // hooks -import { useUserPermissions } from "@/hooks/store"; -// plane web constants -// local components +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { ProjectIssueQuickActions } from "../../quick-action-dropdowns"; import { BaseSpreadsheetRoot } from "../base-spreadsheet-root"; export const ProjectSpreadsheetLayout: React.FC = observer(() => { diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/workspace-root.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/workspace-root.tsx index b78f95881..a957a418b 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/workspace-root.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/roots/workspace-root.tsx @@ -4,11 +4,11 @@ import { observer } from "mobx-react"; import { ALL_ISSUES, EIssueFilterType, EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { IIssueDisplayFilterOptions, EIssuesStoreType, EIssueLayoutTypes } from "@plane/types"; // components -import { SpreadsheetView } from "@/components/issues/issue-layouts"; import { AllIssueQuickActions } from "@/components/issues/issue-layouts/quick-action-dropdowns"; -import { SpreadsheetLayoutLoader } from "@/components/ui"; +import { SpreadsheetLayoutLoader } from "@/components/ui/loader/layouts/spreadsheet-layout-loader"; // hooks -import { useIssues, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; import { useIssuesActions } from "@/hooks/use-issues-actions"; import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-properties"; @@ -16,6 +16,7 @@ import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-propert import { IssuePeekOverview } from "../../../peek-overview"; import { IssueLayoutHOC } from "../../issue-layout-HOC"; import { TRenderQuickActions } from "../../list/list-view-types"; +import { SpreadsheetView } from "../spreadsheet-view"; type Props = { isDefaultView: boolean; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx index 1a68aba4d..a378f32ab 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-header.tsx @@ -7,11 +7,10 @@ import { IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/type // components import { Row } from "@plane/ui"; import { cn } from "@plane/utils"; -import { MultipleSelectGroupAction } from "@/components/core"; -import { SpreadsheetHeaderColumn } from "@/components/issues/issue-layouts"; -// helpers +import { MultipleSelectGroupAction } from "@/components/core/multiple-select"; // hooks import { TSelectionHelper } from "@/hooks/use-multiple-select"; +import { SpreadsheetHeaderColumn } from "./spreadsheet-header-column"; interface Props { displayProperties: IIssueDisplayProperties; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx index 7f6e5669a..a1b4bf9c8 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-table.tsx @@ -1,14 +1,15 @@ import { MutableRefObject, useCallback, useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; -// types +// plane imports import { IIssueDisplayFilterOptions, IIssueDisplayProperties, TIssue } from "@plane/types"; -import { SpreadsheetIssueRowLoader } from "@/components/ui/loader"; -//hooks +// components +import { SpreadsheetIssueRowLoader } from "@/components/ui/loader/layouts/spreadsheet-layout-loader"; +// hooks import { useIntersectionObserver } from "@/hooks/use-intersection-observer"; import { useIssuesStore } from "@/hooks/use-issue-layout-store"; import { TSelectionHelper } from "@/hooks/use-multiple-select"; import { useTableKeyboardNavigation } from "@/hooks/use-table-keyboard-navigation"; -// components +// local imports import { TRenderQuickActions } from "../list/list-view-types"; import { getDisplayPropertiesCount } from "../utils"; import { SpreadsheetIssueRow } from "./issue-row"; diff --git a/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx b/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx index 8f348c717..6794a04d9 100644 --- a/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx +++ b/apps/web/core/components/issues/issue-layouts/spreadsheet/spreadsheet-view.tsx @@ -5,17 +5,17 @@ import { SPREADSHEET_SELECT_GROUP, SPREADSHEET_PROPERTY_LIST } from "@plane/cons // types import { TIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties, EIssueLayoutTypes } from "@plane/types"; // components -import { LogoSpinner } from "@/components/common"; -import { MultipleSelectGroup } from "@/components/core"; -import { QuickAddIssueRoot, SpreadsheetAddIssueButton } from "@/components/issues"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { MultipleSelectGroup } from "@/components/core/multiple-select"; // hooks -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; // plane web components -import { IssueBulkOperationsRoot } from "@/plane-web/components/issues"; +import { IssueBulkOperationsRoot } from "@/plane-web/components/issues/bulk-operations"; // plane web hooks import { useBulkOperationStatus } from "@/plane-web/hooks/use-bulk-operation-status"; -// types -import { TRenderQuickActions } from "../list/list-view-types"; +// local imports +import type { TRenderQuickActions } from "../list/list-view-types"; +import { QuickAddIssueRoot, SpreadsheetAddIssueButton } from "../quick-add"; import { SpreadsheetTable } from "./spreadsheet-table"; type Props = { diff --git a/apps/web/core/components/issues/issue-layouts/utils.tsx b/apps/web/core/components/issues/issue-layouts/utils.tsx index 83943f84d..a4c90897c 100644 --- a/apps/web/core/components/issues/issue-layouts/utils.tsx +++ b/apps/web/core/components/issues/issue-layouts/utils.tsx @@ -33,7 +33,7 @@ import { import { Avatar, CycleGroupIcon, DiceIcon, ISvgIcons, PriorityIcon, StateGroupIcon } from "@plane/ui"; import { renderFormattedDate, getFileURL } from "@plane/utils"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; // helpers // store import { store } from "@/lib/store-context"; diff --git a/apps/web/core/components/issues/issue-modal/base.tsx b/apps/web/core/components/issues/issue-modal/base.tsx index b4a01c56d..ed1351669 100644 --- a/apps/web/core/components/issues/issue-modal/base.tsx +++ b/apps/web/core/components/issues/issue-modal/base.tsx @@ -8,8 +8,6 @@ import { WORK_ITEM_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, TBaseIssue, TIssue } from "@plane/types"; import { EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui"; -// components -import { CreateIssueToastActionItems, IssuesModalProps } from "@/components/issues"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; import { useIssueModal } from "@/hooks/context/use-issue-modal"; @@ -23,9 +21,11 @@ import { useIssuesActions } from "@/hooks/use-issues-actions"; // services import { FileService } from "@/services/file.service"; const fileService = new FileService(); -// local components +// local imports +import { CreateIssueToastActionItems } from "../create-issue-toast-action-items"; import { DraftIssueLayout } from "./draft-issue-layout"; import { type IssueFormProps, IssueFormRoot } from "./form"; +import type { IssuesModalProps } from "./modal"; export const CreateUpdateIssueModalBase: React.FC = observer((props) => { const { diff --git a/apps/web/core/components/issues/issue-modal/components/default-properties.tsx b/apps/web/core/components/issues/issue-modal/components/default-properties.tsx index 20eb13a4c..6b3c060d7 100644 --- a/apps/web/core/components/issues/issue-modal/components/default-properties.tsx +++ b/apps/web/core/components/issues/issue-modal/components/default-properties.tsx @@ -13,23 +13,23 @@ import { ISearchIssueResponse, TIssue } from "@plane/types"; import { CustomMenu } from "@plane/ui"; import { getDate, renderFormattedPayloadDate, getTabIndex } from "@plane/utils"; // components -import { - CycleDropdown, - DateDropdown, - EstimateDropdown, - ModuleDropdown, - PriorityDropdown, - MemberDropdown, - StateDropdown, -} from "@/components/dropdowns"; -import { ParentIssuesListModal } from "@/components/issues"; +import { CycleDropdown } from "@/components/dropdowns/cycle"; +import { DateDropdown } from "@/components/dropdowns/date"; +import { EstimateDropdown } from "@/components/dropdowns/estimate"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { ModuleDropdown } from "@/components/dropdowns/module/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; +import { ParentIssuesListModal } from "@/components/issues/parent-issues-list-modal"; import { IssueLabelSelect } from "@/components/issues/select"; // helpers // hooks -import { useProjectEstimates, useProject, useUserPermissions } from "@/hooks/store"; +import { useProjectEstimates } from "@/hooks/store/estimates"; +import { useProject } from "@/hooks/store/use-project"; +import { useUserPermissions } from "@/hooks/store/user"; 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"; type TIssueDefaultPropertiesProps = { control: Control; diff --git a/apps/web/core/components/issues/issue-modal/components/description-editor.tsx b/apps/web/core/components/issues/issue-modal/components/description-editor.tsx index 8e0bc68f5..83e2f3139 100644 --- a/apps/web/core/components/issues/issue-modal/components/description-editor.tsx +++ b/apps/web/core/components/issues/issue-modal/components/description-editor.tsx @@ -12,11 +12,13 @@ import { EFileAssetType, TIssue } from "@plane/types"; import { Loader, setToast, TOAST_TYPE } from "@plane/ui"; import { getDescriptionPlaceholderI18n, getTabIndex } from "@plane/utils"; // components -import { GptAssistantPopover } from "@/components/core"; -import { RichTextEditor } from "@/components/editor"; +import { GptAssistantPopover } from "@/components/core/modals/gpt-assistant-popover"; +import { RichTextEditor } from "@/components/editor/rich-text"; // helpers // hooks -import { useEditorAsset, useInstance, useWorkspace } from "@/hooks/store"; +import { useEditorAsset } from "@/hooks/store/use-editor-asset" +import { useInstance } from "@/hooks/store/use-instance" +import { useWorkspace } from "@/hooks/store/use-workspace"; import useKeypress from "@/hooks/use-keypress"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web services diff --git a/apps/web/core/components/issues/issue-modal/components/parent-tag.tsx b/apps/web/core/components/issues/issue-modal/components/parent-tag.tsx index 10d936001..6c9953104 100644 --- a/apps/web/core/components/issues/issue-modal/components/parent-tag.tsx +++ b/apps/web/core/components/issues/issue-modal/components/parent-tag.tsx @@ -13,7 +13,7 @@ import { getTabIndex } from "@plane/utils"; // hooks 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"; type TIssueParentTagProps = { control: Control; diff --git a/apps/web/core/components/issues/issue-modal/components/project-select.tsx b/apps/web/core/components/issues/issue-modal/components/project-select.tsx index ca978700d..e68910610 100644 --- a/apps/web/core/components/issues/issue-modal/components/project-select.tsx +++ b/apps/web/core/components/issues/issue-modal/components/project-select.tsx @@ -9,7 +9,7 @@ import { ETabIndices } from "@plane/constants"; import { TIssue } from "@plane/types"; import { getTabIndex } from "@plane/utils"; // components -import { ProjectDropdown } from "@/components/dropdowns"; +import { ProjectDropdown } from "@/components/dropdowns/project/dropdown"; // hooks import { useIssueModal } from "@/hooks/context/use-issue-modal"; import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/issues/issue-modal/context/issue-modal-context.tsx b/apps/web/core/components/issues/issue-modal/context/issue-modal-context.tsx index 13b608fe9..4fe330004 100644 --- a/apps/web/core/components/issues/issue-modal/context/issue-modal-context.tsx +++ b/apps/web/core/components/issues/issue-modal/context/issue-modal-context.tsx @@ -1,11 +1,11 @@ import { createContext } from "react"; // ce imports -// react-hook-form -import { TIssueFields } from "ce/components/issues"; +import { TIssueFields } from "ce/components/issues/issue-modal"; import { UseFormReset, UseFormWatch } from "react-hook-form"; // plane imports -import { EditorRefApi } from "@plane/editor"; -import { ISearchIssueResponse, TIssue } from "@plane/types"; +import type { EditorRefApi } from "@plane/editor"; +import type { ISearchIssueResponse, TIssue } from "@plane/types"; +// plane web imports import { TIssuePropertyValues, TIssuePropertyValueErrors } from "@/plane-web/types/issue-types"; export type TPropertyValuesValidationProps = { diff --git a/apps/web/core/components/issues/issue-modal/draft-issue-layout.tsx b/apps/web/core/components/issues/issue-modal/draft-issue-layout.tsx index cc2ad0c27..b9d4e5122 100644 --- a/apps/web/core/components/issues/issue-modal/draft-issue-layout.tsx +++ b/apps/web/core/components/issues/issue-modal/draft-issue-layout.tsx @@ -12,13 +12,13 @@ import type { TIssue } from "@plane/types"; import { TOAST_TYPE, setToast } from "@plane/ui"; // components import { isEmptyHtmlString } from "@plane/utils"; -import { ConfirmIssueDiscard } from "@/components/issues"; // helpers -// hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; +// hooks import { useIssueModal } from "@/hooks/context/use-issue-modal"; -import { useWorkspaceDraftIssues } from "@/hooks/store"; -// local components +import { useWorkspaceDraftIssues } from "@/hooks/store/workspace-draft"; +// local imports +import { ConfirmIssueDiscard } from "../confirm-issue-discard"; import { IssueFormRoot, type IssueFormProps } from "./form"; export interface DraftIssueProps extends IssueFormProps { diff --git a/apps/web/core/components/issues/issue-modal/form.tsx b/apps/web/core/components/issues/issue-modal/form.tsx index 8c20e2763..2310961a8 100644 --- a/apps/web/core/components/issues/issue-modal/form.tsx +++ b/apps/web/core/components/issues/issue-modal/form.tsx @@ -6,7 +6,7 @@ import { useParams } from "next/navigation"; import { FormProvider, useForm } from "react-hook-form"; // editor import { ETabIndices, DEFAULT_WORK_ITEM_FORM_VALUES } from "@plane/constants"; -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // i18n import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, TIssue, TWorkspaceDraftIssue } from "@plane/types"; @@ -32,7 +32,11 @@ import { CreateLabelModal } from "@/components/labels"; // helpers // hooks import { useIssueModal } from "@/hooks/context/use-issue-modal"; -import { useIssueDetail, useLabel, useProject, useProjectState, useWorkspaceDraftIssues } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useLabel } from "@/hooks/store/use-label" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useWorkspaceDraftIssues } from "@/hooks/store/workspace-draft"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { useProjectIssueProperties } from "@/hooks/use-project-issue-properties"; // plane web imports diff --git a/apps/web/core/components/issues/issue-modal/index.ts b/apps/web/core/components/issues/issue-modal/index.ts deleted file mode 100644 index 489922949..000000000 --- a/apps/web/core/components/issues/issue-modal/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./form"; -export * from "./base"; -export * from "./draft-issue-layout"; -export * from "./modal"; -export * from "./context"; diff --git a/apps/web/core/components/issues/issue-modal/modal.tsx b/apps/web/core/components/issues/issue-modal/modal.tsx index 303eac87d..cec18f871 100644 --- a/apps/web/core/components/issues/issue-modal/modal.tsx +++ b/apps/web/core/components/issues/issue-modal/modal.tsx @@ -5,10 +5,9 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // plane imports import { EIssuesStoreType, TIssue } from "@plane/types"; -// components -import { CreateUpdateIssueModalBase } from "@/components/issues"; // plane web imports -import { IssueModalProvider } from "@/plane-web/components/issues"; +import { IssueModalProvider } from "@/plane-web/components/issues/issue-modal/provider"; +import { CreateUpdateIssueModalBase } from "./base"; export interface IssuesModalProps { data?: Partial; diff --git a/apps/web/core/components/issues/parent-issues-list-modal.tsx b/apps/web/core/components/issues/parent-issues-list-modal.tsx index 64f013e0f..a0c39a0f5 100644 --- a/apps/web/core/components/issues/parent-issues-list-modal.tsx +++ b/apps/web/core/components/issues/parent-issues-list-modal.tsx @@ -14,13 +14,13 @@ import { ISearchIssueResponse } from "@plane/types"; import { Loader } from "@plane/ui"; import { generateWorkItemLink, getTabIndex } from "@plane/utils"; // components -import { IssueSearchModalEmptyState } from "@/components/core"; +import { IssueSearchModalEmptyState } from "@/components/core/modals/issue-search-modal-empty-state"; // helpers // hooks 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"; diff --git a/apps/web/core/components/issues/peek-overview/error.tsx b/apps/web/core/components/issues/peek-overview/error.tsx index f0b8cec49..72d4dd319 100644 --- a/apps/web/core/components/issues/peek-overview/error.tsx +++ b/apps/web/core/components/issues/peek-overview/error.tsx @@ -4,7 +4,7 @@ import { FC } from "react"; import { MoveRight } from "lucide-react"; import { Tooltip } from "@plane/ui"; // components -import { EmptyState } from "@/components/common"; +import { EmptyState } from "@/components/common/empty-state"; // hooks import { usePlatformOS } from "@/hooks/use-platform-os"; // images diff --git a/apps/web/core/components/issues/peek-overview/header.tsx b/apps/web/core/components/issues/peek-overview/header.tsx index 5081a1ae2..1183b556a 100644 --- a/apps/web/core/components/issues/peek-overview/header.tsx +++ b/apps/web/core/components/issues/peek-overview/header.tsx @@ -18,16 +18,19 @@ import { setToast, } from "@plane/ui"; import { copyUrlToClipboard, generateWorkItemLink } from "@plane/utils"; -// components -import { IssueSubscription, NameDescriptionUpdateStatus, WorkItemDetailQuickActions } from "@/components/issues"; -import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; // helpers -// store hooks - -import { useIssueDetail, useIssues, useProject, useUser } from "@/hooks/store"; -import { useAppRouter } from "@/hooks/use-app-router"; +import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useIssues } from "@/hooks/store/use-issues" +import { useProject } from "@/hooks/store/use-project" +import { useUser } from "@/hooks/store/user"; // hooks import { usePlatformOS } from "@/hooks/use-platform-os"; +// local imports +import { IssueSubscription } from "../issue-detail/subscription"; +import { WorkItemDetailQuickActions } from "../issue-layouts/quick-action-dropdowns"; +import { NameDescriptionUpdateStatus } from "../issue-update-status"; + export type TPeekModes = "side-peek" | "modal" | "full-screen"; const PEEK_OPTIONS: { key: TPeekModes; icon: any; i18n_title: string }[] = [ diff --git a/apps/web/core/components/issues/peek-overview/index.ts b/apps/web/core/components/issues/peek-overview/index.ts index 3e0d56558..1efe34c51 100644 --- a/apps/web/core/components/issues/peek-overview/index.ts +++ b/apps/web/core/components/issues/peek-overview/index.ts @@ -1,8 +1 @@ -export * from "./header"; -export * from "./issue-detail"; -export * from "./properties"; export * from "./root"; -export * from "./view"; - -export * from "./loader"; -export * from "./error"; diff --git a/apps/web/core/components/issues/peek-overview/issue-detail.tsx b/apps/web/core/components/issues/peek-overview/issue-detail.tsx index 6873da488..fc3df1358 100644 --- a/apps/web/core/components/issues/peek-overview/issue-detail.tsx +++ b/apps/web/core/components/issues/peek-overview/issue-detail.tsx @@ -2,25 +2,28 @@ import { FC, useEffect, useRef } from "react"; import { observer } from "mobx-react"; // plane imports -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; import { TNameDescriptionLoader } from "@plane/types"; // components import { getTextContent } from "@plane/utils"; import { DescriptionVersionsRoot } from "@/components/core/description-versions"; -import { IssueParentDetail, TIssueOperations } from "@/components/issues"; -// helpers // hooks -import { useIssueDetail, useMember, useProject, useUser } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useMember } from "@/hooks/store/use-member"; +import { useProject } from "@/hooks/store/use-project"; +import { useUser } from "@/hooks/store/user"; import useReloadConfirmations from "@/hooks/use-reload-confirmation"; // plane web components import { DeDupeIssuePopoverRoot } from "@/plane-web/components/de-dupe"; -import { IssueTypeSwitcher } from "@/plane-web/components/issues"; +import { IssueTypeSwitcher } from "@/plane-web/components/issues/issue-details/issue-type-switcher"; // plane web hooks import { useDebouncedDuplicateIssues } from "@/plane-web/hooks/use-debounced-duplicate-issues"; // services import { WorkItemVersionService } from "@/services/issue"; // local components import { IssueDescriptionInput } from "../description-input"; +import type { TIssueOperations } from "../issue-detail"; +import { IssueParentDetail } from "../issue-detail/parent"; import { IssueReaction } from "../issue-detail/reactions"; import { IssueTitleInput } from "../title-input"; // services init diff --git a/apps/web/core/components/issues/peek-overview/properties.tsx b/apps/web/core/components/issues/peek-overview/properties.tsx index 41921cf56..25a33a221 100644 --- a/apps/web/core/components/issues/peek-overview/properties.tsx +++ b/apps/web/core/components/issues/peek-overview/properties.tsx @@ -9,20 +9,25 @@ import { useTranslation } from "@plane/i18n"; import { DiceIcon, DoubleCircleIcon, ContrastIcon } from "@plane/ui"; import { cn, getDate, renderFormattedPayloadDate, shouldHighlightIssueDueDate } from "@plane/utils"; // components -import { - DateDropdown, - EstimateDropdown, - PriorityDropdown, - MemberDropdown, - StateDropdown, -} from "@/components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns/date"; +import { EstimateDropdown } from "@/components/dropdowns/estimate"; import { ButtonAvatars } from "@/components/dropdowns/member/avatar"; -import { IssueCycleSelect, IssueModuleSelect, IssueLabel, TIssueOperations } from "@/components/issues"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; // helpers -import { useIssueDetail, useMember, useProject, useProjectState } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useMember } from "@/hooks/store/use-member"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectState } from "@/hooks/store/use-project-state"; // plane web components -import { IssueParentSelectRoot, IssueWorklogProperty } from "@/plane-web/components/issues"; import { WorkItemAdditionalSidebarProperties } from "@/plane-web/components/issues/issue-details/additional-properties"; +import { IssueParentSelectRoot } from "@/plane-web/components/issues/issue-details/parent-select-root"; +import { IssueWorklogProperty } from "@/plane-web/components/issues/worklog/property"; +import type { TIssueOperations } from "../issue-detail"; +import { IssueCycleSelect } from "../issue-detail/cycle-select"; +import { IssueLabel } from "../issue-detail/label"; +import { IssueModuleSelect } from "../issue-detail/module-select"; interface IPeekOverviewProperties { workspaceSlug: string; diff --git a/apps/web/core/components/issues/peek-overview/root.tsx b/apps/web/core/components/issues/peek-overview/root.tsx index b38415c2f..8768a7109 100644 --- a/apps/web/core/components/issues/peek-overview/root.tsx +++ b/apps/web/core/components/issues/peek-overview/root.tsx @@ -8,13 +8,16 @@ import { EUserPermissions, EUserPermissionsLevel, WORK_ITEM_TRACKER_EVENTS } fro import { useTranslation } from "@plane/i18n"; import { EIssueServiceType, EIssuesStoreType, IWorkItemPeekOverview, TIssue } from "@plane/types"; import { TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; -// components -import { IssueView, TIssueOperations } from "@/components/issues"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useIssueDetail, useIssues, useUserPermissions } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useIssues } from "@/hooks/store/use-issues" +import { useUserPermissions } from "@/hooks/store/user"; import { useIssueStoreType } from "@/hooks/use-issue-layout-store"; import { useWorkItemProperties } from "@/plane-web/hooks/use-issue-properties"; +// local imports +import { TIssueOperations } from "../issue-detail"; +import { IssueView } from "./view"; export const IssuePeekOverview: FC = observer((props) => { const { diff --git a/apps/web/core/components/issues/peek-overview/view.tsx b/apps/web/core/components/issues/peek-overview/view.tsx index 6d1fe4756..e06a48397 100644 --- a/apps/web/core/components/issues/peek-overview/view.tsx +++ b/apps/web/core/components/issues/peek-overview/view.tsx @@ -1,27 +1,22 @@ import { FC, useRef, useState } from "react"; import { observer } from "mobx-react"; import { createPortal } from "react-dom"; -// types +// plane imports import { EIssueServiceType, TNameDescriptionLoader } from "@plane/types"; -// components import { cn } from "@plane/utils"; -import { - IssuePeekOverviewHeader, - TPeekModes, - PeekOverviewIssueDetails, - PeekOverviewProperties, - TIssueOperations, - IssuePeekOverviewLoader, - IssuePeekOverviewError, - IssueDetailWidgets, -} from "@/components/issues"; -// helpers // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; import useKeypress from "@/hooks/use-keypress"; import usePeekOverviewOutsideClickDetector from "@/hooks/use-peek-overview-outside-click"; -// store hooks +// local imports +import type { TIssueOperations } from "../issue-detail"; import { IssueActivity } from "../issue-detail/issue-activity"; +import { IssueDetailWidgets } from "../issue-detail-widgets"; +import { IssuePeekOverviewError } from "./error"; +import { IssuePeekOverviewHeader, TPeekModes } from "./header"; +import { PeekOverviewIssueDetails } from "./issue-detail"; +import { IssuePeekOverviewLoader } from "./loader"; +import { PeekOverviewProperties } from "./properties"; interface IIssueView { workspaceSlug: string; diff --git a/apps/web/core/components/issues/relations/index.ts b/apps/web/core/components/issues/relations/index.ts deleted file mode 100644 index a54c231f6..000000000 --- a/apps/web/core/components/issues/relations/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./issue-list"; -export * from "./issue-list-item"; -export * from "./properties"; diff --git a/apps/web/core/components/issues/relations/issue-list-item.tsx b/apps/web/core/components/issues/relations/issue-list-item.tsx index a344969e2..7099683fe 100644 --- a/apps/web/core/components/issues/relations/issue-list-item.tsx +++ b/apps/web/core/components/issues/relations/issue-list-item.tsx @@ -3,23 +3,22 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; import { X, Pencil, Trash, Link as LinkIcon } from "lucide-react"; -// Plane +// plane imports import { useTranslation } from "@plane/i18n"; import { EIssueServiceType, TIssue, TIssueServiceType } from "@plane/types"; import { ControlLink, CustomMenu, Tooltip } from "@plane/ui"; -// components import { generateWorkItemLink } from "@plane/utils"; -import { RelationIssueProperty } from "@/components/issues/relations"; -// helpers // hooks -import { useIssueDetail, useProject } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useProject } from "@/hooks/store/use-project"; import useIssuePeekOverviewRedirection from "@/hooks/use-issue-peek-overview-redirection"; import { usePlatformOS } from "@/hooks/use-platform-os"; -// plane web components -import { IssueIdentifier } from "@/plane-web/components/issues"; -import { TIssueRelationTypes } from "@/plane-web/types"; +// plane web imports +import { IssueIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; +import type { TIssueRelationTypes } from "@/plane-web/types"; // local imports import { useRelationOperations } from "../issue-detail-widgets/relations/helper"; +import { RelationIssueProperty } from "./properties"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/relations/issue-list.tsx b/apps/web/core/components/issues/relations/issue-list.tsx index e11ce476f..f7f8133dc 100644 --- a/apps/web/core/components/issues/relations/issue-list.tsx +++ b/apps/web/core/components/issues/relations/issue-list.tsx @@ -1,12 +1,12 @@ "use client"; import React, { FC } from "react"; import { observer } from "mobx-react"; -// Plane +// plane imports import { EIssueServiceType, TIssue, TIssueServiceType } from "@plane/types"; -// components -import { RelationIssueListItem } from "@/components/issues/relations"; -// Plane-web +// Plane-web imports import { TIssueRelationTypes } from "@/plane-web/types"; +// local imports +import { RelationIssueListItem } from "./issue-list-item"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/relations/properties.tsx b/apps/web/core/components/issues/relations/properties.tsx index fae86a743..c826a9df3 100644 --- a/apps/web/core/components/issues/relations/properties.tsx +++ b/apps/web/core/components/issues/relations/properties.tsx @@ -3,9 +3,11 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; // components import { EIssueServiceType, TIssuePriorities, TIssueServiceType } from "@plane/types"; -import { PriorityDropdown, MemberDropdown, StateDropdown } from "@/components/dropdowns"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; // hooks -import { useIssueDetail } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; // types import { TRelationIssueOperations } from "../issue-detail-widgets/relations/helper"; diff --git a/apps/web/core/components/issues/select/base.tsx b/apps/web/core/components/issues/select/base.tsx index 59e7901ff..8c48cf78e 100644 --- a/apps/web/core/components/issues/select/base.tsx +++ b/apps/web/core/components/issues/select/base.tsx @@ -4,13 +4,13 @@ import { observer } from "mobx-react"; import { usePopper } from "react-popper"; import { Check, Component, Plus, Search, Tag } from "lucide-react"; import { Combobox } from "@headlessui/react"; +// plane imports import { useOutsideClickDetector } from "@plane/hooks"; import { useTranslation } from "@plane/i18n"; -// plane imports import { IIssueLabel } from "@plane/types"; import { cn } from "@plane/utils"; // components -import { IssueLabelsList } from "@/components/ui"; +import { IssueLabelsList } from "@/components/ui/labels-list"; // hooks import { useDropdownKeyDown } from "@/hooks/use-dropdown-key-down"; import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/issues/select/dropdown.tsx b/apps/web/core/components/issues/select/dropdown.tsx index 2a86e03ab..be66d709a 100644 --- a/apps/web/core/components/issues/select/dropdown.tsx +++ b/apps/web/core/components/issues/select/dropdown.tsx @@ -2,7 +2,7 @@ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // hooks -import { useLabel } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label"; // local imports import { TWorkItemLabelSelectBaseProps, WorkItemLabelSelectBase } from "./base"; diff --git a/apps/web/core/components/issues/workspace-draft/delete-modal.tsx b/apps/web/core/components/issues/workspace-draft/delete-modal.tsx index 69f6f15bf..8e27da913 100644 --- a/apps/web/core/components/issues/workspace-draft/delete-modal.tsx +++ b/apps/web/core/components/issues/workspace-draft/delete-modal.tsx @@ -9,7 +9,8 @@ import { TWorkspaceDraftIssue } from "@plane/types"; import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // constants // hooks -import { useIssues, useUser, useUserPermissions } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useUser, useUserPermissions } from "@/hooks/store/user"; type Props = { isOpen: boolean; diff --git a/apps/web/core/components/issues/workspace-draft/draft-issue-block.tsx b/apps/web/core/components/issues/workspace-draft/draft-issue-block.tsx index 4c9a9736c..ef31ad8fc 100644 --- a/apps/web/core/components/issues/workspace-draft/draft-issue-block.tsx +++ b/apps/web/core/components/issues/workspace-draft/draft-issue-block.tsx @@ -3,21 +3,21 @@ import React, { FC, useRef, useState } from "react"; import { omit } from "lodash"; import { observer } from "mobx-react"; import { Copy, Pencil, SquareStackIcon, Trash2 } from "lucide-react"; -// types +// plane utils import { EIssuesStoreType, TWorkspaceDraftIssue } from "@plane/types"; import { Row, TContextMenuItem, Tooltip } from "@plane/ui"; -// constants -// helper import { cn } from "@plane/utils"; // hooks -import { useAppTheme, useProject, useWorkspaceDraftIssues } from "@/hooks/store"; -// plane-web components -import { IdentifierText, IssueTypeIdentifier } from "@/plane-web/components/issues"; -// local components -import { WorkspaceDraftIssueQuickActions } from "../issue-layouts"; -import { CreateUpdateIssueModal } from "../issue-modal"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; +import { useProject } from "@/hooks/store/use-project"; +import { useWorkspaceDraftIssues } from "@/hooks/store/workspace-draft"; +// plane-web imports +import { IdentifierText, IssueTypeIdentifier } from "@/plane-web/components/issues/issue-details/issue-identifier"; +// local imports +import { CreateUpdateIssueModal } from "../issue-modal/modal"; import { WorkspaceDraftIssueDeleteIssueModal } from "./delete-modal"; import { DraftIssueProperties } from "./draft-issue-properties"; +import { WorkspaceDraftIssueQuickActions } from "./quick-action"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/issues/workspace-draft/draft-issue-properties.tsx b/apps/web/core/components/issues/workspace-draft/draft-issue-properties.tsx index 4318bc2ea..496f53f27 100644 --- a/apps/web/core/components/issues/workspace-draft/draft-issue-properties.tsx +++ b/apps/web/core/components/issues/workspace-draft/draft-issue-properties.tsx @@ -9,21 +9,23 @@ import { CalendarCheck2, CalendarClock } from "lucide-react"; import { TIssuePriorities, TWorkspaceDraftIssue } from "@plane/types"; import { getDate, renderFormattedPayloadDate, shouldHighlightIssueDueDate } from "@plane/utils"; // components -import { - DateDropdown, - EstimateDropdown, - PriorityDropdown, - MemberDropdown, - ModuleDropdown, - CycleDropdown, - StateDropdown, -} from "@/components/dropdowns"; +import { CycleDropdown } from "@/components/dropdowns/cycle"; +import { DateDropdown } from "@/components/dropdowns/date"; +import { EstimateDropdown } from "@/components/dropdowns/estimate"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { ModuleDropdown } from "@/components/dropdowns/module/dropdown"; +import { PriorityDropdown } from "@/components/dropdowns/priority"; +import { StateDropdown } from "@/components/dropdowns/state/dropdown"; // helpers // hooks -import { useLabel, useProjectState, useProject, useProjectEstimates, useWorkspaceDraftIssues } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useProject } from "@/hooks/store/use-project" +import { useProjectEstimates } from "@/hooks/store/estimates" +import { useWorkspaceDraftIssues } from "@/hooks/store/workspace-draft"; import { usePlatformOS } from "@/hooks/use-platform-os"; +import { IssuePropertyLabels } from "../issue-layouts/properties"; // local components -import { IssuePropertyLabels } from "../issue-layouts"; export interface IIssueProperties { issue: TWorkspaceDraftIssue; diff --git a/apps/web/core/components/issues/workspace-draft/empty-state.tsx b/apps/web/core/components/issues/workspace-draft/empty-state.tsx index 3cd990d07..a5c16cf7f 100644 --- a/apps/web/core/components/issues/workspace-draft/empty-state.tsx +++ b/apps/web/core/components/issues/workspace-draft/empty-state.tsx @@ -6,10 +6,10 @@ import { observer } from "mobx-react"; import { EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EIssuesStoreType, EUserWorkspaceRoles } from "@plane/types"; -import { DetailedEmptyState } from "@/components/empty-state"; -import { CreateUpdateIssueModal } from "@/components/issues"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; // constants -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; export const WorkspaceDraftEmptyState: FC = observer(() => { diff --git a/apps/web/core/components/issues/workspace-draft/index.ts b/apps/web/core/components/issues/workspace-draft/index.ts index 07138bc0b..1efe34c51 100644 --- a/apps/web/core/components/issues/workspace-draft/index.ts +++ b/apps/web/core/components/issues/workspace-draft/index.ts @@ -1,4 +1 @@ -export * from "./draft-issue-block"; -export * from "./draft-issue-properties"; -export * from "./delete-modal"; export * from "./root"; diff --git a/apps/web/core/components/issues/workspace-draft/loader.tsx b/apps/web/core/components/issues/workspace-draft/loader.tsx index 56efcea98..ef09385d3 100644 --- a/apps/web/core/components/issues/workspace-draft/loader.tsx +++ b/apps/web/core/components/issues/workspace-draft/loader.tsx @@ -3,7 +3,7 @@ import { FC } from "react"; import range from "lodash/range"; // components -import { ListLoaderItemRow } from "@/components/ui"; +import { ListLoaderItemRow } from "@/components/ui/loader/layouts/list-layout-loader"; type TWorkspaceDraftIssuesLoader = { items?: number; diff --git a/apps/web/core/components/issues/workspace-draft/root.tsx b/apps/web/core/components/issues/workspace-draft/root.tsx index c6aef19c6..0b61ec0a2 100644 --- a/apps/web/core/components/issues/workspace-draft/root.tsx +++ b/apps/web/core/components/issues/workspace-draft/root.tsx @@ -9,13 +9,17 @@ import { useTranslation } from "@plane/i18n"; import { EUserWorkspaceRoles } from "@plane/types"; // components import { cn } from "@plane/utils"; -import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { captureClick } from "@/helpers/event-tracker.helper"; // constants // helpers // hooks -import { useCommandPalette, useProject, useUserPermissions, useWorkspaceDraftIssues } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user" +import { useWorkspaceDraftIssues } from "@/hooks/store/workspace-draft"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-properties"; // components diff --git a/apps/web/core/components/labels/delete-label-modal.tsx b/apps/web/core/components/labels/delete-label-modal.tsx index 3b50824ed..8e00bb99f 100644 --- a/apps/web/core/components/labels/delete-label-modal.tsx +++ b/apps/web/core/components/labels/delete-label-modal.tsx @@ -8,7 +8,7 @@ import type { IIssueLabel } from "@plane/types"; // ui import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useLabel } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label"; import { PROJECT_SETTINGS_TRACKER_ELEMENTS, PROJECT_SETTINGS_TRACKER_EVENTS } from "@plane/constants"; import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; diff --git a/apps/web/core/components/labels/label-drag-n-drop-HOC.tsx b/apps/web/core/components/labels/label-drag-n-drop-HOC.tsx index 9ea93b70d..db49f6966 100644 --- a/apps/web/core/components/labels/label-drag-n-drop-HOC.tsx +++ b/apps/web/core/components/labels/label-drag-n-drop-HOC.tsx @@ -14,7 +14,7 @@ import { IIssueLabel, InstructionType } from "@plane/types"; // ui import { DropIndicator } from "@plane/ui"; // components -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; import { LabelName } from "./label-block/label-name"; import { TargetData, getCanDrop, getInstructionFromPayload } from "./label-utils"; diff --git a/apps/web/core/components/labels/project-setting-label-item.tsx b/apps/web/core/components/labels/project-setting-label-item.tsx index 897b756a9..df59f8f1a 100644 --- a/apps/web/core/components/labels/project-setting-label-item.tsx +++ b/apps/web/core/components/labels/project-setting-label-item.tsx @@ -6,7 +6,7 @@ import { PROJECT_SETTINGS_TRACKER_ELEMENTS } from "@plane/constants"; import { IIssueLabel } from "@plane/types"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useLabel } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label"; // components import { CreateUpdateLabelInline, TLabelOperationsCallbacks } from "./create-update-label-inline"; import { ICustomMenuItem, LabelItemBlock } from "./label-block/label-item-block"; diff --git a/apps/web/core/components/labels/project-setting-label-list.tsx b/apps/web/core/components/labels/project-setting-label-list.tsx index 088e7440e..474bfce65 100644 --- a/apps/web/core/components/labels/project-setting-label-list.tsx +++ b/apps/web/core/components/labels/project-setting-label-list.tsx @@ -8,7 +8,7 @@ import { EUserPermissions, EUserPermissionsLevel, PROJECT_SETTINGS_TRACKER_ELEME import { useTranslation } from "@plane/i18n"; import { IIssueLabel } from "@plane/types"; import { Loader } from "@plane/ui"; -import { DetailedEmptyState } from "@/components/empty-state"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { CreateUpdateLabelInline, DeleteLabelModal, @@ -18,10 +18,11 @@ import { } from "@/components/labels"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useLabel, useUserPermissions } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; -import { SettingsHeading } from "../settings"; -// plane web imports +// local imports +import { SettingsHeading } from "../settings/heading"; export const ProjectSettingsLabelList: React.FC = observer(() => { // router diff --git a/apps/web/core/components/modules/analytics-sidebar/issue-progress.tsx b/apps/web/core/components/modules/analytics-sidebar/issue-progress.tsx index 13a491ab2..da8a907eb 100644 --- a/apps/web/core/components/modules/analytics-sidebar/issue-progress.tsx +++ b/apps/web/core/components/modules/analytics-sidebar/issue-progress.tsx @@ -17,7 +17,9 @@ import { getDate } from "@plane/utils"; import ProgressChart from "@/components/core/sidebar/progress-chart"; import { ModuleProgressStats } from "@/components/modules"; // hooks -import { useIssues, useModule, useProjectEstimates } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useModule } from "@/hooks/store/use-module" +import { useProjectEstimates } from "@/hooks/store/estimates"; // plane web constants type TModuleAnalyticsProgress = { workspaceSlug: string; diff --git a/apps/web/core/components/modules/analytics-sidebar/progress-stats.tsx b/apps/web/core/components/modules/analytics-sidebar/progress-stats.tsx index b30811219..555e7e32b 100644 --- a/apps/web/core/components/modules/analytics-sidebar/progress-stats.tsx +++ b/apps/web/core/components/modules/analytics-sidebar/progress-stats.tsx @@ -16,10 +16,10 @@ import { import { Avatar, StateGroupIcon } from "@plane/ui"; import { cn, getFileURL } from "@plane/utils"; // components -import { SingleProgressStats } from "@/components/core"; +import { SingleProgressStats } from "@/components/core/sidebar/single-progress-stats"; // helpers // 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"; diff --git a/apps/web/core/components/modules/analytics-sidebar/root.tsx b/apps/web/core/components/modules/analytics-sidebar/root.tsx index 343077ac2..acfb9904f 100644 --- a/apps/web/core/components/modules/analytics-sidebar/root.tsx +++ b/apps/web/core/components/modules/analytics-sidebar/root.tsx @@ -22,11 +22,14 @@ import { Loader, LayersIcon, CustomSelect, ModuleStatusIcon, TOAST_TYPE, setToas // components // helpers import { getDate, renderFormattedPayloadDate } from "@plane/utils"; -import { DateRangeDropdown, MemberDropdown } from "@/components/dropdowns"; +import { DateRangeDropdown } from "@/components/dropdowns/date-range"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; import { CreateUpdateModuleLinkModal, ModuleAnalyticsProgress, ModuleLinksList } from "@/components/modules"; import { captureElementAndEvent, captureSuccess, captureError } from "@/helpers/event-tracker.helper"; // hooks -import { useModule, useProjectEstimates, useUserPermissions } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module" +import { useProjectEstimates } from "@/hooks/store/estimates" +import { useUserPermissions } from "@/hooks/store/user"; // plane web constants const defaultValues: Partial = { lead_id: "", diff --git a/apps/web/core/components/modules/applied-filters/members.tsx b/apps/web/core/components/modules/applied-filters/members.tsx index e1c8b6834..06e485ab4 100644 --- a/apps/web/core/components/modules/applied-filters/members.tsx +++ b/apps/web/core/components/modules/applied-filters/members.tsx @@ -7,7 +7,7 @@ import { Avatar } from "@plane/ui"; // helpers import { getFileURL } from "@plane/utils"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; type Props = { handleRemove: (val: string) => void; diff --git a/apps/web/core/components/modules/archived-modules/header.tsx b/apps/web/core/components/modules/archived-modules/header.tsx index c0bd2d930..ad0aacfbe 100644 --- a/apps/web/core/components/modules/archived-modules/header.tsx +++ b/apps/web/core/components/modules/archived-modules/header.tsx @@ -10,11 +10,12 @@ import type { TModuleFilters } from "@plane/types"; import { cn, calculateTotalFilters } from "@plane/utils"; // components import { ArchiveTabsList } from "@/components/archives"; -import { FiltersDropdown } from "@/components/issues"; +import { FiltersDropdown } from "@/components/issues/issue-layouts/filters"; import { ModuleFiltersSelection, ModuleOrderByDropdown } from "@/components/modules"; // helpers // hooks -import { useMember, useModuleFilter } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useModuleFilter } from "@/hooks/store/use-module-filter"; export const ArchivedModulesHeader: FC = observer(() => { // router diff --git a/apps/web/core/components/modules/archived-modules/modal.tsx b/apps/web/core/components/modules/archived-modules/modal.tsx index f7c5e5856..2bc35b053 100644 --- a/apps/web/core/components/modules/archived-modules/modal.tsx +++ b/apps/web/core/components/modules/archived-modules/modal.tsx @@ -5,7 +5,7 @@ import { Dialog, Transition } from "@headlessui/react"; // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; import { useAppRouter } from "@/hooks/use-app-router"; type Props = { diff --git a/apps/web/core/components/modules/archived-modules/root.tsx b/apps/web/core/components/modules/archived-modules/root.tsx index 9bcb50c6e..e828d6be9 100644 --- a/apps/web/core/components/modules/archived-modules/root.tsx +++ b/apps/web/core/components/modules/archived-modules/root.tsx @@ -7,12 +7,13 @@ import { useTranslation } from "@plane/i18n"; import { TModuleFilters } from "@plane/types"; // components import { calculateTotalFilters } from "@plane/utils"; -import { DetailedEmptyState } from "@/components/empty-state"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { ArchivedModulesView, ModuleAppliedFiltersList } from "@/components/modules"; -import { CycleModuleListLayout } from "@/components/ui"; +import { CycleModuleListLayoutLoader } from "@/components/ui/loader/cycle-module-list-loader"; // helpers // hooks -import { useModule, useModuleFilter } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module" +import { useModuleFilter } from "@/hooks/store/use-module-filter"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; export const ArchivedModuleLayoutRoot: React.FC = observer(() => { @@ -53,7 +54,7 @@ export const ArchivedModuleLayoutRoot: React.FC = observer(() => { if (!workspaceSlug || !projectId) return <>; if (loader || !projectArchivedModuleIds) { - return ; + return ; } return ( diff --git a/apps/web/core/components/modules/archived-modules/view.tsx b/apps/web/core/components/modules/archived-modules/view.tsx index 5921b12e8..5a2a2eeb7 100644 --- a/apps/web/core/components/modules/archived-modules/view.tsx +++ b/apps/web/core/components/modules/archived-modules/view.tsx @@ -4,9 +4,10 @@ import Image from "next/image"; // components import { ModuleListItem, ModulePeekOverview } from "@/components/modules"; // ui -import { CycleModuleListLayout } from "@/components/ui"; +import { CycleModuleListLayoutLoader } from "@/components/ui/loader/cycle-module-list-loader"; // hooks -import { useModule, useModuleFilter } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module" +import { useModuleFilter } from "@/hooks/store/use-module-filter"; // assets import AllFiltersImage from "@/public/empty-state/module/all-filters.svg"; import NameFilterImage from "@/public/empty-state/module/name-filter.svg"; @@ -24,7 +25,7 @@ export const ArchivedModulesView: FC = observer((props) => // derived values const filteredArchivedModuleIds = getFilteredArchivedModuleIds(projectId); - if (loader || !filteredArchivedModuleIds) return ; + if (loader || !filteredArchivedModuleIds) return ; if (filteredArchivedModuleIds.length === 0) return ( diff --git a/apps/web/core/components/modules/delete-module-modal.tsx b/apps/web/core/components/modules/delete-module-modal.tsx index a098de483..c046da875 100644 --- a/apps/web/core/components/modules/delete-module-modal.tsx +++ b/apps/web/core/components/modules/delete-module-modal.tsx @@ -13,7 +13,7 @@ import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // helpers import { captureSuccess, captureError } from "@/helpers/event-tracker.helper"; // hooks -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; import { useAppRouter } from "@/hooks/use-app-router"; type Props = { diff --git a/apps/web/core/components/modules/dropdowns/filters/lead.tsx b/apps/web/core/components/modules/dropdowns/filters/lead.tsx index a6de50b4e..f00c492b8 100644 --- a/apps/web/core/components/modules/dropdowns/filters/lead.tsx +++ b/apps/web/core/components/modules/dropdowns/filters/lead.tsx @@ -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; diff --git a/apps/web/core/components/modules/dropdowns/filters/members.tsx b/apps/web/core/components/modules/dropdowns/filters/members.tsx index 1f593203a..db7bee879 100644 --- a/apps/web/core/components/modules/dropdowns/filters/members.tsx +++ b/apps/web/core/components/modules/dropdowns/filters/members.tsx @@ -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; diff --git a/apps/web/core/components/modules/dropdowns/filters/root.tsx b/apps/web/core/components/modules/dropdowns/filters/root.tsx index 61191626e..d2537868a 100644 --- a/apps/web/core/components/modules/dropdowns/filters/root.tsx +++ b/apps/web/core/components/modules/dropdowns/filters/root.tsx @@ -3,13 +3,14 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { Search, X } from "lucide-react"; +// plane imports import { TModuleDisplayFilters, TModuleFilters } from "@plane/types"; -// components import { TModuleStatus } from "@plane/ui"; -import { FilterOption } from "@/components/issues"; +// components +import { FilterOption } from "@/components/issues/issue-layouts/filters"; import { FilterLead, FilterMembers, FilterStartDate, FilterStatus, FilterTargetDate } from "@/components/modules"; +// hooks import { usePlatformOS } from "@/hooks/use-platform-os"; -// types type Props = { displayFilters: TModuleDisplayFilters; diff --git a/apps/web/core/components/modules/dropdowns/filters/start-date.tsx b/apps/web/core/components/modules/dropdowns/filters/start-date.tsx index 2d7b9c17f..9d44fb336 100644 --- a/apps/web/core/components/modules/dropdowns/filters/start-date.tsx +++ b/apps/web/core/components/modules/dropdowns/filters/start-date.tsx @@ -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 diff --git a/apps/web/core/components/modules/dropdowns/filters/status.tsx b/apps/web/core/components/modules/dropdowns/filters/status.tsx index 3f3994fda..f1aa3b14d 100644 --- a/apps/web/core/components/modules/dropdowns/filters/status.tsx +++ b/apps/web/core/components/modules/dropdowns/filters/status.tsx @@ -7,7 +7,7 @@ import { useTranslation } from "@plane/i18n"; import { TModuleStatus } from "@plane/types"; // components import { ModuleStatusIcon } from "@plane/ui"; -import { FilterHeader, FilterOption } from "@/components/issues"; +import { FilterHeader, FilterOption } from "@/components/issues/issue-layouts/filters"; type Props = { appliedFilters: TModuleStatus[] | null; diff --git a/apps/web/core/components/modules/dropdowns/filters/target-date.tsx b/apps/web/core/components/modules/dropdowns/filters/target-date.tsx index 2bb0f84c2..c3baa8d72 100644 --- a/apps/web/core/components/modules/dropdowns/filters/target-date.tsx +++ b/apps/web/core/components/modules/dropdowns/filters/target-date.tsx @@ -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 type Props = { diff --git a/apps/web/core/components/modules/form.tsx b/apps/web/core/components/modules/form.tsx index aab66235d..59b42a6a5 100644 --- a/apps/web/core/components/modules/form.tsx +++ b/apps/web/core/components/modules/form.tsx @@ -10,7 +10,9 @@ import { IModule } from "@plane/types"; import { Button, Input, TextArea } from "@plane/ui"; import { getDate, renderFormattedPayloadDate, getTabIndex } from "@plane/utils"; // components -import { DateRangeDropdown, ProjectDropdown, MemberDropdown } from "@/components/dropdowns"; +import { DateRangeDropdown } from "@/components/dropdowns/date-range"; +import { MemberDropdown } from "@/components/dropdowns/member/dropdown"; +import { ProjectDropdown } from "@/components/dropdowns/project/dropdown"; import { ModuleStatusSelect } from "@/components/modules"; // hooks import { useUser } from "@/hooks/store/user/user-user"; diff --git a/apps/web/core/components/modules/gantt-chart/blocks.tsx b/apps/web/core/components/modules/gantt-chart/blocks.tsx index ace0b7f80..937aa3f3b 100644 --- a/apps/web/core/components/modules/gantt-chart/blocks.tsx +++ b/apps/web/core/components/modules/gantt-chart/blocks.tsx @@ -11,7 +11,7 @@ import { SIDEBAR_WIDTH } from "@/components/gantt-chart/constants"; import { getBlockViewDetails } from "@/components/issues/issue-layouts/utils"; // constants // hooks -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx b/apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx index 1260d5621..f70def7c9 100644 --- a/apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx +++ b/apps/web/core/components/modules/gantt-chart/modules-list-layout.tsx @@ -7,7 +7,9 @@ import { GanttChartRoot, ModuleGanttSidebar } from "@/components/gantt-chart"; import { ETimeLineTypeType, TimeLineTypeContext } from "@/components/gantt-chart/contexts"; import { ModuleGanttBlock } from "@/components/modules"; // hooks -import { useModule, useModuleFilter, useProject } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module" +import { useModuleFilter } from "@/hooks/store/use-module-filter" +import { useProject } from "@/hooks/store/use-project"; export const ModulesListGanttChartView: React.FC = observer(() => { // router diff --git a/apps/web/core/components/modules/links/list-item.tsx b/apps/web/core/components/modules/links/list-item.tsx index 2a83514d2..fd7d82617 100644 --- a/apps/web/core/components/modules/links/list-item.tsx +++ b/apps/web/core/components/modules/links/list-item.tsx @@ -9,7 +9,7 @@ import { getIconForLink, copyTextToClipboard, calculateTimeAgo } from "@plane/ut // helpers // // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { diff --git a/apps/web/core/components/modules/links/list.tsx b/apps/web/core/components/modules/links/list.tsx index 36a468d5f..4ae7de5cc 100644 --- a/apps/web/core/components/modules/links/list.tsx +++ b/apps/web/core/components/modules/links/list.tsx @@ -6,7 +6,7 @@ import { ILinkDetails } from "@plane/types"; // components import { ModulesLinksListItem } from "@/components/modules"; // hooks -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; type Props = { disabled?: boolean; diff --git a/apps/web/core/components/modules/modal.tsx b/apps/web/core/components/modules/modal.tsx index 2741dbc44..46748561e 100644 --- a/apps/web/core/components/modules/modal.tsx +++ b/apps/web/core/components/modules/modal.tsx @@ -14,7 +14,8 @@ import { ModuleForm } from "@/components/modules"; // helpers import { captureSuccess, captureError } from "@/helpers/event-tracker.helper"; // hooks -import { useModule, useProject } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module" +import { useProject } from "@/hooks/store/use-project"; import useKeypress from "@/hooks/use-keypress"; import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/modules/module-card-item.tsx b/apps/web/core/components/modules/module-card-item.tsx index 578af737b..c938b92ec 100644 --- a/apps/web/core/components/modules/module-card-item.tsx +++ b/apps/web/core/components/modules/module-card-item.tsx @@ -29,14 +29,16 @@ import { } from "@plane/ui"; import { getDate, renderFormattedPayloadDate, generateQueryParams } from "@plane/utils"; // components -import { DateRangeDropdown } from "@/components/dropdowns"; +import { DateRangeDropdown } from "@/components/dropdowns/date-range"; import { ButtonAvatars } from "@/components/dropdowns/member/avatar"; import { ModuleQuickActions } from "@/components/modules"; import { ModuleStatusDropdown } from "@/components/modules/module-status-dropdown"; // helpers import { captureElementAndEvent } from "@/helpers/event-tracker.helper"; // hooks -import { useMember, useModule, useUserPermissions } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useModule } from "@/hooks/store/use-module" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web constants diff --git a/apps/web/core/components/modules/module-list-item-action.tsx b/apps/web/core/components/modules/module-list-item-action.tsx index 9ed74019d..c5709f965 100644 --- a/apps/web/core/components/modules/module-list-item-action.tsx +++ b/apps/web/core/components/modules/module-list-item-action.tsx @@ -21,14 +21,16 @@ import { IModule } from "@plane/types"; import { FavoriteStar, TOAST_TYPE, Tooltip, setPromiseToast, setToast } from "@plane/ui"; // components import { renderFormattedPayloadDate, getDate } from "@plane/utils"; -import { DateRangeDropdown } from "@/components/dropdowns"; +import { DateRangeDropdown } from "@/components/dropdowns/date-range"; import { ModuleQuickActions } from "@/components/modules"; import { ModuleStatusDropdown } from "@/components/modules/module-status-dropdown"; // constants // helpers import { captureElementAndEvent, captureError } from "@/helpers/event-tracker.helper"; // hooks -import { useMember, useModule, useUserPermissions } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useModule } from "@/hooks/store/use-module" +import { useUserPermissions } from "@/hooks/store/user"; import { ButtonAvatars } from "../dropdowns/member/avatar"; type Props = { diff --git a/apps/web/core/components/modules/module-list-item.tsx b/apps/web/core/components/modules/module-list-item.tsx index 0d20bd224..705aa8e8a 100644 --- a/apps/web/core/components/modules/module-list-item.tsx +++ b/apps/web/core/components/modules/module-list-item.tsx @@ -13,7 +13,7 @@ import { ListItem } from "@/components/core/list"; import { ModuleListItemAction, ModuleQuickActions } from "@/components/modules"; // helpers // hooks -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; import { useAppRouter } from "@/hooks/use-app-router"; import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/modules/module-peek-overview.tsx b/apps/web/core/components/modules/module-peek-overview.tsx index 590ef67e8..8b54546e1 100644 --- a/apps/web/core/components/modules/module-peek-overview.tsx +++ b/apps/web/core/components/modules/module-peek-overview.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { usePathname, useSearchParams } from "next/navigation"; // hooks import { generateQueryParams } from "@plane/utils"; -import { useModule } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module"; import { useAppRouter } from "@/hooks/use-app-router"; // components import { ModuleAnalyticsSidebar } from "./"; diff --git a/apps/web/core/components/modules/module-view-header.tsx b/apps/web/core/components/modules/module-view-header.tsx index efa96c6c6..2de45d7de 100644 --- a/apps/web/core/components/modules/module-view-header.tsx +++ b/apps/web/core/components/modules/module-view-header.tsx @@ -15,12 +15,13 @@ import { Tooltip } from "@plane/ui"; import { cn, calculateTotalFilters } from "@plane/utils"; // plane utils // components -import { FiltersDropdown } from "@/components/issues"; +import { FiltersDropdown } from "@/components/issues/issue-layouts/filters"; import { ModuleFiltersSelection, ModuleOrderByDropdown } from "@/components/modules/dropdowns"; // constants // helpers // hooks -import { useMember, useModuleFilter } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useModuleFilter } from "@/hooks/store/use-module-filter"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { ModuleLayoutIcon } from "./module-layout-icon"; // i18n diff --git a/apps/web/core/components/modules/modules-list-view.tsx b/apps/web/core/components/modules/modules-list-view.tsx index 241d24a00..a8b09de57 100644 --- a/apps/web/core/components/modules/modules-list-view.tsx +++ b/apps/web/core/components/modules/modules-list-view.tsx @@ -7,11 +7,17 @@ import { useTranslation } from "@plane/i18n"; import { EUserProjectRoles } from "@plane/types"; import { ContentWrapper, Row, ERowVariant } from "@plane/ui"; import { ListLayout } from "@/components/core/list"; -import { DetailedEmptyState, ComicBoxButton } from "@/components/empty-state"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { ModuleCardItem, ModuleListItem, ModulePeekOverview, ModulesListGanttChartView } from "@/components/modules"; -import { CycleModuleBoardLayout, CycleModuleListLayout, GanttLayoutLoader } from "@/components/ui"; +import { CycleModuleBoardLayoutLoader } from "@/components/ui/loader/cycle-module-board-loader"; +import { CycleModuleListLayoutLoader } from "@/components/ui/loader/cycle-module-list-loader"; +import { GanttLayoutLoader } from "@/components/ui/loader/layouts/gantt-layout-loader"; // hooks -import { useCommandPalette, useModule, useModuleFilter, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useModule } from "@/hooks/store/use-module" +import { useModuleFilter } from "@/hooks/store/use-module-filter" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import AllFiltersImage from "@/public/empty-state/module/all-filters.svg"; import NameFilterImage from "@/public/empty-state/module/name-filter.svg"; @@ -42,8 +48,8 @@ export const ModulesListView: React.FC = observer(() => { if (loader || !projectModuleIds || !filteredModuleIds) return ( <> - {displayFilters?.layout === "list" && } - {displayFilters?.layout === "board" && } + {displayFilters?.layout === "list" && } + {displayFilters?.layout === "board" && } {displayFilters?.layout === "gantt" && } ); diff --git a/apps/web/core/components/modules/quick-actions.tsx b/apps/web/core/components/modules/quick-actions.tsx index 047f06a2d..9139eec40 100644 --- a/apps/web/core/components/modules/quick-actions.tsx +++ b/apps/web/core/components/modules/quick-actions.tsx @@ -21,7 +21,8 @@ import { ArchiveModuleModal, CreateUpdateModuleModal, DeleteModuleModal } from " // helpers import { captureClick, captureSuccess, captureError } from "@/helpers/event-tracker.helper"; // hooks -import { useModule, useUserPermissions } from "@/hooks/store"; +import { useModule } from "@/hooks/store/use-module" +import { useUserPermissions } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; type Props = { diff --git a/apps/web/core/components/onboarding/create-or-join-workspaces.tsx b/apps/web/core/components/onboarding/create-or-join-workspaces.tsx index 9575e7166..bf07cc2ed 100644 --- a/apps/web/core/components/onboarding/create-or-join-workspaces.tsx +++ b/apps/web/core/components/onboarding/create-or-join-workspaces.tsx @@ -1,17 +1,18 @@ import React, { useEffect, useState } from "react"; import { observer } from "mobx-react"; -// icons -// types import { OctagonAlert } from "lucide-react"; +// plane imports import { IWorkspaceMemberInvitation, TOnboardingSteps } from "@plane/types"; // components -import { Invitations, SwitchAccountDropdown, CreateWorkspace } from "@/components/onboarding"; +import { LogoSpinner } from "@/components/common/logo-spinner"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // plane web helpers import { getIsWorkspaceCreationDisabled } from "@/plane-web/helpers/instance.helper"; -// local components -import { LogoSpinner } from "../common"; +// local imports +import { CreateWorkspace } from "./create-workspace"; +import { Invitations } from "./invitations"; +import { SwitchAccountDropdown } from "./switch-account-dropdown"; export enum ECreateOrJoinWorkspaceViews { WORKSPACE_CREATE = "WORKSPACE_CREATE", diff --git a/apps/web/core/components/onboarding/create-workspace.tsx b/apps/web/core/components/onboarding/create-workspace.tsx index 2e0fbe6f0..faa9af4e9 100644 --- a/apps/web/core/components/onboarding/create-workspace.tsx +++ b/apps/web/core/components/onboarding/create-workspace.tsx @@ -17,7 +17,8 @@ import { IUser, IWorkspace, TOnboardingSteps } from "@plane/types"; import { Button, CustomSelect, Input, Spinner, TOAST_TYPE, setToast } from "@plane/ui"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useUserProfile, useUserSettings, useWorkspace } from "@/hooks/store"; +import { useUserProfile, useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // services import { WorkspaceService } from "@/plane-web/services"; diff --git a/apps/web/core/components/onboarding/header.tsx b/apps/web/core/components/onboarding/header.tsx index d4021f925..efa6b4c51 100644 --- a/apps/web/core/components/onboarding/header.tsx +++ b/apps/web/core/components/onboarding/header.tsx @@ -7,10 +7,10 @@ import { ChevronLeft } from "lucide-react"; import { EOnboardingSteps, TOnboardingStep } from "@plane/types"; import { PlaneLockup, Tooltip } from "@plane/ui"; import { cn } from "@plane/utils"; -// components -import { SwitchAccountDropdown } from "@/components/onboarding"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; +// local imports +import { SwitchAccountDropdown } from "./switch-account-dropdown"; type OnboardingHeaderProps = { currentStep: EOnboardingSteps; diff --git a/apps/web/core/components/onboarding/index.ts b/apps/web/core/components/onboarding/index.ts index aef04aa04..1efe34c51 100644 --- a/apps/web/core/components/onboarding/index.ts +++ b/apps/web/core/components/onboarding/index.ts @@ -1,11 +1 @@ -export * from "./tour"; -export * from "./invite-members"; -export * from "./create-or-join-workspaces"; -export * from "./profile-setup"; -export * from "./create-workspace"; -export * from "./invitations"; -export * from "./step-indicator"; -export * from "./switch-account-dropdown"; -export * from "./switch-account-modal"; -export * from "./header"; export * from "./root"; diff --git a/apps/web/core/components/onboarding/invitations.tsx b/apps/web/core/components/onboarding/invitations.tsx index 1659cee6b..762db93c7 100644 --- a/apps/web/core/components/onboarding/invitations.tsx +++ b/apps/web/core/components/onboarding/invitations.tsx @@ -13,7 +13,8 @@ import { truncateText } from "@plane/utils"; import { WorkspaceLogo } from "@/components/workspace/logo"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useUserSettings, useWorkspace } from "@/hooks/store"; +import { useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // services import { WorkspaceService } from "@/plane-web/services"; diff --git a/apps/web/core/components/onboarding/profile-setup.tsx b/apps/web/core/components/onboarding/profile-setup.tsx index c9151a1b8..b25e9a6bd 100644 --- a/apps/web/core/components/onboarding/profile-setup.tsx +++ b/apps/web/core/components/onboarding/profile-setup.tsx @@ -17,12 +17,12 @@ import { IUser, TUserProfile, TOnboardingSteps } from "@plane/types"; import { Button, Input, PasswordStrengthIndicator, Spinner, TOAST_TYPE, setToast } from "@plane/ui"; // components import { getFileURL, getPasswordStrength } from "@plane/utils"; -import { UserImageUploadModal } from "@/components/core"; +import { UserImageUploadModal } from "@/components/core/modals/user-image-upload-modal"; // constants // helpers // hooks import { captureError, captureSuccess, captureView } from "@/helpers/event-tracker.helper"; -import { useUser, useUserProfile } from "@/hooks/store"; +import { useUser, useUserProfile } from "@/hooks/store/user"; // services import { AuthService } from "@/services/auth.service"; diff --git a/apps/web/core/components/onboarding/root.tsx b/apps/web/core/components/onboarding/root.tsx index fc997b4b6..8984aaf75 100644 --- a/apps/web/core/components/onboarding/root.tsx +++ b/apps/web/core/components/onboarding/root.tsx @@ -15,7 +15,8 @@ import { setToast, TOAST_TYPE } from "@plane/ui"; // helpers import { captureSuccess } from "@/helpers/event-tracker.helper"; // hooks -import { useUser, useUserProfile, useWorkspace } from "@/hooks/store"; +import { useUser, useUserProfile } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // local components import { OnboardingHeader } from "./header"; import { OnboardingStepRoot } from "./steps"; diff --git a/apps/web/core/components/onboarding/steps/index.ts b/apps/web/core/components/onboarding/steps/index.ts index aba743023..1efe34c51 100644 --- a/apps/web/core/components/onboarding/steps/index.ts +++ b/apps/web/core/components/onboarding/steps/index.ts @@ -1,6 +1 @@ -export * from "./profile"; -export * from "./role"; -export * from "./usecase"; -export * from "./workspace"; -export * from "./team"; export * from "./root"; diff --git a/apps/web/core/components/onboarding/steps/profile/root.tsx b/apps/web/core/components/onboarding/steps/profile/root.tsx index c2675ab13..90fc135d7 100644 --- a/apps/web/core/components/onboarding/steps/profile/root.tsx +++ b/apps/web/core/components/onboarding/steps/profile/root.tsx @@ -14,7 +14,7 @@ import { UserImageUploadModal } from "@/components/core/modals/user-image-upload // helpers import { captureError, captureView } from "@/helpers/event-tracker.helper"; // hooks -import { useUser, useUserProfile } from "@/hooks/store"; +import { useUser, useUserProfile } from "@/hooks/store/user"; // services import { AuthService } from "@/services/auth.service"; // local components diff --git a/apps/web/core/components/onboarding/steps/role/root.tsx b/apps/web/core/components/onboarding/steps/role/root.tsx index 32cdbffba..fb0e0d2b6 100644 --- a/apps/web/core/components/onboarding/steps/role/root.tsx +++ b/apps/web/core/components/onboarding/steps/role/root.tsx @@ -11,7 +11,7 @@ import { Button, TOAST_TYPE, setToast } from "@plane/ui"; // helpers import { captureError, captureSuccess, captureView } from "@/helpers/event-tracker.helper"; // hooks -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; // local components import { CommonOnboardingHeader } from "../common"; import { TProfileSetupFormValues } from "../profile/root"; diff --git a/apps/web/core/components/onboarding/steps/team/root.tsx b/apps/web/core/components/onboarding/steps/team/root.tsx index f78202a6e..f8a564d69 100644 --- a/apps/web/core/components/onboarding/steps/team/root.tsx +++ b/apps/web/core/components/onboarding/steps/team/root.tsx @@ -29,7 +29,8 @@ import { Button, Input, Spinner, TOAST_TYPE, setToast } from "@plane/ui"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useUser, useUserProfile, useWorkspace } from "@/hooks/store"; +import { useUser, useUserProfile } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // services import { WorkspaceService } from "@/plane-web/services"; // components diff --git a/apps/web/core/components/onboarding/steps/usecase/root.tsx b/apps/web/core/components/onboarding/steps/usecase/root.tsx index 97d39696c..ce4160899 100644 --- a/apps/web/core/components/onboarding/steps/usecase/root.tsx +++ b/apps/web/core/components/onboarding/steps/usecase/root.tsx @@ -12,7 +12,7 @@ import { cn } from "@plane/utils"; // helpers import { captureError, captureSuccess, captureView } from "@/helpers/event-tracker.helper"; // hooks -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; // local imports import { CommonOnboardingHeader } from "../common"; import { TProfileSetupFormValues } from "../profile/root"; diff --git a/apps/web/core/components/onboarding/steps/workspace/create.tsx b/apps/web/core/components/onboarding/steps/workspace/create.tsx index b14df36fd..b3f9d5151 100644 --- a/apps/web/core/components/onboarding/steps/workspace/create.tsx +++ b/apps/web/core/components/onboarding/steps/workspace/create.tsx @@ -18,7 +18,8 @@ import { cn } from "@plane/utils"; // helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; // hooks -import { useUserProfile, useUserSettings, useWorkspace } from "@/hooks/store"; +import { useUserProfile, useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane-web imports import { getIsWorkspaceCreationDisabled } from "@/plane-web/helpers/instance.helper"; import { WorkspaceService } from "@/plane-web/services"; diff --git a/apps/web/core/components/onboarding/steps/workspace/join-invites.tsx b/apps/web/core/components/onboarding/steps/workspace/join-invites.tsx index 680661eb5..d3fff2beb 100644 --- a/apps/web/core/components/onboarding/steps/workspace/join-invites.tsx +++ b/apps/web/core/components/onboarding/steps/workspace/join-invites.tsx @@ -11,7 +11,8 @@ import { WorkspaceLogo } from "@/components/workspace/logo"; // helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; // hooks -import { useUserSettings, useWorkspace } from "@/hooks/store"; +import { useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // services import { WorkspaceService } from "@/plane-web/services"; // local components diff --git a/apps/web/core/components/onboarding/steps/workspace/root.tsx b/apps/web/core/components/onboarding/steps/workspace/root.tsx index e2043f4d1..665f63aee 100644 --- a/apps/web/core/components/onboarding/steps/workspace/root.tsx +++ b/apps/web/core/components/onboarding/steps/workspace/root.tsx @@ -5,7 +5,7 @@ import { observer } from "mobx-react"; // plane imports import { ECreateOrJoinWorkspaceViews, EOnboardingSteps, IWorkspaceMemberInvitation } from "@plane/types"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // local components import { WorkspaceCreateStep, WorkspaceJoinInvitesStep } from "./"; diff --git a/apps/web/core/components/onboarding/switch-account-dropdown.tsx b/apps/web/core/components/onboarding/switch-account-dropdown.tsx index c8c19b811..0ce44a9bb 100644 --- a/apps/web/core/components/onboarding/switch-account-dropdown.tsx +++ b/apps/web/core/components/onboarding/switch-account-dropdown.tsx @@ -7,7 +7,7 @@ import { Menu, Transition } from "@headlessui/react"; import { cn, getFileURL } from "@plane/utils"; // helpers // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // components import { SwitchAccountModal } from "./switch-account-modal"; diff --git a/apps/web/core/components/onboarding/switch-account-modal.tsx b/apps/web/core/components/onboarding/switch-account-modal.tsx index e42257a5e..323f67a62 100644 --- a/apps/web/core/components/onboarding/switch-account-modal.tsx +++ b/apps/web/core/components/onboarding/switch-account-modal.tsx @@ -8,7 +8,7 @@ import { Dialog, Transition } from "@headlessui/react"; // ui import { Button, TOAST_TYPE, setToast } from "@plane/ui"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; import { useAppRouter } from "@/hooks/use-app-router"; type Props = { diff --git a/apps/web/core/components/onboarding/tour/index.ts b/apps/web/core/components/onboarding/tour/index.ts index 110e961a9..1efe34c51 100644 --- a/apps/web/core/components/onboarding/tour/index.ts +++ b/apps/web/core/components/onboarding/tour/index.ts @@ -1,2 +1 @@ export * from "./root"; -export * from "./sidebar"; diff --git a/apps/web/core/components/onboarding/tour/root.tsx b/apps/web/core/components/onboarding/tour/root.tsx index 529232b44..ae31e157a 100644 --- a/apps/web/core/components/onboarding/tour/root.tsx +++ b/apps/web/core/components/onboarding/tour/root.tsx @@ -4,23 +4,22 @@ import { useState } from "react"; import { observer } from "mobx-react"; import Image, { StaticImageData } from "next/image"; import { X } from "lucide-react"; -// ui +// plane imports import { PRODUCT_TOUR_TRACKER_ELEMENTS } from "@plane/constants"; import { Button, PlaneLockup } from "@plane/ui"; -// components -import { TourSidebar } from "@/components/onboarding"; -// constants -// hooks +// helpers import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useUser } from "@/hooks/store"; +// hooks +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useUser } from "@/hooks/store/user"; // assets import CyclesTour from "@/public/onboarding/cycles.webp"; import IssuesTour from "@/public/onboarding/issues.webp"; import ModulesTour from "@/public/onboarding/modules.webp"; import PagesTour from "@/public/onboarding/pages.webp"; import ViewsTour from "@/public/onboarding/views.webp"; - -// constants +// local imports +import { TourSidebar } from "./sidebar"; type Props = { onComplete: () => void; diff --git a/apps/web/core/components/pages/dropdowns/actions.tsx b/apps/web/core/components/pages/dropdowns/actions.tsx index 538d0b855..3b08dbef4 100644 --- a/apps/web/core/components/pages/dropdowns/actions.tsx +++ b/apps/web/core/components/pages/dropdowns/actions.tsx @@ -18,12 +18,12 @@ import { // constants import { EPageAccess, PROJECT_PAGE_TRACKER_ELEMENTS } from "@plane/constants"; // plane editor -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // plane ui import { ArchiveIcon, ContextMenu, CustomMenu, TContextMenuItem } from "@plane/ui"; // components import { cn } from "@plane/utils"; -import { DeletePageModal } from "@/components/pages"; +import { DeletePageModal } from "@/components/pages/modals/delete-page-modal"; // helpers // hooks import { captureClick } from "@/helpers/event-tracker.helper"; @@ -34,7 +34,7 @@ import { MovePageModal } from "@/plane-web/components/pages"; import { EPageStoreType } from "@/plane-web/hooks/store"; import { usePageFlag } from "@/plane-web/hooks/use-page-flag"; // store types -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; export type TPageActions = | "full-screen" diff --git a/apps/web/core/components/pages/editor/editor-body.tsx b/apps/web/core/components/pages/editor/editor-body.tsx index 97e3ba133..bb7e934d6 100644 --- a/apps/web/core/components/pages/editor/editor-body.tsx +++ b/apps/web/core/components/pages/editor/editor-body.tsx @@ -3,24 +3,24 @@ import { observer } from "mobx-react"; import { LIVE_BASE_PATH, LIVE_BASE_URL } from "@plane/constants"; import { CollaborativeDocumentEditorWithRef, - EditorRefApi, - TAIMenuProps, - TDisplayConfig, - TFileHandler, - TRealtimeConfig, - TServerHandler, + type EditorRefApi, + type TAIMenuProps, + type TDisplayConfig, + type TFileHandler, + type TRealtimeConfig, + type TServerHandler, } from "@plane/editor"; import { useTranslation } from "@plane/i18n"; import { TSearchEntityRequestPayload, TSearchResponse, TWebhookConnectionQueryParams } from "@plane/types"; import { ERowVariant, Row } from "@plane/ui"; import { cn, generateRandomColor, hslToHex } from "@plane/utils"; // components -import { EditorMentionsRoot } from "@/components/editor"; -import { PageContentBrowser, PageContentLoader, PageEditorTitle } from "@/components/pages"; -// helpers +import { EditorMentionsRoot } from "@/components/editor/embeds/mentions"; // hooks import { useEditorMention } from "@/hooks/editor"; -import { useUser, useWorkspace, useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUser } from "@/hooks/store/user"; import { usePageFilters } from "@/hooks/use-page-filters"; // plane web components import { EditorAIMenu } from "@/plane-web/components/pages"; @@ -28,9 +28,12 @@ import { EditorAIMenu } from "@/plane-web/components/pages"; import { useEditorFlagging } from "@/plane-web/hooks/use-editor-flagging"; import { useIssueEmbed } from "@/plane-web/hooks/use-issue-embed"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports +import { PageContentLoader } from "../loaders/page-content-loader"; import { PageEditorHeaderRoot } from "./header"; +import { PageContentBrowser } from "./summary"; +import { PageEditorTitle } from "./title"; export type TEditorBodyConfig = { fileHandler: TFileHandler; diff --git a/apps/web/core/components/pages/editor/header/logo-picker.tsx b/apps/web/core/components/pages/editor/header/logo-picker.tsx index 677046675..63cb65099 100644 --- a/apps/web/core/components/pages/editor/header/logo-picker.tsx +++ b/apps/web/core/components/pages/editor/header/logo-picker.tsx @@ -4,9 +4,9 @@ import { observer } from "mobx-react"; import { EmojiIconPicker, EmojiIconPickerTypes } from "@plane/ui"; import { cn } from "@plane/utils"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { className?: string; diff --git a/apps/web/core/components/pages/editor/header/root.tsx b/apps/web/core/components/pages/editor/header/root.tsx index e8dd98e9a..17092d8c5 100644 --- a/apps/web/core/components/pages/editor/header/root.tsx +++ b/apps/web/core/components/pages/editor/header/root.tsx @@ -5,7 +5,7 @@ import { SmilePlus } from "lucide-react"; import { EmojiIconPicker, EmojiIconPickerTypes } from "@plane/ui"; import { cn } from "@plane/utils"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports import { PageEditorHeaderLogoPicker } from "./logo-picker"; diff --git a/apps/web/core/components/pages/editor/index.ts b/apps/web/core/components/pages/editor/index.ts deleted file mode 100644 index 0c3912e09..000000000 --- a/apps/web/core/components/pages/editor/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./editor-body"; -export * from "./page-root"; -export * from "./summary"; -export * from "./title"; -export * from "./toolbar"; diff --git a/apps/web/core/components/pages/editor/page-root.tsx b/apps/web/core/components/pages/editor/page-root.tsx index e0e2fa9f4..d43c319c1 100644 --- a/apps/web/core/components/pages/editor/page-root.tsx +++ b/apps/web/core/components/pages/editor/page-root.tsx @@ -2,25 +2,16 @@ import { useCallback, useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; import { useSearchParams } from "next/navigation"; // plane imports -import { EditorRefApi } from "@plane/editor"; -import { TDocumentPayload, TPage, TPageVersion, TWebhookConnectionQueryParams } from "@plane/types"; -// components -import { - PageEditorToolbarRoot, - PageEditorBody, - PageVersionsOverlay, - PagesVersionEditor, - TEditorBodyHandlers, - TEditorBodyConfig, -} from "@/components/pages"; +import type { EditorRefApi } from "@plane/editor"; +import type { TDocumentPayload, TPage, TPageVersion, TWebhookConnectionQueryParams } from "@plane/types"; // hooks import { useAppRouter } from "@/hooks/use-app-router"; import { usePageFallback } from "@/hooks/use-page-fallback"; import { useQueryParams } from "@/hooks/use-query-params"; // plane web import -import { TPageNavigationPaneTab } from "@/plane-web/components/pages/navigation-pane"; +import type { TPageNavigationPaneTab } from "@/plane-web/components/pages/navigation-pane"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports import { PAGE_NAVIGATION_PANE_TAB_KEYS, @@ -28,6 +19,10 @@ import { PAGE_NAVIGATION_PANE_VERSION_QUERY_PARAM, PageNavigationPaneRoot, } from "../navigation-pane"; +import { PageVersionsOverlay } from "../version"; +import { PagesVersionEditor } from "../version/editor"; +import { PageEditorBody, TEditorBodyConfig, TEditorBodyHandlers } from "./editor-body"; +import { PageEditorToolbarRoot } from "./toolbar"; export type TPageRootHandlers = { create: (payload: Partial) => Promise | undefined>; diff --git a/apps/web/core/components/pages/editor/summary/content-browser.tsx b/apps/web/core/components/pages/editor/summary/content-browser.tsx index 507deb703..04d31f6b2 100644 --- a/apps/web/core/components/pages/editor/summary/content-browser.tsx +++ b/apps/web/core/components/pages/editor/summary/content-browser.tsx @@ -1,6 +1,6 @@ import { useState, useEffect, useCallback } from "react"; // plane imports -import { EditorRefApi, IMarking } from "@plane/editor"; +import type { EditorRefApi, IMarking } from "@plane/editor"; import { cn } from "@plane/utils"; // components import { OutlineHeading1, OutlineHeading2, OutlineHeading3, THeadingComponentProps } from "./heading-components"; diff --git a/apps/web/core/components/pages/editor/title.tsx b/apps/web/core/components/pages/editor/title.tsx index 416c43e07..fc5c7b4ff 100644 --- a/apps/web/core/components/pages/editor/title.tsx +++ b/apps/web/core/components/pages/editor/title.tsx @@ -3,7 +3,7 @@ import { useState } from "react"; import { observer } from "mobx-react"; // editor -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // ui import { TextArea } from "@plane/ui"; import { cn, getPageName } from "@plane/utils"; diff --git a/apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx b/apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx index b0a3c658f..bc89c2a8a 100644 --- a/apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx +++ b/apps/web/core/components/pages/editor/toolbar/color-dropdown.tsx @@ -4,7 +4,7 @@ import { memo } from "react"; import { ALargeSmall, Ban } from "lucide-react"; import { Popover } from "@headlessui/react"; // plane editor -import { COLORS_LIST, TEditorCommands } from "@plane/editor"; +import { COLORS_LIST, type TEditorCommands } from "@plane/editor"; // helpers import { cn } from "@plane/utils"; diff --git a/apps/web/core/components/pages/editor/toolbar/options-dropdown.tsx b/apps/web/core/components/pages/editor/toolbar/options-dropdown.tsx index a5ba7c606..b388395d0 100644 --- a/apps/web/core/components/pages/editor/toolbar/options-dropdown.tsx +++ b/apps/web/core/components/pages/editor/toolbar/options-dropdown.tsx @@ -6,8 +6,6 @@ import { ArrowUpToLine, Clipboard, History } from "lucide-react"; // plane imports import { TContextMenuItem, TOAST_TYPE, ToggleSwitch, setToast } from "@plane/ui"; import { copyTextToClipboard } from "@plane/utils"; -// components -import { ExportPageModal, PageActions, TPageActions } from "@/components/pages"; // hooks import { useAppRouter } from "@/hooks/use-app-router"; import { usePageFilters } from "@/hooks/use-page-filters"; @@ -16,7 +14,10 @@ import { useQueryParams } from "@/hooks/use-query-params"; import { TPageNavigationPaneTab } from "@/plane-web/components/pages/navigation-pane"; import { EPageStoreType } from "@/plane-web/hooks/store"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; +// local imports +import { PageActions, TPageActions } from "../../dropdowns"; +import { ExportPageModal } from "../../modals/export-page-modal"; import { PAGE_NAVIGATION_PANE_TABS_QUERY_PARAM } from "../../navigation-pane"; type Props = { diff --git a/apps/web/core/components/pages/editor/toolbar/root.tsx b/apps/web/core/components/pages/editor/toolbar/root.tsx index e779c618e..dbf1c4cee 100644 --- a/apps/web/core/components/pages/editor/toolbar/root.tsx +++ b/apps/web/core/components/pages/editor/toolbar/root.tsx @@ -5,14 +5,13 @@ import { useTranslation } from "@plane/i18n"; import { Tooltip } from "@plane/ui"; import { cn } from "@plane/utils"; // components -import { PageToolbar } from "@/components/pages"; -// helpers +import { PageToolbar } from "@/components/pages/editor/toolbar"; // hooks import { usePageFilters } from "@/hooks/use-page-filters"; // plane web components import { PageCollaboratorsList } from "@/plane-web/components/pages/header/collaborators-list"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { handleOpenNavigationPane: () => void; diff --git a/apps/web/core/components/pages/editor/toolbar/toolbar.tsx b/apps/web/core/components/pages/editor/toolbar/toolbar.tsx index ca85e6066..8de7d72a9 100644 --- a/apps/web/core/components/pages/editor/toolbar/toolbar.tsx +++ b/apps/web/core/components/pages/editor/toolbar/toolbar.tsx @@ -2,16 +2,14 @@ import React, { useEffect, useState, useCallback } from "react"; import { Check, ChevronDown } from "lucide-react"; -// editor -import { EditorRefApi } from "@plane/editor"; -// ui +// plane imports +import type { EditorRefApi } from "@plane/editor"; import { CustomMenu, Tooltip } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { ColorDropdown } from "@/components/pages"; // constants import { TOOLBAR_ITEMS, TYPOGRAPHY_ITEMS, ToolbarMenuItem } from "@/constants/editor"; -// helpers +// local imports +import { ColorDropdown } from "./color-dropdown"; type Props = { editorRef: EditorRefApi; diff --git a/apps/web/core/components/pages/header/actions.tsx b/apps/web/core/components/pages/header/actions.tsx index ccf07191a..6b56a72d8 100644 --- a/apps/web/core/components/pages/header/actions.tsx +++ b/apps/web/core/components/pages/header/actions.tsx @@ -1,8 +1,6 @@ "use client"; import { observer } from "mobx-react"; -// components -import { PageOptionsDropdown } from "@/components/pages"; // plane web components import { PageLockControl } from "@/plane-web/components/pages/header/lock-control"; import { PageMoveControl } from "@/plane-web/components/pages/header/move-control"; @@ -10,8 +8,9 @@ import { PageShareControl } from "@/plane-web/components/pages/header/share-cont // plane web hooks import { EPageStoreType } from "@/plane-web/hooks/store"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports +import { PageOptionsDropdown } from "../editor/toolbar"; import { PageArchivedBadge } from "./archived-badge"; import { PageCopyLinkControl } from "./copy-link-control"; import { PageFavoriteControl } from "./favorite-control"; diff --git a/apps/web/core/components/pages/header/archived-badge.tsx b/apps/web/core/components/pages/header/archived-badge.tsx index 24f239c87..afe24fd59 100644 --- a/apps/web/core/components/pages/header/archived-badge.tsx +++ b/apps/web/core/components/pages/header/archived-badge.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { ArchiveIcon } from "@plane/ui"; import { renderFormattedDate } from "@plane/utils"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/header/copy-link-control.tsx b/apps/web/core/components/pages/header/copy-link-control.tsx index a498e3ab9..50c853cc6 100644 --- a/apps/web/core/components/pages/header/copy-link-control.tsx +++ b/apps/web/core/components/pages/header/copy-link-control.tsx @@ -3,7 +3,7 @@ import { Link } from "lucide-react"; // hooks import { usePageOperations } from "@/hooks/use-page-operations"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/header/favorite-control.tsx b/apps/web/core/components/pages/header/favorite-control.tsx index e94c53bb4..723ee28fc 100644 --- a/apps/web/core/components/pages/header/favorite-control.tsx +++ b/apps/web/core/components/pages/header/favorite-control.tsx @@ -8,7 +8,7 @@ import { captureClick } from "@/helpers/event-tracker.helper"; // hooks import { usePageOperations } from "@/hooks/use-page-operations"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/header/offline-badge.tsx b/apps/web/core/components/pages/header/offline-badge.tsx index 31e68e576..c1c719187 100644 --- a/apps/web/core/components/pages/header/offline-badge.tsx +++ b/apps/web/core/components/pages/header/offline-badge.tsx @@ -4,7 +4,7 @@ import { Tooltip } from "@plane/ui"; // hooks import useOnlineStatus from "@/hooks/use-online-status"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/header/root.tsx b/apps/web/core/components/pages/header/root.tsx index f546c804b..bd4012846 100644 --- a/apps/web/core/components/pages/header/root.tsx +++ b/apps/web/core/components/pages/header/root.tsx @@ -1,24 +1,23 @@ import { useCallback } from "react"; import { observer } from "mobx-react"; import { ListFilter } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; import { TPageFilterProps, TPageNavigationTabs } from "@plane/types"; -// components import { Header, EHeaderVariant } from "@plane/ui"; import { calculateTotalFilters } from "@plane/utils"; -import { FiltersDropdown } from "@/components/issues"; -import { - PageAppliedFiltersList, - PageFiltersSelection, - PageOrderByDropdown, - PageSearchInput, - PageTabNavigation, -} from "@/components/pages"; -// helpers +// components +import { FiltersDropdown } from "@/components/issues/issue-layouts/filters"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; // plane web hooks import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; +// local imports +import { PageAppliedFiltersList } from "../list/applied-filters"; +import { PageFiltersSelection } from "../list/filters"; +import { PageOrderByDropdown } from "../list/order-by"; +import { PageSearchInput } from "../list/search-input"; +import { PageTabNavigation } from "../list/tab-navigation"; type Props = { pageType: TPageNavigationTabs; diff --git a/apps/web/core/components/pages/index.ts b/apps/web/core/components/pages/index.ts deleted file mode 100644 index d372f2b89..000000000 --- a/apps/web/core/components/pages/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from "./dropdowns"; -export * from "./editor"; -export * from "./header"; -export * from "./list"; -export * from "./loaders"; -export * from "./modals"; -export * from "./version"; -export * from "./pages-list-main-content"; -export * from "./pages-list-view"; diff --git a/apps/web/core/components/pages/list/applied-filters/root.tsx b/apps/web/core/components/pages/list/applied-filters/root.tsx index 99558163c..6db9e9e3f 100644 --- a/apps/web/core/components/pages/list/applied-filters/root.tsx +++ b/apps/web/core/components/pages/list/applied-filters/root.tsx @@ -1,12 +1,12 @@ import { X } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; import { TPageFilterProps } from "@plane/types"; -// components import { Tag } from "@plane/ui"; import { replaceUnderscoreIfSnakeCase } from "@plane/utils"; -import { AppliedDateFilters, AppliedMembersFilters } from "@/components/common/applied-filters"; -// helpers -// types +// components +import { AppliedDateFilters } from "@/components/common/applied-filters/date"; +import { AppliedMembersFilters } from "@/components/common/applied-filters/members"; type Props = { appliedFilters: TPageFilterProps; diff --git a/apps/web/core/components/pages/list/block-item-action.tsx b/apps/web/core/components/pages/list/block-item-action.tsx index c3cb980e1..cc3fe0a3e 100644 --- a/apps/web/core/components/pages/list/block-item-action.tsx +++ b/apps/web/core/components/pages/list/block-item-action.tsx @@ -3,22 +3,21 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; import { Earth, Info, Lock, Minus } from "lucide-react"; -// constants +// plane imports import { PROJECT_PAGE_TRACKER_ELEMENTS } from "@plane/constants"; -// ui import { Avatar, FavoriteStar, Tooltip } from "@plane/ui"; import { renderFormattedDate, getFileURL } from "@plane/utils"; -// components -import { PageActions } from "@/components/pages"; // helpers import { captureClick } from "@/helpers/event-tracker.helper"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; import { usePageOperations } from "@/hooks/use-page-operations"; // plane web hooks import { EPageStoreType } from "@/plane-web/hooks/store"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; +// local imports +import { PageActions } from "../dropdowns"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/list/block.tsx b/apps/web/core/components/pages/list/block.tsx index 6cf7471ba..91981529c 100644 --- a/apps/web/core/components/pages/list/block.tsx +++ b/apps/web/core/components/pages/list/block.tsx @@ -3,12 +3,12 @@ import { FC, useRef } from "react"; import { observer } from "mobx-react"; import { FileText } from "lucide-react"; -// components +// plane imports import { getPageName } from "@plane/utils"; -import { Logo } from "@/components/common"; +// components +import { Logo } from "@/components/common/logo"; import { ListItem } from "@/components/core/list"; -import { BlockItemAction } from "@/components/pages/list"; -// helpers +import { BlockItemAction } from "@/components/pages/list/block-item-action"; // hooks import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web hooks diff --git a/apps/web/core/components/pages/list/filters/root.tsx b/apps/web/core/components/pages/list/filters/root.tsx index 7871b76cd..2c9f6f103 100644 --- a/apps/web/core/components/pages/list/filters/root.tsx +++ b/apps/web/core/components/pages/list/filters/root.tsx @@ -3,8 +3,9 @@ import { observer } from "mobx-react"; import { Search, X } from "lucide-react"; import { TPageFilterProps, TPageFilters } from "@plane/types"; // components -import { FilterCreatedBy, FilterCreatedDate } from "@/components/common/filters"; -import { FilterOption } from "@/components/issues"; +import { FilterCreatedDate } from "@/components/common/filters/created-at"; +import { FilterCreatedBy } from "@/components/common/filters/created-by"; +import { FilterOption } from "@/components/issues/issue-layouts/filters"; import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { diff --git a/apps/web/core/components/pages/list/index.ts b/apps/web/core/components/pages/list/index.ts index 88f7633a0..1efe34c51 100644 --- a/apps/web/core/components/pages/list/index.ts +++ b/apps/web/core/components/pages/list/index.ts @@ -1,8 +1 @@ -export * from "./applied-filters"; -export * from "./filters"; -export * from "./block"; -export * from "./block-item-action"; -export * from "./order-by"; export * from "./root"; -export * from "./search-input"; -export * from "./tab-navigation"; diff --git a/apps/web/core/components/pages/list/root.tsx b/apps/web/core/components/pages/list/root.tsx index 554e48855..85fccdb59 100644 --- a/apps/web/core/components/pages/list/root.tsx +++ b/apps/web/core/components/pages/list/root.tsx @@ -6,8 +6,8 @@ import { TPageNavigationTabs } from "@plane/types"; import { ListLayout } from "@/components/core/list"; // plane web hooks import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; -// components -import { PageListBlock } from "./"; +// local imports +import { PageListBlock } from "./block"; type TPagesListRoot = { pageType: TPageNavigationTabs; diff --git a/apps/web/core/components/pages/loaders/index.ts b/apps/web/core/components/pages/loaders/index.ts deleted file mode 100644 index 8760eede6..000000000 --- a/apps/web/core/components/pages/loaders/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./page-content-loader"; -export * from "./page-loader"; diff --git a/apps/web/core/components/pages/modals/create-page-modal.tsx b/apps/web/core/components/pages/modals/create-page-modal.tsx index 9e7472a58..b0b180a70 100644 --- a/apps/web/core/components/pages/modals/create-page-modal.tsx +++ b/apps/web/core/components/pages/modals/create-page-modal.tsx @@ -4,13 +4,13 @@ import { EPageAccess, PROJECT_PAGE_TRACKER_EVENTS } from "@plane/constants"; import { TPage } from "@plane/types"; // ui import { EModalPosition, EModalWidth, ModalCore } from "@plane/ui"; -// components -import { PageForm } from "@/components/pages"; // hooks import { captureSuccess, captureError } from "@/helpers/event-tracker.helper"; import { useAppRouter } from "@/hooks/use-app-router"; // plane web hooks import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; +// local imports +import { PageForm } from "./page-form"; type Props = { workspaceSlug: string; diff --git a/apps/web/core/components/pages/modals/delete-page-modal.tsx b/apps/web/core/components/pages/modals/delete-page-modal.tsx index 992d2b95b..d35103672 100644 --- a/apps/web/core/components/pages/modals/delete-page-modal.tsx +++ b/apps/web/core/components/pages/modals/delete-page-modal.tsx @@ -13,7 +13,7 @@ import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; import { useAppRouter } from "@/hooks/use-app-router"; import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type TConfirmPageDeletionProps = { isOpen: boolean; diff --git a/apps/web/core/components/pages/modals/export-page-modal.tsx b/apps/web/core/components/pages/modals/export-page-modal.tsx index 67e2f629d..ad519094b 100644 --- a/apps/web/core/components/pages/modals/export-page-modal.tsx +++ b/apps/web/core/components/pages/modals/export-page-modal.tsx @@ -4,11 +4,11 @@ import { useState } from "react"; import { PageProps, pdf } from "@react-pdf/renderer"; import { Controller, useForm } from "react-hook-form"; // plane editor -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; // plane ui import { Button, CustomSelect, EModalPosition, EModalWidth, ModalCore, setToast, TOAST_TYPE } from "@plane/ui"; // components -import { PDFDocument } from "@/components/editor"; +import { PDFDocument } from "@/components/editor/pdf"; // hooks import { useParseEditorContent } from "@/hooks/use-parse-editor-content"; diff --git a/apps/web/core/components/pages/modals/index.ts b/apps/web/core/components/pages/modals/index.ts deleted file mode 100644 index d0f9e6757..000000000 --- a/apps/web/core/components/pages/modals/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./create-page-modal"; -export * from "./delete-page-modal"; -export * from "./export-page-modal"; -export * from "./page-form"; diff --git a/apps/web/core/components/pages/modals/page-form.tsx b/apps/web/core/components/pages/modals/page-form.tsx index 32a2a8ad2..f1c4c0721 100644 --- a/apps/web/core/components/pages/modals/page-form.tsx +++ b/apps/web/core/components/pages/modals/page-form.tsx @@ -1,20 +1,16 @@ "use client"; import { FormEvent, useState } from "react"; -// types import { FileText, Globe2, Lock, LucideIcon } from "lucide-react"; // plane imports import { ETabIndices, EPageAccess } from "@plane/constants"; -// i18n import { useTranslation } from "@plane/i18n"; -import { TPage } from "@plane/types"; -// ui +import type { TPage } from "@plane/types"; import { Button, EmojiIconPicker, EmojiIconPickerTypes, Input } from "@plane/ui"; import { convertHexEmojiToDecimal, getTabIndex } from "@plane/utils"; -import { Logo } from "@/components/common"; -// constants +// components import { AccessField } from "@/components/common/access-field"; -// helpers +import { Logo } from "@/components/common/logo"; // hooks import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/pages/navigation-pane/root.tsx b/apps/web/core/components/pages/navigation-pane/root.tsx index a2497d385..688e45078 100644 --- a/apps/web/core/components/pages/navigation-pane/root.tsx +++ b/apps/web/core/components/pages/navigation-pane/root.tsx @@ -11,9 +11,9 @@ import { useQueryParams } from "@/hooks/use-query-params"; // plane web components import { TPageNavigationPaneTab } from "@/plane-web/components/pages/navigation-pane"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports -import { TPageRootHandlers } from "../editor"; +import { TPageRootHandlers } from "../editor/page-root"; import { PageNavigationPaneTabPanelsRoot } from "./tab-panels/root"; import { PageNavigationPaneTabsList } from "./tabs-list"; import { diff --git a/apps/web/core/components/pages/navigation-pane/tab-panels/assets.tsx b/apps/web/core/components/pages/navigation-pane/tab-panels/assets.tsx index 357b759ad..f551f07c6 100644 --- a/apps/web/core/components/pages/navigation-pane/tab-panels/assets.tsx +++ b/apps/web/core/components/pages/navigation-pane/tab-panels/assets.tsx @@ -10,7 +10,7 @@ import { getEditorAssetDownloadSrc, getEditorAssetSrc } from "@plane/utils"; import { AdditionalPageNavigationPaneAssetItem } from "@/plane-web/components/pages/navigation-pane/tab-panels/assets"; import { PageNavigationPaneAssetsTabEmptyState } from "@/plane-web/components/pages/navigation-pane/tab-panels/empty-states/assets"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/navigation-pane/tab-panels/info/actors-info.tsx b/apps/web/core/components/pages/navigation-pane/tab-panels/info/actors-info.tsx index d0bd1b907..dcd5221ea 100644 --- a/apps/web/core/components/pages/navigation-pane/tab-panels/info/actors-info.tsx +++ b/apps/web/core/components/pages/navigation-pane/tab-panels/info/actors-info.tsx @@ -6,9 +6,9 @@ import { useTranslation } from "@plane/i18n"; import { Avatar } from "@plane/ui"; import { calculateTimeAgoShort, getFileURL, renderFormattedDate } from "@plane/utils"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/navigation-pane/tab-panels/info/document-info.tsx b/apps/web/core/components/pages/navigation-pane/tab-panels/info/document-info.tsx index b301e9cbe..dd23835c5 100644 --- a/apps/web/core/components/pages/navigation-pane/tab-panels/info/document-info.tsx +++ b/apps/web/core/components/pages/navigation-pane/tab-panels/info/document-info.tsx @@ -5,7 +5,7 @@ import type { TDocumentInfo } from "@plane/editor"; import { useTranslation } from "@plane/i18n"; import { getReadTimeFromWordsCount } from "@plane/utils"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/navigation-pane/tab-panels/info/root.tsx b/apps/web/core/components/pages/navigation-pane/tab-panels/info/root.tsx index 77edc24e0..54aaffb6f 100644 --- a/apps/web/core/components/pages/navigation-pane/tab-panels/info/root.tsx +++ b/apps/web/core/components/pages/navigation-pane/tab-panels/info/root.tsx @@ -1,8 +1,8 @@ import { observer } from "mobx-react"; // components -import { TPageRootHandlers } from "@/components/pages/editor"; +import type { TPageRootHandlers } from "@/components/pages/editor/page-root"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports import { PageNavigationPaneInfoTabActorsInfo } from "./actors-info"; import { PageNavigationPaneInfoTabDocumentInfo } from "./document-info"; diff --git a/apps/web/core/components/pages/navigation-pane/tab-panels/info/version-history.tsx b/apps/web/core/components/pages/navigation-pane/tab-panels/info/version-history.tsx index d1454b12c..2eb918309 100644 --- a/apps/web/core/components/pages/navigation-pane/tab-panels/info/version-history.tsx +++ b/apps/web/core/components/pages/navigation-pane/tab-panels/info/version-history.tsx @@ -9,12 +9,12 @@ import { TPageVersion } from "@plane/types"; import { Avatar } from "@plane/ui"; import { cn, getFileURL, renderFormattedDate, renderFormattedTime } from "@plane/utils"; // components -import { TPageRootHandlers } from "@/components/pages/editor"; +import type { TPageRootHandlers } from "@/components/pages/editor/page-root"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; import { useQueryParams } from "@/hooks/use-query-params"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports import { PAGE_NAVIGATION_PANE_VERSION_QUERY_PARAM } from "../.."; diff --git a/apps/web/core/components/pages/navigation-pane/tab-panels/outline.tsx b/apps/web/core/components/pages/navigation-pane/tab-panels/outline.tsx index d563e52eb..eb9a8251a 100644 --- a/apps/web/core/components/pages/navigation-pane/tab-panels/outline.tsx +++ b/apps/web/core/components/pages/navigation-pane/tab-panels/outline.tsx @@ -1,9 +1,9 @@ // plane web imports import { PageNavigationPaneOutlineTabEmptyState } from "@/plane-web/components/pages/navigation-pane/tab-panels/empty-states/outline"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports -import { PageContentBrowser } from "../../editor"; +import { PageContentBrowser } from "../../editor/summary"; type Props = { page: TPageInstance; diff --git a/apps/web/core/components/pages/navigation-pane/tab-panels/root.tsx b/apps/web/core/components/pages/navigation-pane/tab-panels/root.tsx index c9880f0d5..6c4b4f28c 100644 --- a/apps/web/core/components/pages/navigation-pane/tab-panels/root.tsx +++ b/apps/web/core/components/pages/navigation-pane/tab-panels/root.tsx @@ -1,12 +1,12 @@ import React from "react"; import { Tab } from "@headlessui/react"; // components -import { TPageRootHandlers } from "@/components/pages/editor"; +import type { TPageRootHandlers } from "@/components/pages/editor/page-root"; // plane web imports import { ORDERED_PAGE_NAVIGATION_TABS_LIST } from "@/plane-web/components/pages/navigation-pane"; import { PageNavigationPaneAdditionalTabPanelsRoot } from "@/plane-web/components/pages/navigation-pane/tab-panels/root"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local imports import { PageNavigationPaneAssetsTabPanel } from "./assets"; import { PageNavigationPaneInfoTabPanel } from "./info/root"; diff --git a/apps/web/core/components/pages/pages-list-main-content.tsx b/apps/web/core/components/pages/pages-list-main-content.tsx index c5e466e89..886daaa0e 100644 --- a/apps/web/core/components/pages/pages-list-main-content.tsx +++ b/apps/web/core/components/pages/pages-list-main-content.tsx @@ -5,10 +5,11 @@ import { EUserPermissionsLevel, EPageAccess, PROJECT_PAGE_TRACKER_ELEMENTS } fro import { useTranslation } from "@plane/i18n"; import { EUserProjectRoles, TPageNavigationTabs } from "@plane/types"; // components -import { DetailedEmptyState } from "@/components/empty-state"; -import { PageLoader } from "@/components/pages"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { PageLoader } from "@/components/pages/loaders/page-loader"; import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; // plane web hooks import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; diff --git a/apps/web/core/components/pages/pages-list-view.tsx b/apps/web/core/components/pages/pages-list-view.tsx index eccaf5e9b..d4d4b6157 100644 --- a/apps/web/core/components/pages/pages-list-view.tsx +++ b/apps/web/core/components/pages/pages-list-view.tsx @@ -1,10 +1,11 @@ import { observer } from "mobx-react"; import useSWR from "swr"; import { TPageNavigationTabs } from "@plane/types"; -// components -import { PagesListHeaderRoot, PagesListMainContent } from "@/components/pages"; // plane web hooks import { EPageStoreType, usePageStore } from "@/plane-web/hooks/store"; +// local imports +import { PagesListHeaderRoot } from "./header"; +import { PagesListMainContent } from "./pages-list-main-content"; type TPageView = { children: React.ReactNode; diff --git a/apps/web/core/components/pages/version/editor.tsx b/apps/web/core/components/pages/version/editor.tsx index b4aec1bb5..f09f3724e 100644 --- a/apps/web/core/components/pages/version/editor.tsx +++ b/apps/web/core/components/pages/version/editor.tsx @@ -1,13 +1,13 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; // plane imports -import { TDisplayConfig } from "@plane/editor"; +import type { TDisplayConfig } from "@plane/editor"; import { TPageVersion } from "@plane/types"; import { Loader } from "@plane/ui"; // components import { DocumentEditor } from "@/components/editor/document/editor"; // hooks -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; import { usePageFilters } from "@/hooks/use-page-filters"; export type TVersionEditorProps = { diff --git a/apps/web/core/components/pages/version/index.ts b/apps/web/core/components/pages/version/index.ts index 5da43e959..1efe34c51 100644 --- a/apps/web/core/components/pages/version/index.ts +++ b/apps/web/core/components/pages/version/index.ts @@ -1,3 +1 @@ -export * from "./editor"; -export * from "./main-content"; export * from "./root"; diff --git a/apps/web/core/components/pages/version/main-content.tsx b/apps/web/core/components/pages/version/main-content.tsx index ab05ba256..40c861b69 100644 --- a/apps/web/core/components/pages/version/main-content.tsx +++ b/apps/web/core/components/pages/version/main-content.tsx @@ -2,14 +2,12 @@ import { useState } from "react"; import { observer } from "mobx-react"; import useSWR from "swr"; import { EyeIcon, TriangleAlert } from "lucide-react"; -// plane types +// plane imports import { TPageVersion } from "@plane/types"; -// plane ui import { Button, setToast, TOAST_TYPE } from "@plane/ui"; -// components import { renderFormattedDate, renderFormattedTime } from "@plane/utils"; -import { TVersionEditorProps } from "@/components/pages"; -// helpers +// local imports +import { TVersionEditorProps } from "./editor"; type Props = { activeVersion: string | null; diff --git a/apps/web/core/components/pages/version/root.tsx b/apps/web/core/components/pages/version/root.tsx index 64b4f43da..df2f39942 100644 --- a/apps/web/core/components/pages/version/root.tsx +++ b/apps/web/core/components/pages/version/root.tsx @@ -4,12 +4,12 @@ import { useRouter, useSearchParams } from "next/navigation"; // plane imports import { TPageVersion } from "@plane/types"; import { cn } from "@plane/utils"; -// components -import { PageVersionsMainContent, TVersionEditorProps } from "@/components/pages"; // hooks import { useQueryParams } from "@/hooks/use-query-params"; // local imports import { PAGE_NAVIGATION_PANE_VERSION_QUERY_PARAM, PAGE_NAVIGATION_PANE_WIDTH } from "../navigation-pane"; +import { TVersionEditorProps } from "./editor"; +import { PageVersionsMainContent } from "./main-content"; type Props = { editorComponent: React.FC; diff --git a/apps/web/core/components/profile/activity/activity-list.tsx b/apps/web/core/components/profile/activity/activity-list.tsx index 34886eb59..ff033e272 100644 --- a/apps/web/core/components/profile/activity/activity-list.tsx +++ b/apps/web/core/components/profile/activity/activity-list.tsx @@ -1,20 +1,17 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { useParams } from "next/navigation"; -// icons import { History, MessageSquare } from "lucide-react"; +// plane imports import { IUserActivityResponse } from "@plane/types"; import { calculateTimeAgo, getFileURL } from "@plane/utils"; -// hooks // components -import { ActivityIcon, ActivityMessage, IssueLink } from "@/components/core"; -// editor -import { RichTextEditor } from "@/components/editor"; -// ui -import { ActivitySettingsLoader } from "@/components/ui"; -// helpers +import { ActivityIcon, ActivityMessage, IssueLink } from "@/components/core/activity"; +import { RichTextEditor } from "@/components/editor/rich-text"; +import { ActivitySettingsLoader } from "@/components/ui/loader/settings/activity"; // hooks -import { useUser, useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useUser } from "@/hooks/store/user"; type Props = { activity: IUserActivityResponse | undefined; diff --git a/apps/web/core/components/profile/activity/index.ts b/apps/web/core/components/profile/activity/index.ts deleted file mode 100644 index 3b202d6c5..000000000 --- a/apps/web/core/components/profile/activity/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./activity-list"; -export * from "./download-button"; -export * from "./profile-activity-list"; -export * from "./workspace-activity-list"; diff --git a/apps/web/core/components/profile/activity/profile-activity-list.tsx b/apps/web/core/components/profile/activity/profile-activity-list.tsx index 76bc98ef2..a8b151773 100644 --- a/apps/web/core/components/profile/activity/profile-activity-list.tsx +++ b/apps/web/core/components/profile/activity/profile-activity-list.tsx @@ -6,17 +6,15 @@ import useSWR from "swr"; import { History, MessageSquare } from "lucide-react"; import { calculateTimeAgo, getFileURL } from "@plane/utils"; // hooks -import { ActivityIcon, ActivityMessage } from "@/components/core"; -import { RichTextEditor } from "@/components/editor"; -import { ActivitySettingsLoader } from "@/components/ui"; +import { ActivityIcon, ActivityMessage } from "@/components/core/activity"; +import { RichTextEditor } from "@/components/editor/rich-text"; +import { ActivitySettingsLoader } from "@/components/ui/loader/settings/activity"; // constants import { USER_ACTIVITY } from "@/constants/fetch-keys"; -// helpers // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // services import { UserService } from "@/services/user.service"; - const userService = new UserService(); type Props = { diff --git a/apps/web/core/components/profile/form.tsx b/apps/web/core/components/profile/form.tsx index ffc74e5fc..03791472b 100644 --- a/apps/web/core/components/profile/form.tsx +++ b/apps/web/core/components/profile/form.tsx @@ -9,16 +9,16 @@ import { Disclosure, Transition } from "@headlessui/react"; import { PROFILE_SETTINGS_TRACKER_ELEMENTS, PROFILE_SETTINGS_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import type { IUser, TUserProfile } from "@plane/types"; -import { Button, Input, TOAST_TYPE, setPromiseToast, setToast } from "@plane/ui"; -// components -import { getButtonStyling } from "@plane/ui/src/button"; +import { Button, Input, TOAST_TYPE, getButtonStyling, setPromiseToast, setToast } from "@plane/ui"; import { cn, getFileURL } from "@plane/utils"; -import { DeactivateAccountModal } from "@/components/account"; -import { ImagePickerPopover, UserImageUploadModal } from "@/components/core"; +// components +import { DeactivateAccountModal } from "@/components/account/deactivate-account-modal"; +import { ImagePickerPopover } from "@/components/core/image-picker-popover"; +import { UserImageUploadModal } from "@/components/core/modals/user-image-upload-modal"; // helpers -// hooks import { captureSuccess, captureError } from "@/helpers/event-tracker.helper"; -import { useUser, useUserProfile } from "@/hooks/store"; +// hooks +import { useUser, useUserProfile } from "@/hooks/store/user"; type TUserProfileForm = { avatar_url: string; diff --git a/apps/web/core/components/profile/index.ts b/apps/web/core/components/profile/index.ts deleted file mode 100644 index 8601cad3a..000000000 --- a/apps/web/core/components/profile/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from "./activity"; -export * from "./overview"; -export * from "./profile-issues-filter"; -export * from "./sidebar"; -export * from "./time"; -export * from "./profile-setting-content-wrapper"; -export * from "./profile-setting-content-header"; -export * from "./form"; -export * from "./preferences/language-timezone"; -export * from "./start-of-week-preference"; diff --git a/apps/web/core/components/profile/notification/index.ts b/apps/web/core/components/profile/notification/index.ts deleted file mode 100644 index 56ef42216..000000000 --- a/apps/web/core/components/profile/notification/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./email-notification-form"; diff --git a/apps/web/core/components/profile/overview/activity.tsx b/apps/web/core/components/profile/overview/activity.tsx index 002286c77..f52255400 100644 --- a/apps/web/core/components/profile/overview/activity.tsx +++ b/apps/web/core/components/profile/overview/activity.tsx @@ -8,13 +8,13 @@ import { useTranslation } from "@plane/i18n"; import { Loader, Card } from "@plane/ui"; import { calculateTimeAgo, getFileURL } from "@plane/utils"; // components -import { ActivityMessage, IssueLink } from "@/components/core"; -import { ProfileEmptyState } from "@/components/ui"; +import { ActivityMessage, IssueLink } from "@/components/core/activity"; +import { ProfileEmptyState } from "@/components/ui/profile-empty-state"; // constants import { USER_PROFILE_ACTIVITY } from "@/constants/fetch-keys"; // helpers // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; // assets import recentActivityEmptyState from "@/public/empty-state/recent_activity.svg"; // services diff --git a/apps/web/core/components/profile/overview/index.ts b/apps/web/core/components/profile/overview/index.ts deleted file mode 100644 index 0c69a50de..000000000 --- a/apps/web/core/components/profile/overview/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./activity"; -export * from "./priority-distribution"; -export * from "./state-distribution"; -export * from "./stats"; -export * from "./workload"; diff --git a/apps/web/core/components/profile/overview/priority-distribution.tsx b/apps/web/core/components/profile/overview/priority-distribution.tsx index a352deb0c..b61018ef3 100644 --- a/apps/web/core/components/profile/overview/priority-distribution.tsx +++ b/apps/web/core/components/profile/overview/priority-distribution.tsx @@ -1,16 +1,15 @@ "use client"; -// ui +// plane imports import { useTranslation } from "@plane/i18n"; import { BarChart } from "@plane/propel/charts/bar-chart"; import { IUserProfileData } from "@plane/types"; import { Loader, Card } from "@plane/ui"; import { capitalizeFirstLetter } from "@plane/utils"; -import { ProfileEmptyState } from "@/components/ui"; -// image +// components +import { ProfileEmptyState } from "@/components/ui/profile-empty-state"; +// assets import emptyBarGraph from "@/public/empty-state/empty_bar_graph.svg"; -// helpers -// types type Props = { userProfile: IUserProfileData | undefined; diff --git a/apps/web/core/components/profile/overview/state-distribution.tsx b/apps/web/core/components/profile/overview/state-distribution.tsx index ee07a7189..16bf9c63f 100644 --- a/apps/web/core/components/profile/overview/state-distribution.tsx +++ b/apps/web/core/components/profile/overview/state-distribution.tsx @@ -3,12 +3,11 @@ import { STATE_GROUPS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { PieChart } from "@plane/propel/charts/pie-chart"; import { IUserProfileData, IUserStateDistribution } from "@plane/types"; -// ui import { Card } from "@plane/ui"; import { capitalizeFirstLetter } from "@plane/utils"; -import { ProfileEmptyState } from "@/components/ui"; -// helpers -// image +// components +import { ProfileEmptyState } from "@/components/ui/profile-empty-state"; +// assets import stateGraph from "@/public/empty-state/state_graph.svg"; type Props = { diff --git a/apps/web/core/components/profile/preferences/language-timezone.tsx b/apps/web/core/components/profile/preferences/language-timezone.tsx index 8d171ee36..94d9c26f5 100644 --- a/apps/web/core/components/profile/preferences/language-timezone.tsx +++ b/apps/web/core/components/profile/preferences/language-timezone.tsx @@ -4,7 +4,7 @@ import { SUPPORTED_LANGUAGES, useTranslation } from "@plane/i18n"; import { CustomSelect, TOAST_TYPE, setToast } from "@plane/ui"; import { TimezoneSelect } from "@/components/global"; import { captureElementAndEvent } from "@/helpers/event-tracker.helper"; -import { useUser, useUserProfile } from "@/hooks/store"; +import { useUser, useUserProfile } from "@/hooks/store/user"; export const LanguageTimezone = observer(() => { // store hooks diff --git a/apps/web/core/components/profile/profile-issues-filter.tsx b/apps/web/core/components/profile/profile-issues-filter.tsx index 2b91194ba..ad9f94379 100644 --- a/apps/web/core/components/profile/profile-issues-filter.tsx +++ b/apps/web/core/components/profile/profile-issues-filter.tsx @@ -15,10 +15,16 @@ import { } from "@plane/types"; // components import { isIssueFilterActive } from "@plane/utils"; -import { DisplayFiltersSelection, FilterSelection, FiltersDropdown, LayoutSelection } from "@/components/issues"; +import { + DisplayFiltersSelection, + FilterSelection, + FiltersDropdown, + LayoutSelection, +} from "@/components/issues/issue-layouts/filters"; // helpers // hooks -import { useIssues, useLabel } from "@/hooks/store"; +import { useIssues } from "@/hooks/store/use-issues" +import { useLabel } from "@/hooks/store/use-label"; export const ProfileIssuesFilter = observer(() => { // i18n diff --git a/apps/web/core/components/profile/profile-issues.tsx b/apps/web/core/components/profile/profile-issues.tsx index 574f134bf..d0782aff5 100644 --- a/apps/web/core/components/profile/profile-issues.tsx +++ b/apps/web/core/components/profile/profile-issues.tsx @@ -2,21 +2,22 @@ import React, { useEffect } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import useSWR from "swr"; +// plane imports import { EIssuesStoreType } from "@plane/types"; // components -import { IssuePeekOverview, ProfileIssuesAppliedFiltersRoot } from "@/components/issues"; +import { ProfileIssuesAppliedFiltersRoot } from "@/components/issues/issue-layouts/filters"; import { ProfileIssuesKanBanLayout } from "@/components/issues/issue-layouts/kanban/roots/profile-issues-root"; import { ProfileIssuesListLayout } from "@/components/issues/issue-layouts/list/roots/profile-issues-root"; +import { IssuePeekOverview } from "@/components/issues/peek-overview"; // hooks -import { useIssues } from "@/hooks/store"; -import { IssuesStoreContext } from "../../hooks/use-issue-layout-store"; -// constants +import { useIssues } from "@/hooks/store/use-issues"; +import { IssuesStoreContext } from "@/hooks/use-issue-layout-store"; -interface IProfileIssuesPage { +type Props = { type: "assigned" | "subscribed" | "created"; -} +}; -export const ProfileIssuesPage = observer((props: IProfileIssuesPage) => { +export const ProfileIssuesPage = observer((props: Props) => { const { type } = props; const { workspaceSlug, userId } = useParams() as { diff --git a/apps/web/core/components/profile/profile-setting-content-wrapper.tsx b/apps/web/core/components/profile/profile-setting-content-wrapper.tsx index 85c580399..1c7e240e7 100644 --- a/apps/web/core/components/profile/profile-setting-content-wrapper.tsx +++ b/apps/web/core/components/profile/profile-setting-content-wrapper.tsx @@ -2,7 +2,7 @@ import React, { FC } from "react"; // helpers import { cn } from "@plane/utils"; -import { SidebarHamburgerToggle } from "../core"; +import { SidebarHamburgerToggle } from "@/components/core/sidebar/sidebar-menu-hamburger-toggle"; type Props = { children: React.ReactNode; diff --git a/apps/web/core/components/profile/sidebar.tsx b/apps/web/core/components/profile/sidebar.tsx index 1508fd2e9..e9643ca53 100644 --- a/apps/web/core/components/profile/sidebar.tsx +++ b/apps/web/core/components/profile/sidebar.tsx @@ -17,10 +17,12 @@ import { IUserProfileProjectSegregation } from "@plane/types"; import { Loader, Tooltip } from "@plane/ui"; import { cn, renderFormattedDate, getFileURL } from "@plane/utils"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; // helpers // hooks -import { useAppTheme, useProject, useUser } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useProject } from "@/hooks/store/use-project" +import { useUser } from "@/hooks/store/user"; import { usePlatformOS } from "@/hooks/use-platform-os"; // components import { ProfileSidebarTime } from "./time"; diff --git a/apps/web/core/components/profile/start-of-week-preference.tsx b/apps/web/core/components/profile/start-of-week-preference.tsx index 580126d97..53b7ad4ed 100644 --- a/apps/web/core/components/profile/start-of-week-preference.tsx +++ b/apps/web/core/components/profile/start-of-week-preference.tsx @@ -12,7 +12,7 @@ import { EStartOfTheWeek } from "@plane/types"; import { CustomSelect, setToast, TOAST_TYPE } from "@plane/ui"; // hooks import { captureElementAndEvent } from "@/helpers/event-tracker.helper"; -import { useUserProfile } from "@/hooks/store"; +import { useUserProfile } from "@/hooks/store/user"; import { PreferencesSection } from "../preferences/section"; const getStartOfWeekLabel = (startOfWeek: EStartOfTheWeek) => diff --git a/apps/web/core/components/project-states/root.tsx b/apps/web/core/components/project-states/root.tsx index 909f34606..c2d6a7d60 100644 --- a/apps/web/core/components/project-states/root.tsx +++ b/apps/web/core/components/project-states/root.tsx @@ -8,7 +8,8 @@ import { EUserPermissionsLevel } from "@plane/constants"; import { EUserProjectRoles, IState, TStateOperationsCallbacks } from "@plane/types"; import { ProjectStateLoader, GroupList } from "@/components/project-states"; // hooks -import { useProjectState, useUserPermissions } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state" +import { useUserPermissions } from "@/hooks/store/user"; type TProjectState = { workspaceSlug: string; diff --git a/apps/web/core/components/project-states/state-delete-modal.tsx b/apps/web/core/components/project-states/state-delete-modal.tsx index afa277a03..65ff9256a 100644 --- a/apps/web/core/components/project-states/state-delete-modal.tsx +++ b/apps/web/core/components/project-states/state-delete-modal.tsx @@ -11,7 +11,7 @@ import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // constants // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useProjectState } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state"; type TStateDeleteModal = { isOpen: boolean; diff --git a/apps/web/core/components/project-states/state-item-title.tsx b/apps/web/core/components/project-states/state-item-title.tsx index 3ef343340..7bfe7fc6f 100644 --- a/apps/web/core/components/project-states/state-item-title.tsx +++ b/apps/web/core/components/project-states/state-item-title.tsx @@ -6,7 +6,7 @@ import { EIconSize, STATE_TRACKER_ELEMENTS } from "@plane/constants"; import { IState, TStateOperationsCallbacks } from "@plane/types"; import { StateGroupIcon } from "@plane/ui"; // local imports -import { useProjectState } from "@/hooks/store"; +import { useProjectState } from "@/hooks/store/use-project-state"; import { StateDelete, StateMarksAsDefault } from "./options"; type TBaseStateItemTitleProps = { diff --git a/apps/web/core/components/project/applied-filters/index.ts b/apps/web/core/components/project/applied-filters/index.ts index 85bcda446..1efe34c51 100644 --- a/apps/web/core/components/project/applied-filters/index.ts +++ b/apps/web/core/components/project/applied-filters/index.ts @@ -1,5 +1 @@ -export * from "./access"; -export * from "./date"; -export * from "./members"; -export * from "./project-display-filters"; export * from "./root"; diff --git a/apps/web/core/components/project/applied-filters/members.tsx b/apps/web/core/components/project/applied-filters/members.tsx index f0e4519ca..497dd6c32 100644 --- a/apps/web/core/components/project/applied-filters/members.tsx +++ b/apps/web/core/components/project/applied-filters/members.tsx @@ -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; diff --git a/apps/web/core/components/project/applied-filters/root.tsx b/apps/web/core/components/project/applied-filters/root.tsx index c2489054d..d5ff01b08 100644 --- a/apps/web/core/components/project/applied-filters/root.tsx +++ b/apps/web/core/components/project/applied-filters/root.tsx @@ -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; diff --git a/apps/web/core/components/project/card-list.tsx b/apps/web/core/components/project/card-list.tsx index 87a552032..0739fcca6 100644 --- a/apps/web/core/components/project/card-list.tsx +++ b/apps/web/core/components/project/card-list.tsx @@ -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[]; diff --git a/apps/web/core/components/project/card.tsx b/apps/web/core/components/project/card.tsx index c2800f3aa..a328360e1 100644 --- a/apps/web/core/components/project/card.tsx +++ b/apps/web/core/components/project/card.tsx @@ -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; diff --git a/apps/web/core/components/project/confirm-project-member-remove.tsx b/apps/web/core/components/project/confirm-project-member-remove.tsx index d4a394e67..5567d4c58 100644 --- a/apps/web/core/components/project/confirm-project-member-remove.tsx +++ b/apps/web/core/components/project/confirm-project-member-remove.tsx @@ -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; diff --git a/apps/web/core/components/project/create/header.tsx b/apps/web/core/components/project/create/header.tsx index 2c393aff1..5abd4cf3d 100644 --- a/apps/web/core/components/project/create/header.tsx +++ b/apps/web/core/components/project/create/header.tsx @@ -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"; diff --git a/apps/web/core/components/project/delete-project-modal.tsx b/apps/web/core/components/project/delete-project-modal.tsx index 7c48fb30a..d7b89e186 100644 --- a/apps/web/core/components/project/delete-project-modal.tsx +++ b/apps/web/core/components/project/delete-project-modal.tsx @@ -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 = { diff --git a/apps/web/core/components/project/dropdowns/filters/access.tsx b/apps/web/core/components/project/dropdowns/filters/access.tsx index b9b3dd6a2..7d4043945 100644 --- a/apps/web/core/components/project/dropdowns/filters/access.tsx +++ b/apps/web/core/components/project/dropdowns/filters/access.tsx @@ -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; diff --git a/apps/web/core/components/project/dropdowns/filters/created-at.tsx b/apps/web/core/components/project/dropdowns/filters/created-at.tsx index 6b223f259..f0aad2470 100644 --- a/apps/web/core/components/project/dropdowns/filters/created-at.tsx +++ b/apps/web/core/components/project/dropdowns/filters/created-at.tsx @@ -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 diff --git a/apps/web/core/components/project/dropdowns/filters/index.ts b/apps/web/core/components/project/dropdowns/filters/index.ts index c04162e57..1efe34c51 100644 --- a/apps/web/core/components/project/dropdowns/filters/index.ts +++ b/apps/web/core/components/project/dropdowns/filters/index.ts @@ -1,5 +1 @@ -export * from "./access"; -export * from "./created-at"; -export * from "./lead"; -export * from "./members"; export * from "./root"; diff --git a/apps/web/core/components/project/dropdowns/filters/lead.tsx b/apps/web/core/components/project/dropdowns/filters/lead.tsx index a6de50b4e..f00c492b8 100644 --- a/apps/web/core/components/project/dropdowns/filters/lead.tsx +++ b/apps/web/core/components/project/dropdowns/filters/lead.tsx @@ -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; diff --git a/apps/web/core/components/project/dropdowns/filters/members.tsx b/apps/web/core/components/project/dropdowns/filters/members.tsx index 1f593203a..db7bee879 100644 --- a/apps/web/core/components/project/dropdowns/filters/members.tsx +++ b/apps/web/core/components/project/dropdowns/filters/members.tsx @@ -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; diff --git a/apps/web/core/components/project/dropdowns/filters/root.tsx b/apps/web/core/components/project/dropdowns/filters/root.tsx index 161d25c02..e304a157c 100644 --- a/apps/web/core/components/project/dropdowns/filters/root.tsx +++ b/apps/web/core/components/project/dropdowns/filters/root.tsx @@ -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; diff --git a/apps/web/core/components/project/dropdowns/index.ts b/apps/web/core/components/project/dropdowns/index.ts deleted file mode 100644 index f6c42552f..000000000 --- a/apps/web/core/components/project/dropdowns/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./filters"; -export * from "./order-by"; diff --git a/apps/web/core/components/project/filters.tsx b/apps/web/core/components/project/filters.tsx index 5a97acde0..563bbc3ed 100644 --- a/apps/web/core/components/project/filters.tsx +++ b/apps/web/core/components/project/filters.tsx @@ -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; diff --git a/apps/web/core/components/project/form.tsx b/apps/web/core/components/project/form.tsx index 452d9d0b6..f4eabe928 100644 --- a/apps/web/core/components/project/form.tsx +++ b/apps/web/core/components/project/form.tsx @@ -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 = (props) => { const handleUpdateChange = async (payload: Partial) => { if (!workspaceSlug || !project) return; return updateProject(workspaceSlug.toString(), project.id, payload) - .then((res) => { + .then(() => { captureSuccess({ eventName: PROJECT_TRACKER_EVENTS.update, payload: { diff --git a/apps/web/core/components/project/header.tsx b/apps/web/core/components/project/header.tsx index 1abd5a91d..4bfe081d2 100644 --- a/apps/web/core/components/project/header.tsx +++ b/apps/web/core/components/project/header.tsx @@ -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"; diff --git a/apps/web/core/components/project/index.ts b/apps/web/core/components/project/index.ts deleted file mode 100644 index 3f2b2b077..000000000 --- a/apps/web/core/components/project/index.ts +++ /dev/null @@ -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"; diff --git a/apps/web/core/components/project/join-project-modal.tsx b/apps/web/core/components/project/join-project-modal.tsx index d46cf4d0b..2fdba46b6 100644 --- a/apps/web/core/components/project/join-project-modal.tsx +++ b/apps/web/core/components/project/join-project-modal.tsx @@ -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 diff --git a/apps/web/core/components/project/leave-project-modal.tsx b/apps/web/core/components/project/leave-project-modal.tsx index 7f9bde99f..7de4a02d3 100644 --- a/apps/web/core/components/project/leave-project-modal.tsx +++ b/apps/web/core/components/project/leave-project-modal.tsx @@ -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 = { diff --git a/apps/web/core/components/project/member-list-item.tsx b/apps/web/core/components/project/member-list-item.tsx index d729c48b9..403985d99 100644 --- a/apps/web/core/components/project/member-list-item.tsx +++ b/apps/web/core/components/project/member-list-item.tsx @@ -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 = observer((props) => { await removeMemberFromProject(workspaceSlug.toString(), projectId.toString(), memberId).catch((err) => setToast({ type: TOAST_TYPE.ERROR, - title: "You can’t 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.", }) ); diff --git a/apps/web/core/components/project/member-list.tsx b/apps/web/core/components/project/member-list.tsx index ff9d63564..c651a8f72 100644 --- a/apps/web/core/components/project/member-list.tsx +++ b/apps/web/core/components/project/member-list.tsx @@ -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; diff --git a/apps/web/core/components/project/member-select.tsx b/apps/web/core/components/project/member-select.tsx index c1597e0dd..3866fa89f 100644 --- a/apps/web/core/components/project/member-select.tsx +++ b/apps/web/core/components/project/member-select.tsx @@ -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; diff --git a/apps/web/core/components/project/multi-select-modal.tsx b/apps/web/core/components/project/multi-select-modal.tsx index 0ab59bcce..6d16987c0 100644 --- a/apps/web/core/components/project/multi-select-modal.tsx +++ b/apps/web/core/components/project/multi-select-modal.tsx @@ -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 = { diff --git a/apps/web/core/components/project/project-feature-update.tsx b/apps/web/core/components/project/project-feature-update.tsx index 93ff8723b..3ed701a1b 100644 --- a/apps/web/core/components/project/project-feature-update.tsx +++ b/apps/web/core/components/project/project-feature-update.tsx @@ -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; diff --git a/apps/web/core/components/project/project-settings-member-defaults.tsx b/apps/web/core/components/project/project-settings-member-defaults.tsx index 3905a38bb..490f07e74 100644 --- a/apps/web/core/components/project/project-settings-member-defaults.tsx +++ b/apps/web/core/components/project/project-settings-member-defaults.tsx @@ -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 = { project_lead: null, diff --git a/apps/web/core/components/project/publish-project/index.ts b/apps/web/core/components/project/publish-project/index.ts deleted file mode 100644 index 031608e25..000000000 --- a/apps/web/core/components/project/publish-project/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./modal"; diff --git a/apps/web/core/components/project/publish-project/modal.tsx b/apps/web/core/components/project/publish-project/modal.tsx index 5cef17448..06489e9d8 100644 --- a/apps/web/core/components/project/publish-project/modal.tsx +++ b/apps/web/core/components/project/publish-project/modal.tsx @@ -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; diff --git a/apps/web/core/components/project/root.tsx b/apps/web/core/components/project/root.tsx index e0be0292a..07e270b17 100644 --- a/apps/web/core/components/project/root.tsx +++ b/apps/web/core/components/project/root.tsx @@ -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; diff --git a/apps/web/core/components/project/search-projects.tsx b/apps/web/core/components/project/search-projects.tsx index c7d41280f..8a0df46cd 100644 --- a/apps/web/core/components/project/search-projects.tsx +++ b/apps/web/core/components/project/search-projects.tsx @@ -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 diff --git a/apps/web/core/components/project/send-project-invitation-modal.tsx b/apps/web/core/components/project/send-project-invitation-modal.tsx index 9e28140c1..f78a7c4fd 100644 --- a/apps/web/core/components/project/send-project-invitation-modal.tsx +++ b/apps/web/core/components/project/send-project-invitation-modal.tsx @@ -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; diff --git a/apps/web/core/components/project/settings/archive-project/archive-restore-modal.tsx b/apps/web/core/components/project/settings/archive-project/archive-restore-modal.tsx index f55ec8cdb..661b2d6a1 100644 --- a/apps/web/core/components/project/settings/archive-project/archive-restore-modal.tsx +++ b/apps/web/core/components/project/settings/archive-project/archive-restore-modal.tsx @@ -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 = { diff --git a/apps/web/core/components/project/settings/archive-project/index.tsx b/apps/web/core/components/project/settings/archive-project/index.tsx deleted file mode 100644 index 23da8dcb2..000000000 --- a/apps/web/core/components/project/settings/archive-project/index.tsx +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./selection"; -export * from "./archive-restore-modal"; diff --git a/apps/web/core/components/project/settings/features-list.tsx b/apps/web/core/components/project/settings/features-list.tsx index 48b1fcac9..735832d9e 100644 --- a/apps/web/core/components/project/settings/features-list.tsx +++ b/apps/web/core/components/project/settings/features-list.tsx @@ -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 = { diff --git a/apps/web/core/components/project/settings/index.ts b/apps/web/core/components/project/settings/index.ts deleted file mode 100644 index 0f8e9aa6d..000000000 --- a/apps/web/core/components/project/settings/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./delete-project-section"; -export * from "./features-list"; -export * from "./archive-project"; diff --git a/apps/web/core/components/project/settings/member-columns.tsx b/apps/web/core/components/project/settings/member-columns.tsx index 74315bbd5..ed4fcd72f 100644 --- a/apps/web/core/components/project/settings/member-columns.tsx +++ b/apps/web/core/components/project/settings/member-columns.tsx @@ -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 { member: IWorkspaceMember; diff --git a/apps/web/core/components/settings/header.tsx b/apps/web/core/components/settings/header.tsx index 832f7f39b..3df1bf408 100644 --- a/apps/web/core/components/settings/header.tsx +++ b/apps/web/core/components/settings/header.tsx @@ -4,11 +4,15 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { useTheme } from "next-themes"; import { ChevronLeftIcon } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; import { getButtonStyling } from "@plane/ui/src/button"; import { cn } from "@plane/utils"; -import { useUserSettings, useWorkspace } from "@/hooks/store"; -import { WorkspaceLogo } from "../workspace"; +// hooks +import { useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; +// local imports +import { WorkspaceLogo } from "../workspace/logo"; import SettingsTabs from "./tabs"; export const SettingsHeader = observer(() => { diff --git a/apps/web/core/components/settings/helper.ts b/apps/web/core/components/settings/helper.ts index 84dd83af9..e621fcdbd 100644 --- a/apps/web/core/components/settings/helper.ts +++ b/apps/web/core/components/settings/helper.ts @@ -1,5 +1,5 @@ import { GROUPED_PROFILE_SETTINGS, GROUPED_WORKSPACE_SETTINGS } from "@plane/constants"; -import { PROJECT_SETTINGS_LINKS } from "@/plane-web/constants"; +import { PROJECT_SETTINGS_LINKS } from "@/plane-web/constants/project"; const hrefToLabelMap = (options: Record>) => Object.values(options) diff --git a/apps/web/core/components/settings/index.ts b/apps/web/core/components/settings/index.ts deleted file mode 100644 index ada14070e..000000000 --- a/apps/web/core/components/settings/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./header"; -export * from "./sidebar"; -export * from "./content-wrapper"; -export * from "./mobile"; -export * from "./heading"; -export * from "./layout"; diff --git a/apps/web/core/components/settings/mobile/nav.tsx b/apps/web/core/components/settings/mobile/nav.tsx index 4e98cf1d8..138636c75 100644 --- a/apps/web/core/components/settings/mobile/nav.tsx +++ b/apps/web/core/components/settings/mobile/nav.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { ChevronRight, Menu } from "lucide-react"; import { useOutsideClickDetector } from "@plane/hooks"; import { useTranslation } from "@plane/i18n"; -import { useUserSettings } from "@/hooks/store"; +import { useUserSettings } from "@/hooks/store/user"; type Props = { hamburgerContent: React.ComponentType<{ isMobile: boolean }>; diff --git a/apps/web/core/components/settings/project/sidebar/nav-item-children.tsx b/apps/web/core/components/settings/project/sidebar/nav-item-children.tsx index 4cf4c6b99..e0574a3af 100644 --- a/apps/web/core/components/settings/project/sidebar/nav-item-children.tsx +++ b/apps/web/core/components/settings/project/sidebar/nav-item-children.tsx @@ -6,7 +6,8 @@ import { EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Loader } from "@plane/ui"; import { cn } from "@plane/utils"; -import { useProject, useUserPermissions, useUserSettings } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions, useUserSettings } from "@/hooks/store/user"; import { PROJECT_SETTINGS_LINKS } from "@/plane-web/constants/project"; import { getProjectSettingsPageLabelI18nKey } from "@/plane-web/helpers/project-settings"; diff --git a/apps/web/core/components/settings/project/sidebar/root.tsx b/apps/web/core/components/settings/project/sidebar/root.tsx index de3d0c4e4..fe006ae1f 100644 --- a/apps/web/core/components/settings/project/sidebar/root.tsx +++ b/apps/web/core/components/settings/project/sidebar/root.tsx @@ -4,11 +4,11 @@ import { useParams } from "next/navigation"; import { PROJECT_SETTINGS_CATEGORIES, PROJECT_SETTINGS_CATEGORY } from "@plane/constants"; import { getUserRole } from "@plane/utils"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; // hooks import { useProject } from "@/hooks/store/use-project"; // local imports -import { SettingsSidebar } from "../.."; +import { SettingsSidebar } from "../../sidebar"; import { NavItemChildren } from "./nav-item-children"; type TProjectSettingsSidebarProps = { diff --git a/apps/web/core/components/settings/sidebar/header.tsx b/apps/web/core/components/settings/sidebar/header.tsx index 56fd49ffa..0e8a22935 100644 --- a/apps/web/core/components/settings/sidebar/header.tsx +++ b/apps/web/core/components/settings/sidebar/header.tsx @@ -2,7 +2,7 @@ import { observer } from "mobx-react"; // plane imports import { getUserRole } from "@plane/utils"; // components -import { WorkspaceLogo } from "@/components/workspace"; +import { WorkspaceLogo } from "@/components/workspace/logo"; // hooks import { useWorkspace } from "@/hooks/store/use-workspace"; // plane web imports diff --git a/apps/web/core/components/settings/sidebar/nav-item.tsx b/apps/web/core/components/settings/sidebar/nav-item.tsx index af1d139d6..a2991371f 100644 --- a/apps/web/core/components/settings/sidebar/nav-item.tsx +++ b/apps/web/core/components/settings/sidebar/nav-item.tsx @@ -8,7 +8,7 @@ import { useTranslation } from "@plane/i18n"; import { EUserWorkspaceRoles } from "@plane/types"; import { cn, joinUrlPath } from "@plane/utils"; // hooks -import { useUserSettings } from "@/hooks/store"; +import { useUserSettings } from "@/hooks/store/user"; export type TSettingItem = { key: string; diff --git a/apps/web/core/components/settings/tabs.tsx b/apps/web/core/components/settings/tabs.tsx index 286d6c097..33ac26a76 100644 --- a/apps/web/core/components/settings/tabs.tsx +++ b/apps/web/core/components/settings/tabs.tsx @@ -2,7 +2,7 @@ import { observer } from "mobx-react"; import Link from "next/link"; import { useParams, usePathname } from "next/navigation"; import { cn } from "@plane/utils"; -import { useProject } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project"; const TABS = { account: { diff --git a/apps/web/core/components/sidebar/index.ts b/apps/web/core/components/sidebar/index.ts deleted file mode 100644 index c639b0bac..000000000 --- a/apps/web/core/components/sidebar/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./sidebar-navigation"; -export * from "./resizable-sidebar"; -export * from "./sidebar-item"; -export * from "./sidebar-toggle-button"; diff --git a/apps/web/core/components/sidebar/sidebar-toggle-button.tsx b/apps/web/core/components/sidebar/sidebar-toggle-button.tsx index 45caea0c6..c0b279f9c 100644 --- a/apps/web/core/components/sidebar/sidebar-toggle-button.tsx +++ b/apps/web/core/components/sidebar/sidebar-toggle-button.tsx @@ -3,7 +3,7 @@ import { observer } from "mobx-react"; import { PanelLeft } from "lucide-react"; // hooks -import { useAppTheme } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; export const AppSidebarToggleButton = observer(() => { // store hooks diff --git a/apps/web/core/components/stickies/action-bar.tsx b/apps/web/core/components/stickies/action-bar.tsx index 9b3789ea2..91dc50962 100644 --- a/apps/web/core/components/stickies/action-bar.tsx +++ b/apps/web/core/components/stickies/action-bar.tsx @@ -10,7 +10,7 @@ import { RecentStickyIcon, StickyNoteIcon, Tooltip } from "@plane/ui"; // plane utils import { cn } from "@plane/utils"; // hooks -import { useCommandPalette } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; import { useSticky } from "@/hooks/use-stickies"; // components import { STICKY_COLORS_LIST } from "../editor/sticky-editor/color-palette"; diff --git a/apps/web/core/components/stickies/index.ts b/apps/web/core/components/stickies/index.ts deleted file mode 100644 index 91363220e..000000000 --- a/apps/web/core/components/stickies/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./action-bar"; -export * from "./widget"; -export * from "./layout"; diff --git a/apps/web/core/components/stickies/layout/index.ts b/apps/web/core/components/stickies/layout/index.ts deleted file mode 100644 index e3afe22f9..000000000 --- a/apps/web/core/components/stickies/layout/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./stickies-infinite"; -export * from "./stickies-list"; -export * from "./stickies-truncated"; diff --git a/apps/web/core/components/stickies/layout/stickies-list.tsx b/apps/web/core/components/stickies/layout/stickies-list.tsx index a04424ce3..b6af55c66 100644 --- a/apps/web/core/components/stickies/layout/stickies-list.tsx +++ b/apps/web/core/components/stickies/layout/stickies-list.tsx @@ -13,10 +13,11 @@ import { EUserPermissionsLevel } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { EUserWorkspaceRoles } from "@plane/types"; // components -import { DetailedEmptyState, SimpleEmptyState } from "@/components/empty-state"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root"; import { StickiesEmptyState } from "@/components/home/widgets/empty-states/stickies"; // hooks -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import { useSticky } from "@/hooks/use-stickies"; // local imports diff --git a/apps/web/core/components/stickies/sticky/inputs.tsx b/apps/web/core/components/stickies/sticky/inputs.tsx index ed03fe185..6479d1833 100644 --- a/apps/web/core/components/stickies/sticky/inputs.tsx +++ b/apps/web/core/components/stickies/sticky/inputs.tsx @@ -1,16 +1,18 @@ import { useCallback, useEffect, useRef } from "react"; +// import dynamic from "next/dynamic"; import { usePathname } from "next/navigation"; import { Controller, useForm } from "react-hook-form"; -// plane editor -import { EditorRefApi } from "@plane/editor"; -// plane types +// plane imports +import type { EditorRefApi } from "@plane/editor"; import { TSticky } from "@plane/types"; -// plane utils import { cn, isCommentEmpty } from "@plane/utils"; +import { StickyEditor } from "@/components/editor/sticky-editor"; // hooks -import { useWorkspace } from "@/hooks/store"; -// components -import { StickyEditor } from "../../editor"; +import { useWorkspace } from "@/hooks/store/use-workspace"; + +// const StickyEditor = dynamic(() => import("../../editor/sticky-editor").then((mod) => mod.StickyEditor), { +// ssr: false, +// }); type TProps = { stickyData: Partial | undefined; diff --git a/apps/web/core/components/stickies/widget.tsx b/apps/web/core/components/stickies/widget.tsx index e94741cc0..5a96ec644 100644 --- a/apps/web/core/components/stickies/widget.tsx +++ b/apps/web/core/components/stickies/widget.tsx @@ -1,10 +1,12 @@ import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { Plus } from "lucide-react"; -// hooks +// plane imports import { useTranslation } from "@plane/i18n"; +// hooks import { useSticky } from "@/hooks/use-stickies"; -import { StickiesTruncated } from "./layout"; +// local imports +import { StickiesTruncated } from "./layout/stickies-truncated"; import { StickySearch } from "./modal/search"; import { useStickyOperations } from "./sticky/use-operations"; diff --git a/apps/web/core/components/ui/index.ts b/apps/web/core/components/ui/index.ts deleted file mode 100644 index 35367be7e..000000000 --- a/apps/web/core/components/ui/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./empty-space"; -export * from "./labels-list"; -export * from "./markdown-to-component"; -export * from "./integration-and-import-export-banner"; -export * from "./profile-empty-state"; -export * from "./loader"; diff --git a/apps/web/core/components/ui/loader/cycle-module-board-loader.tsx b/apps/web/core/components/ui/loader/cycle-module-board-loader.tsx index 62df0e465..aac5a7fbb 100644 --- a/apps/web/core/components/ui/loader/cycle-module-board-loader.tsx +++ b/apps/web/core/components/ui/loader/cycle-module-board-loader.tsx @@ -1,6 +1,6 @@ import range from "lodash/range"; -export const CycleModuleBoardLayout = () => ( +export const CycleModuleBoardLayoutLoader = () => (
diff --git a/apps/web/core/components/ui/loader/cycle-module-list-loader.tsx b/apps/web/core/components/ui/loader/cycle-module-list-loader.tsx index 33887728e..7370559e4 100644 --- a/apps/web/core/components/ui/loader/cycle-module-list-loader.tsx +++ b/apps/web/core/components/ui/loader/cycle-module-list-loader.tsx @@ -1,6 +1,6 @@ import range from "lodash/range"; -export const CycleModuleListLayout = () => ( +export const CycleModuleListLayoutLoader = () => (
diff --git a/apps/web/core/components/ui/loader/index.ts b/apps/web/core/components/ui/loader/index.ts deleted file mode 100644 index c36666583..000000000 --- a/apps/web/core/components/ui/loader/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from "./layouts"; -export * from "./settings"; -export * from "./pages-loader"; -export * from "./notification-loader"; -export * from "./cycle-module-board-loader"; -export * from "./cycle-module-list-loader"; -export * from "./view-list-loader"; -export * from "./projects-loader"; -export * from "./utils"; diff --git a/apps/web/core/components/ui/loader/layouts/gantt-layout-loader.tsx b/apps/web/core/components/ui/loader/layouts/gantt-layout-loader.tsx index c658d1914..8fc6fac88 100644 --- a/apps/web/core/components/ui/loader/layouts/gantt-layout-loader.tsx +++ b/apps/web/core/components/ui/loader/layouts/gantt-layout-loader.tsx @@ -3,7 +3,7 @@ import { Row } from "@plane/ui"; import { BLOCK_HEIGHT } from "@/components/gantt-chart/constants"; import { getRandomLength } from "../utils"; -export const GanttLayoutLIstItem = () => ( +export const GanttLayoutListItemLoader = () => (
diff --git a/apps/web/core/components/ui/loader/layouts/index.ts b/apps/web/core/components/ui/loader/layouts/index.ts deleted file mode 100644 index fb41fff4f..000000000 --- a/apps/web/core/components/ui/loader/layouts/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./list-layout-loader"; -export * from "./kanban-layout-loader"; -export * from "./calendar-layout-loader"; -export * from "./spreadsheet-layout-loader"; -export * from "./gantt-layout-loader"; -export * from "./project-inbox"; diff --git a/apps/web/core/components/ui/loader/layouts/project-inbox/index.ts b/apps/web/core/components/ui/loader/layouts/project-inbox/index.ts deleted file mode 100644 index 4f9c40be7..000000000 --- a/apps/web/core/components/ui/loader/layouts/project-inbox/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./inbox-layout-loader"; -export * from "./inbox-sidebar-loader"; diff --git a/apps/web/core/components/ui/loader/settings/index.ts b/apps/web/core/components/ui/loader/settings/index.ts deleted file mode 100644 index 8b73cd98d..000000000 --- a/apps/web/core/components/ui/loader/settings/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./activity"; -export * from "./api-token"; -export * from "./email"; -export * from "./integration"; -export * from "./members"; -export * from "./web-hook"; -export * from "./import-and-export"; diff --git a/apps/web/core/components/views/applied-filters/root.tsx b/apps/web/core/components/views/applied-filters/root.tsx index 18e7c04fd..ec55cc979 100644 --- a/apps/web/core/components/views/applied-filters/root.tsx +++ b/apps/web/core/components/views/applied-filters/root.tsx @@ -1,14 +1,14 @@ import { X } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; import { EViewAccess, TViewFilterProps } from "@plane/types"; -// components import { Tag } from "@plane/ui"; import { replaceUnderscoreIfSnakeCase } from "@plane/utils"; -import { AppliedDateFilters, AppliedMembersFilters } from "@/components/common/applied-filters"; -// constants -// helpers +// components +import { AppliedDateFilters } from "@/components/common/applied-filters/date"; +import { AppliedMembersFilters } from "@/components/common/applied-filters/members"; +// local imports import { AppliedAccessFilters } from "./access"; -// types type Props = { appliedFilters: TViewFilterProps; diff --git a/apps/web/core/components/views/delete-view-modal.tsx b/apps/web/core/components/views/delete-view-modal.tsx index d4109eea6..35dce46e3 100644 --- a/apps/web/core/components/views/delete-view-modal.tsx +++ b/apps/web/core/components/views/delete-view-modal.tsx @@ -11,7 +11,7 @@ import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; // hooks -import { useProjectView } from "@/hooks/store"; +import { useProjectView } from "@/hooks/store/use-project-view"; type Props = { data: IProjectView; diff --git a/apps/web/core/components/views/filters/filter-selection.tsx b/apps/web/core/components/views/filters/filter-selection.tsx index 9dd7d0a4d..dbb370dd6 100644 --- a/apps/web/core/components/views/filters/filter-selection.tsx +++ b/apps/web/core/components/views/filters/filter-selection.tsx @@ -3,8 +3,9 @@ import { observer } from "mobx-react"; import { Search, X } from "lucide-react"; import { EViewAccess, TViewFilterProps, TViewFilters } from "@plane/types"; // components -import { FilterCreatedBy, FilterCreatedDate } from "@/components/common/filters"; -import { FilterOption } from "@/components/issues"; +import { FilterCreatedDate } from "@/components/common/filters/created-at"; +import { FilterCreatedBy } from "@/components/common/filters/created-by"; +import { FilterOption } from "@/components/issues/issue-layouts/filters"; // constants // hooks import { usePlatformOS } from "@/hooks/use-platform-os"; diff --git a/apps/web/core/components/views/form.tsx b/apps/web/core/components/views/form.tsx index 5bfa8bb2d..79ba7646a 100644 --- a/apps/web/core/components/views/form.tsx +++ b/apps/web/core/components/views/form.tsx @@ -26,11 +26,19 @@ import { getTabIndex, } from "@plane/utils"; // components -import { Logo } from "@/components/common"; -import { AppliedFiltersList, DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues"; +import { Logo } from "@/components/common/logo"; +import { + AppliedFiltersList, + DisplayFiltersSelection, + FilterSelection, + FiltersDropdown, +} from "@/components/issues/issue-layouts/filters"; // helpers // hooks -import { useLabel, useMember, useProject, useProjectState } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useMember } from "@/hooks/store/use-member" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state"; import { usePlatformOS } from "@/hooks/use-platform-os"; import { AccessController } from "@/plane-web/components/views/access-controller"; @@ -171,7 +179,7 @@ export const ProjectViewForm: React.FC = observer((props) => { } - onChange={(val: any) => { + onChange={(val) => { let logoValue = {}; if (val?.type === "emoji") diff --git a/apps/web/core/components/views/index.ts b/apps/web/core/components/views/index.ts deleted file mode 100644 index 085a1c6b7..000000000 --- a/apps/web/core/components/views/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from "./delete-view-modal"; -export * from "./form"; -export * from "./modal"; -export * from "./quick-actions"; -export * from "./view-list-item"; -export * from "./views-list"; -export * from "./view-list-item-action"; -export * from "./view-list-header"; diff --git a/apps/web/core/components/views/modal.tsx b/apps/web/core/components/views/modal.tsx index 01d3e0bc6..81df6abe0 100644 --- a/apps/web/core/components/views/modal.tsx +++ b/apps/web/core/components/views/modal.tsx @@ -7,13 +7,13 @@ import { PROJECT_VIEW_TRACKER_EVENTS } from "@plane/constants"; import { IProjectView } from "@plane/types"; // ui import { EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui"; -// components -import { ProjectViewForm } from "@/components/views"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useProjectView } from "@/hooks/store"; +import { useProjectView } from "@/hooks/store/use-project-view"; import { useAppRouter } from "@/hooks/use-app-router"; import useKeypress from "@/hooks/use-keypress"; +// local imports +import { ProjectViewForm } from "./form"; type Props = { data?: IProjectView | null; diff --git a/apps/web/core/components/views/quick-actions.tsx b/apps/web/core/components/views/quick-actions.tsx index 8fb8cc53e..d46191a4f 100644 --- a/apps/web/core/components/views/quick-actions.tsx +++ b/apps/web/core/components/views/quick-actions.tsx @@ -9,13 +9,14 @@ import { IProjectView } from "@plane/types"; // ui import { ContextMenu, CustomMenu, TContextMenuItem, TOAST_TYPE, setToast } from "@plane/ui"; import { copyUrlToClipboard, cn } from "@plane/utils"; -// components -import { CreateUpdateProjectViewModal, DeleteProjectViewModal } from "@/components/views"; // helpers import { captureClick } from "@/helpers/event-tracker.helper"; // hooks -import { useUser, useUserPermissions } from "@/hooks/store"; +import { useUser, useUserPermissions } from "@/hooks/store/user"; import { PublishViewModal, useViewPublish } from "@/plane-web/components/views/publish"; +// local imports +import { DeleteProjectViewModal } from "./delete-view-modal"; +import { CreateUpdateProjectViewModal } from "./modal"; type Props = { parentRef: React.RefObject; diff --git a/apps/web/core/components/views/view-list-header.tsx b/apps/web/core/components/views/view-list-header.tsx index e28aa37d8..9abb45ba3 100644 --- a/apps/web/core/components/views/view-list-header.tsx +++ b/apps/web/core/components/views/view-list-header.tsx @@ -7,8 +7,9 @@ import { useOutsideClickDetector } from "@plane/hooks"; // helpers import { cn } from "@plane/utils"; // hooks -import { useMember, useProjectView } from "@/hooks/store"; -import { FiltersDropdown } from "../issues"; +import { useMember } from "@/hooks/store/use-member" +import { useProjectView } from "@/hooks/store/use-project-view"; +import { FiltersDropdown } from "../issues/issue-layouts/filters"; import { ViewFiltersSelection } from "./filters/filter-selection"; import { ViewOrderByDropdown } from "./filters/order-by"; diff --git a/apps/web/core/components/views/view-list-item-action.tsx b/apps/web/core/components/views/view-list-item-action.tsx index 8a0ec89c3..d3860c961 100644 --- a/apps/web/core/components/views/view-list-item-action.tsx +++ b/apps/web/core/components/views/view-list-item-action.tsx @@ -2,20 +2,23 @@ import React, { FC, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { Earth, Lock } from "lucide-react"; -// types +// plane imports import { EUserPermissions, EUserPermissionsLevel, IS_FAVORITE_MENU_OPEN } from "@plane/constants"; import { useLocalStorage } from "@plane/hooks"; import { EViewAccess, IProjectView } from "@plane/types"; -// ui import { Tooltip, FavoriteStar } from "@plane/ui"; import { calculateTotalFilters, getPublishViewLink } from "@plane/utils"; -// components -import { DeleteProjectViewModal, CreateUpdateProjectViewModal, ViewQuickActions } from "@/components/views"; -// helpers // hooks -import { useMember, useProjectView, useUserPermissions } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useProjectView } from "@/hooks/store/use-project-view" +import { useUserPermissions } from "@/hooks/store/user"; +// plane web imports import { PublishViewModal } from "@/plane-web/components/views/publish"; +// local imports import { ButtonAvatars } from "../dropdowns/member/avatar"; +import { DeleteProjectViewModal } from "./delete-view-modal"; +import { CreateUpdateProjectViewModal } from "./modal"; +import { ViewQuickActions } from "./quick-actions"; type Props = { parentRef: React.RefObject; diff --git a/apps/web/core/components/views/view-list-item.tsx b/apps/web/core/components/views/view-list-item.tsx index 1ba93fc10..cda916c16 100644 --- a/apps/web/core/components/views/view-list-item.tsx +++ b/apps/web/core/components/views/view-list-item.tsx @@ -7,11 +7,13 @@ import { Layers } from "lucide-react"; // types import { IProjectView } from "@plane/types"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; import { ListItem } from "@/components/core/list"; -import { ViewListItemAction, ViewQuickActions } from "@/components/views"; // hooks import { usePlatformOS } from "@/hooks/use-platform-os"; +// local imports +import { ViewQuickActions } from "./quick-actions"; +import { ViewListItemAction } from "./view-list-item-action"; type Props = { view: IProjectView; diff --git a/apps/web/core/components/views/views-list.tsx b/apps/web/core/components/views/views-list.tsx index 372f61ace..f74de0e83 100644 --- a/apps/web/core/components/views/views-list.tsx +++ b/apps/web/core/components/views/views-list.tsx @@ -6,13 +6,18 @@ import { useTranslation } from "@plane/i18n"; import { EUserProjectRoles } from "@plane/types"; // components import { ListLayout } from "@/components/core/list"; -import { ComicBoxButton, DetailedEmptyState, SimpleEmptyState } from "@/components/empty-state"; -import { ViewListLoader } from "@/components/ui"; -import { ProjectViewListItem } from "@/components/views"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; +import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root"; +import { ViewListLoader } from "@/components/ui/loader/view-list-loader"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useCommandPalette, useProjectView, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProjectView } from "@/hooks/store/use-project-view" +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; +// local imports +import { ProjectViewListItem } from "./view-list-item"; export const ProjectViewsList = observer(() => { const { projectId } = useParams(); diff --git a/apps/web/core/components/web-hooks/delete-webhook-modal.tsx b/apps/web/core/components/web-hooks/delete-webhook-modal.tsx index 6e32d9f66..a54a25165 100644 --- a/apps/web/core/components/web-hooks/delete-webhook-modal.tsx +++ b/apps/web/core/components/web-hooks/delete-webhook-modal.tsx @@ -7,7 +7,7 @@ import { WORKSPACE_SETTINGS_TRACKER_EVENTS } from "@plane/constants"; import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useWebhook } from "@/hooks/store"; +import { useWebhook } from "@/hooks/store/use-webhook"; import { useAppRouter } from "@/hooks/use-app-router"; interface IDeleteWebhook { diff --git a/apps/web/core/components/web-hooks/form/form.tsx b/apps/web/core/components/web-hooks/form/form.tsx index 804b708e8..ad2265cbf 100644 --- a/apps/web/core/components/web-hooks/form/form.tsx +++ b/apps/web/core/components/web-hooks/form/form.tsx @@ -15,7 +15,7 @@ import { WebhookSecretKey, WebhookToggle, } from "@/components/web-hooks"; -import { useWebhook } from "@/hooks/store"; +import { useWebhook } from "@/hooks/store/use-webhook"; // components // ui // types diff --git a/apps/web/core/components/web-hooks/form/secret-key.tsx b/apps/web/core/components/web-hooks/form/secret-key.tsx index e61975078..2a32c44fb 100644 --- a/apps/web/core/components/web-hooks/form/secret-key.tsx +++ b/apps/web/core/components/web-hooks/form/secret-key.tsx @@ -13,7 +13,8 @@ import { Button, Tooltip, TOAST_TYPE, setToast } from "@plane/ui"; import { csvDownload, copyTextToClipboard } from "@plane/utils"; // helpers // hooks -import { useWebhook, useWorkspace } from "@/hooks/store"; +import { useWebhook } from "@/hooks/store/use-webhook" +import { useWorkspace } from "@/hooks/store/use-workspace"; // types import { usePlatformOS } from "@/hooks/use-platform-os"; // utils diff --git a/apps/web/core/components/web-hooks/webhooks-list-item.tsx b/apps/web/core/components/web-hooks/webhooks-list-item.tsx index 5419207d8..7cdf4c00a 100644 --- a/apps/web/core/components/web-hooks/webhooks-list-item.tsx +++ b/apps/web/core/components/web-hooks/webhooks-list-item.tsx @@ -8,7 +8,7 @@ import { IWebhook } from "@plane/types"; // hooks import { ToggleSwitch } from "@plane/ui"; import { captureElementAndEvent } from "@/helpers/event-tracker.helper"; -import { useWebhook } from "@/hooks/store"; +import { useWebhook } from "@/hooks/store/use-webhook"; // ui // types diff --git a/apps/web/core/components/web-hooks/webhooks-list.tsx b/apps/web/core/components/web-hooks/webhooks-list.tsx index 1b99f4b39..3aab35357 100644 --- a/apps/web/core/components/web-hooks/webhooks-list.tsx +++ b/apps/web/core/components/web-hooks/webhooks-list.tsx @@ -1,6 +1,6 @@ import { observer } from "mobx-react"; // hooks -import { useWebhook } from "@/hooks/store"; +import { useWebhook } from "@/hooks/store/use-webhook"; // components import { WebhooksListItem } from "./webhooks-list-item"; diff --git a/apps/web/core/components/workspace-notifications/index.ts b/apps/web/core/components/workspace-notifications/index.ts index 8bc361a7c..1efe34c51 100644 --- a/apps/web/core/components/workspace-notifications/index.ts +++ b/apps/web/core/components/workspace-notifications/index.ts @@ -1,3 +1 @@ -export * from "./notification-app-sidebar-option"; -export * from "./sidebar"; export * from "./root"; diff --git a/apps/web/core/components/workspace-notifications/notification-app-sidebar-option.tsx b/apps/web/core/components/workspace-notifications/notification-app-sidebar-option.tsx index 3a2e9071c..d1397250e 100644 --- a/apps/web/core/components/workspace-notifications/notification-app-sidebar-option.tsx +++ b/apps/web/core/components/workspace-notifications/notification-app-sidebar-option.tsx @@ -8,7 +8,7 @@ import { getNumberCount } from "@plane/utils"; // components import { CountChip } from "@/components/common/count-chip"; // hooks -import { useWorkspaceNotifications } from "@/hooks/store"; +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; type TNotificationAppSidebarOption = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/root.tsx b/apps/web/core/components/workspace-notifications/root.tsx index f11db704a..ed96c2da9 100644 --- a/apps/web/core/components/workspace-notifications/root.tsx +++ b/apps/web/core/components/workspace-notifications/root.tsx @@ -8,14 +8,18 @@ import { ENotificationLoader, ENotificationQueryParamType } from "@plane/constan import { useTranslation } from "@plane/i18n"; import { cn } from "@plane/utils"; // components -import { LogoSpinner } from "@/components/common"; -import { SimpleEmptyState } from "@/components/empty-state"; -import { InboxContentRoot } from "@/components/inbox"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root"; // hooks -import { useUserPermissions, useWorkspace, useWorkspaceNotifications } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace" +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import { useWorkspaceIssueProperties } from "@/hooks/use-workspace-issue-properties"; +// plane web imports import { useNotificationPreview } from "@/plane-web/hooks/use-notification-preview"; +// local imports +import { InboxContentRoot } from "../inbox/content"; type NotificationsRootProps = { workspaceSlug?: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/empty-state.tsx b/apps/web/core/components/workspace-notifications/sidebar/empty-state.tsx index b36bc58a5..d71660892 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/empty-state.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/empty-state.tsx @@ -6,7 +6,7 @@ import { observer } from "mobx-react"; import { ENotificationTab } from "@plane/constants"; // components import { useTranslation } from "@plane/i18n"; -import { SimpleEmptyState } from "@/components/empty-state"; +import { SimpleEmptyState } from "@/components/empty-state/simple-empty-state-root"; // constants import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/filters/applied-filter.tsx b/apps/web/core/components/workspace-notifications/sidebar/filters/applied-filter.tsx index f551a25f4..ff2d36634 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/filters/applied-filter.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/filters/applied-filter.tsx @@ -8,7 +8,7 @@ import { ENotificationFilterType, FILTER_TYPE_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Header, EHeaderVariant, Tag } from "@plane/ui"; // hooks -import { useWorkspaceNotifications } from "@/hooks/store"; +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; type TAppliedFilters = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/filters/index.ts b/apps/web/core/components/workspace-notifications/sidebar/filters/index.ts deleted file mode 100644 index b4d269c8a..000000000 --- a/apps/web/core/components/workspace-notifications/sidebar/filters/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./menu"; -export * from "./applied-filter"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/filters/menu/index.ts b/apps/web/core/components/workspace-notifications/sidebar/filters/menu/index.ts index 5d76f4263..1efe34c51 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/filters/menu/index.ts +++ b/apps/web/core/components/workspace-notifications/sidebar/filters/menu/index.ts @@ -1,2 +1 @@ export * from "./root"; -export * from "./menu-option-item"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/filters/menu/menu-option-item.tsx b/apps/web/core/components/workspace-notifications/sidebar/filters/menu/menu-option-item.tsx index 206f4b046..a8ed60f30 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/filters/menu/menu-option-item.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/filters/menu/menu-option-item.tsx @@ -8,7 +8,7 @@ import { ENotificationFilterType } from "@plane/constants"; // helpers import { cn } from "@plane/utils"; // hooks -import { useWorkspaceNotifications } from "@/hooks/store"; +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; export const NotificationFilterOptionItem: FC<{ label: string; value: ENotificationFilterType }> = observer((props) => { const { value, label } = props; diff --git a/apps/web/core/components/workspace-notifications/sidebar/filters/menu/root.tsx b/apps/web/core/components/workspace-notifications/sidebar/filters/menu/root.tsx index e52e989a0..405eac7d9 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/filters/menu/root.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/filters/menu/root.tsx @@ -7,11 +7,10 @@ import { ListFilter } from "lucide-react"; import { ENotificationFilterType, FILTER_TYPE_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { PopoverMenu, Tooltip } from "@plane/ui"; -// components -import { NotificationFilterOptionItem } from "@/components/workspace-notifications"; -// constants // hooks import { usePlatformOS } from "@/hooks/use-platform-os"; +// local imports +import { NotificationFilterOptionItem } from "./menu-option-item"; export const NotificationFilter: FC = observer(() => { // hooks diff --git a/apps/web/core/components/workspace-notifications/sidebar/header/index.ts b/apps/web/core/components/workspace-notifications/sidebar/header/index.ts index eb738f5f3..1efe34c51 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/header/index.ts +++ b/apps/web/core/components/workspace-notifications/sidebar/header/index.ts @@ -1,2 +1 @@ export * from "./root"; -export * from "./options"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/header/options/index.ts b/apps/web/core/components/workspace-notifications/sidebar/header/options/index.ts index e4d478279..1efe34c51 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/header/options/index.ts +++ b/apps/web/core/components/workspace-notifications/sidebar/header/options/index.ts @@ -1,2 +1 @@ export * from "./root"; -export * from "./menu-option"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/index.ts b/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/index.ts index 808d90c76..1efe34c51 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/index.ts +++ b/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/index.ts @@ -1,2 +1 @@ export * from "./root"; -export * from "./menu-item"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/menu-item.tsx b/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/menu-item.tsx index 2c1a59ce0..38a33ee52 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/menu-item.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/menu-item.tsx @@ -4,8 +4,8 @@ import { FC } from "react"; import { observer } from "mobx-react"; // components import { cn } from "@plane/utils"; -import type { TPopoverMenuOptions } from "@/components/workspace-notifications"; -// helpers +// local imports +import type { TPopoverMenuOptions } from "./root"; export const NotificationMenuOptionItem: FC = observer((props) => { const { type, label = "", isActive, prependIcon, appendIcon, onClick } = props; diff --git a/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/root.tsx b/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/root.tsx index 21905a54d..d7a298145 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/root.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/header/options/menu-option/root.tsx @@ -1,16 +1,16 @@ "use client"; -import { FC, ReactNode } from "react"; +import { ReactNode } from "react"; import { observer } from "mobx-react"; import { Check, CheckCircle, Clock } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; import { TNotificationFilter } from "@plane/types"; import { ArchiveIcon, PopoverMenu } from "@plane/ui"; -// components -import { NotificationMenuOptionItem } from "@/components/workspace-notifications"; -// constants // hooks -import { useWorkspaceNotifications } from "@/hooks/store"; +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; +// local imports +import { NotificationMenuOptionItem } from "./menu-item"; export type TPopoverMenuOptions = { key: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/header/options/root.tsx b/apps/web/core/components/workspace-notifications/sidebar/header/options/root.tsx index f15520ec3..397252fe5 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/header/options/root.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/header/options/root.tsx @@ -10,13 +10,14 @@ import { } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Spinner, Tooltip } from "@plane/ui"; -// components -import { NotificationFilter, NotificationHeaderMenuOption } from "@/components/workspace-notifications"; -// constants -// hooks +// helpers import { captureSuccess } from "@/helpers/event-tracker.helper"; -import { useWorkspaceNotifications } from "@/hooks/store"; +// hooks +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; import { usePlatformOS } from "@/hooks/use-platform-os"; +// local imports +import { NotificationFilter } from "../../filters/menu"; +import { NotificationHeaderMenuOption } from "./menu-option"; type TNotificationSidebarHeaderOptions = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/header/root.tsx b/apps/web/core/components/workspace-notifications/sidebar/header/root.tsx index bd935b665..fd3e8d28c 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/header/root.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/header/root.tsx @@ -3,14 +3,16 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { Inbox } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; import { Breadcrumbs, Header } from "@plane/ui"; // components -import { BreadcrumbLink } from "@/components/common"; -import { SidebarHamburgerToggle } from "@/components/core"; -import { NotificationSidebarHeaderOptions } from "@/components/workspace-notifications"; +import { BreadcrumbLink } from "@/components/common/breadcrumb-link"; +import { SidebarHamburgerToggle } from "@/components/core/sidebar/sidebar-menu-hamburger-toggle"; // hooks -import { useAppTheme } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; +// local imports +import { NotificationSidebarHeaderOptions } from "./options"; type TNotificationSidebarHeader = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/index.ts b/apps/web/core/components/workspace-notifications/sidebar/index.ts index 4713a9b3c..1efe34c51 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/index.ts +++ b/apps/web/core/components/workspace-notifications/sidebar/index.ts @@ -1,10 +1 @@ -export * from "./loader"; -export * from "./empty-state"; - -export * from "./header"; - -export * from "./filters"; - -export * from "./notification-card"; - export * from "./root"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/content.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/content.tsx index d72ec28a0..141e9ad5b 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/content.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/content.tsx @@ -1,5 +1,6 @@ import { FC } from "react"; -import { TNotification } from "@plane/types"; +// plane imports +import type { TNotification } from "@plane/types"; import { convertMinutesToHoursMinutesString, renderFormattedDate, diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/index.ts b/apps/web/core/components/workspace-notifications/sidebar/notification-card/index.ts deleted file mode 100644 index d46440347..000000000 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./item"; -export * from "./options"; -export * from "./content"; diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/item.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/item.tsx index ab1c43a43..6c9b3d498 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/item.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/item.tsx @@ -3,14 +3,17 @@ import { FC, useState } from "react"; import { observer } from "mobx-react"; import { Clock } from "lucide-react"; +// plane imports import { Avatar, Row } from "@plane/ui"; import { cn, calculateTimeAgo, renderFormattedDate, renderFormattedTime, getFileURL } from "@plane/utils"; -// components -import { NotificationOption } from "@/components/workspace-notifications"; -// helpers // hooks -import { useIssueDetail, useNotification, useWorkspace, useWorkspaceNotifications } from "@/hooks/store"; +import { useIssueDetail } from "@/hooks/store/use-issue-detail"; +import { useNotification } from "@/hooks/store/notifications/use-notification"; +import { useWorkspace } from "@/hooks/store/use-workspace"; +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; +// local imports import { NotificationContent } from "./content"; +import { NotificationOption } from "./options"; type TNotificationItem = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/archive.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/archive.tsx index 9a03bd711..0c6a8ab21 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/archive.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/archive.tsx @@ -3,17 +3,18 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { ArchiveRestore } from "lucide-react"; +// plane imports import { NOTIFICATION_TRACKER_ELEMENTS, NOTIFICATION_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { ArchiveIcon, TOAST_TYPE, setToast } from "@plane/ui"; -// components -import { NotificationItemOptionButton } from "@/components/workspace-notifications"; -// constants -// hooks +// helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useWorkspaceNotifications } from "@/hooks/store"; +// hooks +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; // store import { INotification } from "@/store/notifications/notification"; +// local imports +import { NotificationItemOptionButton } from "./button"; type TNotificationItemArchiveOption = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/read.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/read.tsx index 073d7eef5..34f4e4f1f 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/read.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/read.tsx @@ -3,17 +3,18 @@ import { FC } from "react"; import { observer } from "mobx-react"; import { MessageSquare } from "lucide-react"; +// plane imports import { NOTIFICATION_TRACKER_ELEMENTS, NOTIFICATION_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { TOAST_TYPE, setToast } from "@plane/ui"; -// components -import { NotificationItemOptionButton } from "@/components/workspace-notifications"; -// constants -// hooks +// helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useWorkspaceNotifications } from "@/hooks/store"; +// hooks +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; // store import { INotification } from "@/store/notifications/notification"; +// local imports +import { NotificationItemOptionButton } from "./button"; type TNotificationItemReadOption = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/root.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/root.tsx index 7d0284ae5..c20664d54 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/root.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/root.tsx @@ -2,16 +2,14 @@ import { FC, Dispatch, SetStateAction } from "react"; import { observer } from "mobx-react"; -// components +// plane imports import { cn } from "@plane/utils"; -import { - NotificationItemReadOption, - NotificationItemArchiveOption, - NotificationItemSnoozeOption, -} from "@/components/workspace-notifications"; -// helpers // hooks -import { useNotification } from "@/hooks/store"; +import { useNotification } from "@/hooks/store/notifications/use-notification"; +// local imports +import { NotificationItemArchiveOption } from "./archive"; +import { NotificationItemReadOption } from "./read"; +import { NotificationItemSnoozeOption } from "./snooze"; type TNotificationOption = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx index cc3b274f0..389643157 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/modal.tsx @@ -10,7 +10,7 @@ import { allTimeIn30MinutesInterval12HoursFormat } from "@plane/constants"; import { Button, CustomSelect } from "@plane/ui"; // components import { getDate } from "@plane/utils"; -import { DateDropdown } from "@/components/dropdowns"; +import { DateDropdown } from "@/components/dropdowns/date"; // helpers type TNotificationSnoozeModal = { diff --git a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/root.tsx b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/root.tsx index b96783b09..32eced44d 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/root.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/notification-card/options/snooze/root.tsx @@ -8,15 +8,14 @@ import { Popover, Transition } from "@headlessui/react"; import { NOTIFICATION_SNOOZE_OPTIONS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { Tooltip, setToast, TOAST_TYPE } from "@plane/ui"; -// components import { cn } from "@plane/utils"; -import { NotificationSnoozeModal } from "@/components/workspace-notifications"; -// helpers // hooks -import { useWorkspaceNotifications } from "@/hooks/store"; +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; import { usePlatformOS } from "@/hooks/use-platform-os"; // store import { INotification } from "@/store/notifications/notification"; +// local imports +import { NotificationSnoozeModal } from "./modal"; type TNotificationItemSnoozeOption = { workspaceSlug: string; diff --git a/apps/web/core/components/workspace-notifications/sidebar/root.tsx b/apps/web/core/components/workspace-notifications/sidebar/root.tsx index 0439d5cda..a0f780c87 100644 --- a/apps/web/core/components/workspace-notifications/sidebar/root.tsx +++ b/apps/web/core/components/workspace-notifications/sidebar/root.tsx @@ -6,20 +6,20 @@ import { useParams } from "next/navigation"; // plane imports import { NOTIFICATION_TABS, TNotificationTab } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -// components import { Header, Row, ERowVariant, EHeaderVariant, ContentWrapper } from "@plane/ui"; import { cn, getNumberCount } from "@plane/utils"; -import { CountChip } from "@/components/common"; -import { - NotificationsLoader, - NotificationEmptyState, - NotificationSidebarHeader, - AppliedFilters, -} from "@/components/workspace-notifications"; +// components +import { CountChip } from "@/components/common/count-chip"; // hooks -import { useWorkspace, useWorkspaceNotifications } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace" +import { useWorkspaceNotifications } from "@/hooks/store/notifications"; import { NotificationListRoot } from "@/plane-web/components/workspace-notifications/list-root"; +// local imports +import { NotificationEmptyState } from "./empty-state"; +import { AppliedFilters } from "./filters/applied-filter"; +import { NotificationSidebarHeader } from "./header"; +import { NotificationsLoader } from "./loader"; export const NotificationsSidebarRoot: FC = observer(() => { const { workspaceSlug } = useParams(); diff --git a/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx b/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx index b425ab292..6006bf54c 100644 --- a/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx +++ b/apps/web/core/components/workspace/ConfirmWorkspaceMemberRemove.tsx @@ -5,7 +5,7 @@ import { observer } from "mobx-react"; import { AlertTriangle } from "lucide-react"; import { Dialog, Transition } from "@headlessui/react"; import { Button } from "@plane/ui"; -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; import { Props } from "./confirm-workspace-member-remove"; export const ConfirmWorkspaceMemberRemove: React.FC = observer((props) => { diff --git a/apps/web/core/components/workspace/billing/comparison/index.ts b/apps/web/core/components/workspace/billing/comparison/index.ts index 43f98b7e8..955fdd143 100644 --- a/apps/web/core/components/workspace/billing/comparison/index.ts +++ b/apps/web/core/components/workspace/billing/comparison/index.ts @@ -1,2 +1 @@ export * from "./base"; -export * from "./feature-detail"; diff --git a/apps/web/core/components/workspace/billing/index.ts b/apps/web/core/components/workspace/billing/index.ts deleted file mode 100644 index a71831671..000000000 --- a/apps/web/core/components/workspace/billing/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./comparison"; diff --git a/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx b/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx index 07bd56a12..201a02921 100644 --- a/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx +++ b/apps/web/core/components/workspace/confirm-workspace-member-remove.tsx @@ -8,7 +8,7 @@ import { Dialog, Transition } from "@headlessui/react"; import { useTranslation } from "@plane/i18n"; import { Button } from "@plane/ui"; // hooks -import { useUser } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user"; export type Props = { isOpen: boolean; diff --git a/apps/web/core/components/workspace/create-workspace-form.tsx b/apps/web/core/components/workspace/create-workspace-form.tsx index f760cd1d9..b1e2fac5c 100644 --- a/apps/web/core/components/workspace/create-workspace-form.tsx +++ b/apps/web/core/components/workspace/create-workspace-form.tsx @@ -17,7 +17,7 @@ import { IWorkspace } from "@plane/types"; import { Button, CustomSelect, Input, TOAST_TYPE, setToast } from "@plane/ui"; // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useWorkspace } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace"; import { useAppRouter } from "@/hooks/use-app-router"; // services import { WorkspaceService } from "@/plane-web/services"; diff --git a/apps/web/core/components/workspace/delete-workspace-form.tsx b/apps/web/core/components/workspace/delete-workspace-form.tsx index 14cffe545..dc373aa19 100644 --- a/apps/web/core/components/workspace/delete-workspace-form.tsx +++ b/apps/web/core/components/workspace/delete-workspace-form.tsx @@ -14,7 +14,8 @@ import { Button, Input, TOAST_TYPE, setToast } from "@plane/ui"; // hooks import { cn } from "@plane/utils"; import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useUserSettings, useWorkspace } from "@/hooks/store"; +import { useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; import { useAppRouter } from "@/hooks/use-app-router"; type Props = { diff --git a/apps/web/core/components/workspace/index.ts b/apps/web/core/components/workspace/index.ts deleted file mode 100644 index 81758c485..000000000 --- a/apps/web/core/components/workspace/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from "./settings"; -export * from "./sidebar"; -export * from "./views"; -export * from "./confirm-workspace-member-remove"; -export * from "./create-workspace-form"; -export * from "./logo"; -export * from "./invite-modal"; -export * from "./billing"; diff --git a/apps/web/core/components/workspace/invite-modal/fields.tsx b/apps/web/core/components/workspace/invite-modal/fields.tsx index d46a24995..e74e8104c 100644 --- a/apps/web/core/components/workspace/invite-modal/fields.tsx +++ b/apps/web/core/components/workspace/invite-modal/fields.tsx @@ -9,7 +9,7 @@ import { useTranslation } from "@plane/i18n"; import { CustomSelect, Input } from "@plane/ui"; import { cn } from "@plane/utils"; // hooks -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; import { InvitationFormValues } from "@/hooks/use-workspace-invitation"; type TInvitationFieldsProps = { diff --git a/apps/web/core/components/workspace/invite-modal/index.ts b/apps/web/core/components/workspace/invite-modal/index.ts deleted file mode 100644 index 235edf980..000000000 --- a/apps/web/core/components/workspace/invite-modal/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./actions"; -export * from "./fields"; -export * from "./form"; diff --git a/apps/web/core/components/workspace/settings/index.ts b/apps/web/core/components/workspace/settings/index.ts deleted file mode 100644 index d9b3b64b9..000000000 --- a/apps/web/core/components/workspace/settings/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./invitations-list-item"; -export * from "./members-list-item"; -export * from "./members-list"; -export * from "./workspace-details"; diff --git a/apps/web/core/components/workspace/settings/invitations-list-item.tsx b/apps/web/core/components/workspace/settings/invitations-list-item.tsx index 1fa1fce2f..6007804a6 100644 --- a/apps/web/core/components/workspace/settings/invitations-list-item.tsx +++ b/apps/web/core/components/workspace/settings/invitations-list-item.tsx @@ -10,10 +10,11 @@ import { useTranslation } from "@plane/i18n"; import { CustomSelect, TOAST_TYPE, setToast, TContextMenuItem, CustomMenu } from "@plane/ui"; import { cn, copyTextToClipboard } from "@plane/utils"; // components -import { ConfirmWorkspaceMemberRemove } from "@/components/workspace"; +import { ConfirmWorkspaceMemberRemove } from "@/components/workspace/confirm-workspace-member-remove"; // hooks import { captureClick } 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 = { invitationId: string; diff --git a/apps/web/core/components/workspace/settings/member-columns.tsx b/apps/web/core/components/workspace/settings/member-columns.tsx index edff3f15a..ff04eee1d 100644 --- a/apps/web/core/components/workspace/settings/member-columns.tsx +++ b/apps/web/core/components/workspace/settings/member-columns.tsx @@ -12,7 +12,8 @@ import { CustomSelect, PopoverMenu, TOAST_TYPE, setToast } from "@plane/ui"; // helpers 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"; // plane web constants export interface RowData { diff --git a/apps/web/core/components/workspace/settings/members-list-item.tsx b/apps/web/core/components/workspace/settings/members-list-item.tsx index db7e7e275..a3ab6271a 100644 --- a/apps/web/core/components/workspace/settings/members-list-item.tsx +++ b/apps/web/core/components/workspace/settings/members-list-item.tsx @@ -3,19 +3,22 @@ import { FC } from "react"; import { isEmpty } from "lodash"; import { observer } from "mobx-react"; -// ui +// plane imports import { MEMBER_TRACKER_EVENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IWorkspaceMember } from "@plane/types"; import { TOAST_TYPE, Table, setToast } from "@plane/ui"; // components import { MembersLayoutLoader } from "@/components/ui/loader/layouts/members-layout-loader"; -import { ConfirmWorkspaceMemberRemove } from "@/components/workspace"; -// constants -// hooks +import { ConfirmWorkspaceMemberRemove } from "@/components/workspace/confirm-workspace-member-remove"; +// helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useMember, useUser, useUserPermissions, useUserSettings, useWorkspace } from "@/hooks/store"; +// hooks +import { useMember } from "@/hooks/store/use-member" +import { useUser, useUserPermissions, useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; import { useAppRouter } from "@/hooks/use-app-router"; +// plane web imports import { useMemberColumns } from "@/plane-web/components/workspace/settings/useMemberColumns"; type Props = { diff --git a/apps/web/core/components/workspace/settings/members-list.tsx b/apps/web/core/components/workspace/settings/members-list.tsx index 9bce5ea0f..f2d51807c 100644 --- a/apps/web/core/components/workspace/settings/members-list.tsx +++ b/apps/web/core/components/workspace/settings/members-list.tsx @@ -4,13 +4,17 @@ import { useParams } from "next/navigation"; import useSWR from "swr"; import { ChevronDown } from "lucide-react"; import { Disclosure } from "@headlessui/react"; +// plane imports import { useTranslation } from "@plane/i18n"; import { Collapsible } from "@plane/ui"; -import { CountChip } from "@/components/common"; -import { MembersSettingsLoader } from "@/components/ui"; -import { WorkspaceInvitationsListItem, WorkspaceMembersListItem } from "@/components/workspace"; +// components +import { CountChip } from "@/components/common/count-chip"; +import { MembersSettingsLoader } from "@/components/ui/loader/settings/members"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; +// local imports +import { WorkspaceInvitationsListItem } from "./invitations-list-item"; +import { WorkspaceMembersListItem } from "./members-list-item"; export const WorkspaceMembersList: FC<{ searchQuery: string; isAdmin: boolean }> = observer((props) => { const { searchQuery, isAdmin } = props; diff --git a/apps/web/core/components/workspace/settings/workspace-details.tsx b/apps/web/core/components/workspace/settings/workspace-details.tsx index da3dbe3d1..60c5f1b14 100644 --- a/apps/web/core/components/workspace/settings/workspace-details.tsx +++ b/apps/web/core/components/workspace/settings/workspace-details.tsx @@ -17,14 +17,15 @@ import { IWorkspace } from "@plane/types"; import { Button, CustomSelect, Input, TOAST_TYPE, setToast } from "@plane/ui"; import { copyUrlToClipboard, getFileURL } from "@plane/utils"; // components -import { LogoSpinner } from "@/components/common"; -import { WorkspaceImageUploadModal } from "@/components/core"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { WorkspaceImageUploadModal } from "@/components/core/modals/workspace-image-upload-modal"; // helpers // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useUserPermissions, useWorkspace } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane web components -import { DeleteWorkspaceSection } from "@/plane-web/components/workspace"; +import { DeleteWorkspaceSection } from "@/plane-web/components/workspace/delete-workspace-section"; const defaultValues: Partial = { name: "", @@ -66,7 +67,7 @@ export const WorkspaceDetails: FC = observer(() => { }; await updateWorkspace(currentWorkspace.slug, payload) - .then((res) => { + .then(() => { captureSuccess({ eventName: WORKSPACE_TRACKER_EVENTS.update, payload: { slug: currentWorkspace.slug }, diff --git a/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx b/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx index 7dec302b7..f813f9adc 100644 --- a/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx +++ b/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/favorite-item-title.tsx @@ -3,7 +3,7 @@ import React, { FC } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { Tooltip } from "@plane/ui"; -import { useAppTheme } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; import { usePlatformOS } from "@/hooks/use-platform-os"; type Props = { diff --git a/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx b/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx index 670f9ba11..60606f769 100644 --- a/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx +++ b/apps/web/core/components/workspace/sidebar/favorites/favorite-items/common/helper.tsx @@ -4,9 +4,9 @@ import { FileText } from "lucide-react"; // plane imports import { IFavorite, TLogoProps } from "@plane/types"; // components -import { Logo } from "@/components/common"; +import { Logo } from "@/components/common/logo"; // plane web constants -import { FAVORITE_ITEM_ICONS, FAVORITE_ITEM_LINKS } from "@/plane-web/constants"; +import { FAVORITE_ITEM_ICONS, FAVORITE_ITEM_LINKS } from "@/plane-web/constants/sidebar-favorites"; export const getFavoriteItemIcon = (type: string, logo?: TLogoProps | undefined) => { const Icon = FAVORITE_ITEM_ICONS[type] || FileText; diff --git a/apps/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx b/apps/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx index 1b5c9436e..5e06ec574 100644 --- a/apps/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx +++ b/apps/web/core/components/workspace/sidebar/favorites/favorite-items/root.tsx @@ -11,25 +11,17 @@ import { import { pointerOutsideOfPreview } from "@atlaskit/pragmatic-drag-and-drop/element/pointer-outside-of-preview"; import { setCustomNativeDragPreview } from "@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview"; import { attachInstruction } from "@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item"; - import { observer } from "mobx-react"; -// plane helpers import { createRoot } from "react-dom/client"; +// plane imports import { useOutsideClickDetector } from "@plane/hooks"; -// ui import { IFavorite, InstructionType } from "@plane/types"; -// components import { DropIndicator } from "@plane/ui"; -import { - FavoriteItemDragHandle, - FavoriteItemQuickAction, - FavoriteItemWrapper, - FavoriteItemTitle, -} from "@/components/workspace/sidebar/favorites"; // hooks import { useFavoriteItemDetails } from "@/hooks/use-favorite-item-details"; -//helpers +// local imports import { getCanDrop, getInstructionFromPayload } from "../favorites.helpers"; +import { FavoriteItemDragHandle, FavoriteItemQuickAction, FavoriteItemTitle, FavoriteItemWrapper } from "./common"; type Props = { isLastChild: boolean; diff --git a/apps/web/core/components/workspace/sidebar/favorites/index.ts b/apps/web/core/components/workspace/sidebar/favorites/index.ts deleted file mode 100644 index fd92ae14a..000000000 --- a/apps/web/core/components/workspace/sidebar/favorites/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./favorite-folder"; -export * from "./favorite-items"; -export * from "./favorites-menu"; -export * from "./favorites.helpers"; -export * from "./new-fav-folder"; diff --git a/apps/web/core/components/workspace/sidebar/help-menu.tsx b/apps/web/core/components/workspace/sidebar/help-menu.tsx index 3a1dc8320..e1bb34e18 100644 --- a/apps/web/core/components/workspace/sidebar/help-menu.tsx +++ b/apps/web/core/components/workspace/sidebar/help-menu.tsx @@ -12,7 +12,10 @@ import { cn } from "@plane/utils"; import { ProductUpdatesModal } from "@/components/global"; // helpers // hooks -import { useCommandPalette, useInstance, useTransient, useUserSettings } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useInstance } from "@/hooks/store/use-instance" +import { useTransient } from "@/hooks/store/use-transient" +import { useUserSettings } from "@/hooks/store/user"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web components import { PlaneVersionNumber } from "@/plane-web/components/global"; diff --git a/apps/web/core/components/workspace/sidebar/help-section.tsx b/apps/web/core/components/workspace/sidebar/help-section.tsx index 5aff74d56..d3d69bb15 100644 --- a/apps/web/core/components/workspace/sidebar/help-section.tsx +++ b/apps/web/core/components/workspace/sidebar/help-section.tsx @@ -4,19 +4,22 @@ import React, { useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { FileText, HelpCircle, MessagesSquare, MoveLeft, User } from "lucide-react"; +// plane imports import { useTranslation } from "@plane/i18n"; -// ui import { CustomMenu, Tooltip, ToggleSwitch } from "@plane/ui"; -// components import { cn } from "@plane/utils"; +// components import { ProductUpdatesModal } from "@/components/global"; -// helpers // hooks -import { useAppTheme, useCommandPalette, useInstance, useTransient, useUserSettings } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useInstance } from "@/hooks/store/use-instance" +import { useTransient } from "@/hooks/store/use-transient" +import { useUserSettings } from "@/hooks/store/user"; import { usePlatformOS } from "@/hooks/use-platform-os"; // plane web components import { PlaneVersionNumber } from "@/plane-web/components/global"; -import { WorkspaceEditionBadge } from "@/plane-web/components/workspace"; +import { WorkspaceEditionBadge } from "@/plane-web/components/workspace/edition-badge"; export interface WorkspaceHelpSectionProps { setSidebarActive?: React.Dispatch>; diff --git a/apps/web/core/components/workspace/sidebar/help-section/root.tsx b/apps/web/core/components/workspace/sidebar/help-section/root.tsx index bf2a547d6..619abb4f8 100644 --- a/apps/web/core/components/workspace/sidebar/help-section/root.tsx +++ b/apps/web/core/components/workspace/sidebar/help-section/root.tsx @@ -9,9 +9,12 @@ import { useTranslation } from "@plane/i18n"; import { CustomMenu, ToggleSwitch } from "@plane/ui"; // components import { ProductUpdatesModal } from "@/components/global"; -import { AppSidebarItem } from "@/components/sidebar"; +import { AppSidebarItem } from "@/components/sidebar/sidebar-item"; // hooks -import { useCommandPalette, useInstance, useTransient, useUserSettings } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useInstance } from "@/hooks/store/use-instance" +import { useTransient } from "@/hooks/store/use-transient" +import { useUserSettings } from "@/hooks/store/user"; // plane web components import { PlaneVersionNumber } from "@/plane-web/components/global"; diff --git a/apps/web/core/components/workspace/sidebar/index.ts b/apps/web/core/components/workspace/sidebar/index.ts deleted file mode 100644 index 8c18ceae6..000000000 --- a/apps/web/core/components/workspace/sidebar/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -export * from "./dropdown"; -export * from "./favorites"; -export * from "./help-section"; -export * from "./projects-list-item"; -export * from "./projects-list"; -export * from "./project-navigation"; -export * from "./quick-actions"; -export * from "./user-menu"; -export * from "./user-menu-item"; -export * from "./workspace-menu"; -export * from "./workspace-menu-item"; -export * from "./workspace-menu-header"; -export * from "./help-section"; diff --git a/apps/web/core/components/workspace/sidebar/project-navigation.tsx b/apps/web/core/components/workspace/sidebar/project-navigation.tsx index 754f45de5..25912263b 100644 --- a/apps/web/core/components/workspace/sidebar/project-navigation.tsx +++ b/apps/web/core/components/workspace/sidebar/project-navigation.tsx @@ -11,9 +11,12 @@ import { EUserProjectRoles } from "@plane/types"; // plane ui import { DiceIcon, ContrastIcon, LayersIcon, Intake } from "@plane/ui"; // components -import { SidebarNavItem } from "@/components/sidebar"; +import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; // hooks -import { useAppTheme, useIssueDetail, useProject, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useIssueDetail } from "@/hooks/store/use-issue-detail" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; export type TNavigationItem = { name: string; diff --git a/apps/web/core/components/workspace/sidebar/projects-list-item.tsx b/apps/web/core/components/workspace/sidebar/projects-list-item.tsx index 714c36eca..04479c7a8 100644 --- a/apps/web/core/components/workspace/sidebar/projects-list-item.tsx +++ b/apps/web/core/components/workspace/sidebar/projects-list-item.tsx @@ -11,23 +11,25 @@ import { useParams, useRouter } from "next/navigation"; import { createRoot } from "react-dom/client"; import { LinkIcon, Settings, Share2, LogOut, MoreHorizontal, ChevronRight } from "lucide-react"; import { Disclosure, Transition } from "@headlessui/react"; -// plane helpers +// plane imports import { EUserPermissions, EUserPermissionsLevel, MEMBER_TRACKER_ELEMENTS } from "@plane/constants"; import { useOutsideClickDetector } from "@plane/hooks"; import { useTranslation } from "@plane/i18n"; -// ui import { CustomMenu, Tooltip, ArchiveIcon, DropIndicator, DragHandle, ControlLink } from "@plane/ui"; -// components import { cn } from "@plane/utils"; +// components import { Logo } from "@/components/common/logo"; -import { LeaveProjectModal, PublishProjectModal } from "@/components/project"; -// helpers +import { LeaveProjectModal } from "@/components/project/leave-project-modal"; +import { PublishProjectModal } from "@/components/project/publish-project/modal"; // hooks -import { useAppTheme, useCommandPalette, useProject, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; import { usePlatformOS } from "@/hooks/use-platform-os"; -// plane-web components +// plane web imports import { ProjectNavigationRoot } from "@/plane-web/components/sidebar"; -// constants +// local imports import { HIGHLIGHT_CLASS, highlightIssueOnDrop } from "../../issues/issue-layouts/utils"; type Props = { diff --git a/apps/web/core/components/workspace/sidebar/projects-list.tsx b/apps/web/core/components/workspace/sidebar/projects-list.tsx index 1f4a8f71f..623b0294a 100644 --- a/apps/web/core/components/workspace/sidebar/projects-list.tsx +++ b/apps/web/core/components/workspace/sidebar/projects-list.tsx @@ -7,23 +7,24 @@ import { observer } from "mobx-react"; import { useParams, usePathname } from "next/navigation"; import { ChevronRight, Plus } from "lucide-react"; import { Disclosure, Transition } from "@headlessui/react"; +// plane imports import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -// ui import { Loader, TOAST_TYPE, Tooltip, setToast } from "@plane/ui"; import { copyUrlToClipboard, cn, orderJoinedProjects } from "@plane/utils"; // components -import { CreateProjectModal } from "@/components/project"; -import { SidebarProjectsListItem } from "@/components/workspace"; -// helpers +import { CreateProjectModal } from "@/components/project/create-project-modal"; // hooks -import { useCommandPalette, useProject, useUserPermissions } from "@/hooks/store"; -// plane web types +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; +// plane web imports import { TProject } from "@/plane-web/types"; +// local imports +import { SidebarProjectsListItem } from "./projects-list-item"; export const SidebarProjectsList: FC = observer(() => { // states - const [isAllProjectsListOpen, setIsAllProjectsListOpen] = useState(true); const [isProjectModalOpen, setIsProjectModalOpen] = useState(false); const [isScrolled, setIsScrolled] = useState(false); // scroll animation state diff --git a/apps/web/core/components/workspace/sidebar/quick-actions.tsx b/apps/web/core/components/workspace/sidebar/quick-actions.tsx index 878447233..b79cb7ad6 100644 --- a/apps/web/core/components/workspace/sidebar/quick-actions.tsx +++ b/apps/web/core/components/workspace/sidebar/quick-actions.tsx @@ -2,20 +2,20 @@ import { useRef, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { PenSquare } from "lucide-react"; +// plane imports import { EUserPermissions, EUserPermissionsLevel, SIDEBAR_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -// types import { TIssue } from "@plane/types"; -// components import { cn } from "@plane/utils"; -import { CreateUpdateIssueModal } from "@/components/issues"; -// constants -// helpers +// components +import { CreateUpdateIssueModal } from "@/components/issues/issue-modal/modal"; // hooks -import { useCommandPalette, useProject, useUserPermissions } from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette" +import { useProject } from "@/hooks/store/use-project" +import { useUserPermissions } from "@/hooks/store/user"; import useLocalStorage from "@/hooks/use-local-storage"; // plane web components -import { AppSearch } from "@/plane-web/components/workspace"; +import { AppSearch } from "@/plane-web/components/workspace/sidebar/app-search"; export const SidebarQuickActions = observer(() => { const { t } = useTranslation(); diff --git a/apps/web/core/components/workspace/sidebar/sidebar-item.tsx b/apps/web/core/components/workspace/sidebar/sidebar-item.tsx index 085cbab7b..653f2479d 100644 --- a/apps/web/core/components/workspace/sidebar/sidebar-item.tsx +++ b/apps/web/core/components/workspace/sidebar/sidebar-item.tsx @@ -4,12 +4,18 @@ import { FC, ReactNode } from "react"; import { observer } from "mobx-react"; import Link from "next/link"; import { useParams, usePathname } from "next/navigation"; +// plane imports import { EUserPermissionsLevel, IWorkspaceSidebarNavigationItem } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; -import { SidebarNavItem } from "@/components/sidebar"; -import { NotificationAppSidebarOption } from "@/components/workspace-notifications"; -import { useAppTheme, useUser, useUserPermissions, useWorkspace } from "@/hooks/store"; -import { getSidebarNavigationItemIcon } from "@/plane-web/components/workspace"; +// components +import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; +import { NotificationAppSidebarOption } from "@/components/workspace-notifications/notification-app-sidebar-option"; +// hooks +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useUser, useUserPermissions } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; +// plane web imports +import { getSidebarNavigationItemIcon } from "@/plane-web/components/workspace/sidebar/helper"; type Props = { item: IWorkspaceSidebarNavigationItem; @@ -35,7 +41,7 @@ export const SidebarItemBase: FC = observer(({ item, additionalRender, ad const staticItems = ["home", "inbox", "pi_chat", "projects", "your_work", ...(additionalStaticItems || [])]; const slug = workspaceSlug?.toString() || ""; - if (!allowPermissions(item.access as any, EUserPermissionsLevel.WORKSPACE, slug)) return null; + if (!allowPermissions(item.access, EUserPermissionsLevel.WORKSPACE, slug)) return null; const sidebarPreference = getNavigationPreferences(slug); const isPinned = sidebarPreference?.[item.key]?.is_pinned; diff --git a/apps/web/core/components/workspace/sidebar/sidebar-menu-items.tsx b/apps/web/core/components/workspace/sidebar/sidebar-menu-items.tsx index 3a2676c81..73f8bbbaf 100644 --- a/apps/web/core/components/workspace/sidebar/sidebar-menu-items.tsx +++ b/apps/web/core/components/workspace/sidebar/sidebar-menu-items.tsx @@ -13,12 +13,13 @@ import { import { useTranslation } from "@plane/i18n"; import { cn } from "@plane/utils"; // components -import { SidebarNavItem } from "@/components/sidebar"; +import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; // store hooks -import { useAppTheme, useWorkspace } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useWorkspace } from "@/hooks/store/use-workspace"; import useLocalStorage from "@/hooks/use-local-storage"; // plane-web imports -import { SidebarItem } from "@/plane-web/components/workspace/sidebar"; +import { SidebarItem } from "@/plane-web/components/workspace/sidebar/sidebar-item"; export const SidebarMenuItems = observer(() => { // routers diff --git a/apps/web/core/components/workspace/sidebar/user-menu-item.tsx b/apps/web/core/components/workspace/sidebar/user-menu-item.tsx index 5d0b555dc..efd4b3f38 100644 --- a/apps/web/core/components/workspace/sidebar/user-menu-item.tsx +++ b/apps/web/core/components/workspace/sidebar/user-menu-item.tsx @@ -8,11 +8,12 @@ import { EUserPermissionsLevel, SIDEBAR_TRACKER_ELEMENTS } from "@plane/constant import { useTranslation } from "@plane/i18n"; import { EUserWorkspaceRoles } from "@plane/types"; // components -import { SidebarNavItem } from "@/components/sidebar"; -import { NotificationAppSidebarOption } from "@/components/workspace-notifications"; +import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; +import { NotificationAppSidebarOption } from "@/components/workspace-notifications/notification-app-sidebar-option"; // hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useAppTheme, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useUserPermissions } from "@/hooks/store/user"; export interface SidebarUserMenuItemProps { item: { diff --git a/apps/web/core/components/workspace/sidebar/user-menu-root.tsx b/apps/web/core/components/workspace/sidebar/user-menu-root.tsx index 4a874c9e9..a830b0b85 100644 --- a/apps/web/core/components/workspace/sidebar/user-menu-root.tsx +++ b/apps/web/core/components/workspace/sidebar/user-menu-root.tsx @@ -15,7 +15,8 @@ import { useTranslation } from "@plane/i18n"; import { Avatar, TOAST_TYPE, setToast } from "@plane/ui"; import { getFileURL } from "@plane/utils"; // hooks -import { useAppTheme, useUser } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useUser } from "@/hooks/store/user"; import { useAppRail } from "@/hooks/use-app-rail"; type Props = { diff --git a/apps/web/core/components/workspace/sidebar/user-menu.tsx b/apps/web/core/components/workspace/sidebar/user-menu.tsx index 9826a77b9..2b9bcfcee 100644 --- a/apps/web/core/components/workspace/sidebar/user-menu.tsx +++ b/apps/web/core/components/workspace/sidebar/user-menu.tsx @@ -4,13 +4,13 @@ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; import { Home, Inbox, PenSquare } from "lucide-react"; -import { EUserWorkspaceRoles } from "@plane/types"; // plane imports +import { EUserWorkspaceRoles } from "@plane/types"; import { UserActivityIcon } from "@plane/ui"; -// components -import { SidebarUserMenuItem } from "@/components/workspace/sidebar"; // hooks -import { useUserPermissions, useUser } from "@/hooks/store"; +import { useUserPermissions, useUser } from "@/hooks/store/user"; +// local imports +import { SidebarUserMenuItem } from "./user-menu-item"; export const SidebarUserMenu = observer(() => { const { workspaceSlug } = useParams(); diff --git a/apps/web/core/components/workspace/sidebar/workspace-menu-header.tsx b/apps/web/core/components/workspace/sidebar/workspace-menu-header.tsx index 0d2a736f3..bda8343ba 100644 --- a/apps/web/core/components/workspace/sidebar/workspace-menu-header.tsx +++ b/apps/web/core/components/workspace/sidebar/workspace-menu-header.tsx @@ -12,7 +12,7 @@ import { EUserWorkspaceRoles } from "@plane/types"; import { CustomMenu } from "@plane/ui"; import { cn } from "@plane/utils"; // store hooks -import { useUserPermissions } from "@/hooks/store"; +import { useUserPermissions } from "@/hooks/store/user"; export type SidebarWorkspaceMenuHeaderProps = { isWorkspaceMenuOpen: boolean; diff --git a/apps/web/core/components/workspace/sidebar/workspace-menu-item.tsx b/apps/web/core/components/workspace/sidebar/workspace-menu-item.tsx index e8028761e..e873784d8 100644 --- a/apps/web/core/components/workspace/sidebar/workspace-menu-item.tsx +++ b/apps/web/core/components/workspace/sidebar/workspace-menu-item.tsx @@ -8,11 +8,12 @@ import { useTranslation } from "@plane/i18n"; import { EUserWorkspaceRoles } from "@plane/types"; import { cn } from "@plane/utils"; // components -import { SidebarNavItem } from "@/components/sidebar"; +import { SidebarNavItem } from "@/components/sidebar/sidebar-navigation"; // hooks -import { useAppTheme, useUserPermissions } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useUserPermissions } from "@/hooks/store/user"; // plane web imports -import { UpgradeBadge } from "@/plane-web/components/workspace"; +import { UpgradeBadge } from "@/plane-web/components/workspace/upgrade-badge"; export type SidebarWorkspaceMenuItemProps = { item: { diff --git a/apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx b/apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx index c6f1d3ec2..404c70849 100644 --- a/apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx +++ b/apps/web/core/components/workspace/sidebar/workspace-menu-root.tsx @@ -13,9 +13,11 @@ import { IWorkspace } from "@plane/types"; import { Loader, TOAST_TYPE, setToast } from "@plane/ui"; import { orderWorkspacesList, cn } from "@plane/utils"; // helpers -import { AppSidebarItem } from "@/components/sidebar"; +import { AppSidebarItem } from "@/components/sidebar/sidebar-item"; // hooks -import { useAppTheme, useUser, useUserProfile, useWorkspace } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme" +import { useUser, useUserProfile } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; // plane web helpers import { getIsWorkspaceCreationDisabled } from "@/plane-web/helpers/instance.helper"; // components @@ -67,9 +69,6 @@ export const WorkspaceMenuRoot = observer((props: WorkspaceMenuRootProps) => { else toggleAnySidebarDropdown(false); }, [isWorkspaceMenuOpen]); - const logo = activeWorkspace?.logo_url; - const name = activeWorkspace?.name; - return ( { // router params diff --git a/apps/web/core/components/workspace/views/delete-view-modal.tsx b/apps/web/core/components/workspace/views/delete-view-modal.tsx index 0e6c5857e..4be9d4fcd 100644 --- a/apps/web/core/components/workspace/views/delete-view-modal.tsx +++ b/apps/web/core/components/workspace/views/delete-view-modal.tsx @@ -11,7 +11,7 @@ import { AlertModalCore, TOAST_TYPE, setToast } from "@plane/ui"; // constants // hooks import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useGlobalView } from "@/hooks/store"; +import { useGlobalView } from "@/hooks/store/use-global-view"; type Props = { data: IWorkspaceView; diff --git a/apps/web/core/components/workspace/views/form.tsx b/apps/web/core/components/workspace/views/form.tsx index ece0918f7..881b22a59 100644 --- a/apps/web/core/components/workspace/views/form.tsx +++ b/apps/web/core/components/workspace/views/form.tsx @@ -20,10 +20,16 @@ import { import { Button, Input, TextArea } from "@plane/ui"; // components import { getComputedDisplayFilters, getComputedDisplayProperties } from "@plane/utils"; -import { AppliedFiltersList, DisplayFiltersSelection, FilterSelection, FiltersDropdown } from "@/components/issues"; +import { + AppliedFiltersList, + DisplayFiltersSelection, + FilterSelection, + FiltersDropdown, +} from "@/components/issues/issue-layouts/filters"; // helpers // hooks -import { useLabel, useMember } from "@/hooks/store"; +import { useLabel } from "@/hooks/store/use-label" +import { useMember } from "@/hooks/store/use-member"; import { AccessController } from "@/plane-web/components/views/access-controller"; type Props = { diff --git a/apps/web/core/components/workspace/views/header.tsx b/apps/web/core/components/workspace/views/header.tsx index 05401dca8..d2d8860a4 100644 --- a/apps/web/core/components/workspace/views/header.tsx +++ b/apps/web/core/components/workspace/views/header.tsx @@ -1,7 +1,6 @@ import React, { useEffect, useRef, useState } from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// icons import { Plus } from "lucide-react"; // plane imports import { @@ -12,17 +11,16 @@ import { GLOBAL_VIEW_TRACKER_EVENTS, } from "@plane/constants"; import { TStaticViewTypes } from "@plane/types"; -// components import { Header, EHeaderVariant } from "@plane/ui"; -import { - CreateUpdateWorkspaceViewModal, - DefaultWorkspaceViewQuickActions, - WorkspaceViewQuickActions, -} from "@/components/workspace"; -// constants -// store hooks +// helpers import { captureSuccess } from "@/helpers/event-tracker.helper"; -import { useGlobalView, useUserPermissions } from "@/hooks/store"; +// hooks +import { useGlobalView } from "@/hooks/store/use-global-view" +import { useUserPermissions } from "@/hooks/store/user"; +// local imports +import { DefaultWorkspaceViewQuickActions } from "./default-view-quick-action"; +import { CreateUpdateWorkspaceViewModal } from "./modal"; +import { WorkspaceViewQuickActions } from "./quick-action"; const ViewTab = observer((props: { viewId: string }) => { const { viewId } = props; diff --git a/apps/web/core/components/workspace/views/index.ts b/apps/web/core/components/workspace/views/index.ts deleted file mode 100644 index c41d75238..000000000 --- a/apps/web/core/components/workspace/views/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from "./default-view-list-item"; -export * from "./delete-view-modal"; -export * from "./form"; -export * from "./header"; -export * from "./modal"; -export * from "./view-list-item"; -export * from "./views-list"; -export * from "./quick-action"; -export * from "./default-view-quick-action"; diff --git a/apps/web/core/components/workspace/views/modal.tsx b/apps/web/core/components/workspace/views/modal.tsx index a7336e312..de54f114a 100644 --- a/apps/web/core/components/workspace/views/modal.tsx +++ b/apps/web/core/components/workspace/views/modal.tsx @@ -3,18 +3,17 @@ import React from "react"; import { observer } from "mobx-react"; import { useParams } from "next/navigation"; -// types +// plane imports import { GLOBAL_VIEW_TRACKER_EVENTS } from "@plane/constants"; import { IWorkspaceView } from "@plane/types"; -// ui import { EModalPosition, EModalWidth, ModalCore, TOAST_TYPE, setToast } from "@plane/ui"; -// components -import { WorkspaceViewForm } from "@/components/workspace"; -// constants -// store hooks +// helpers import { captureError, captureSuccess } from "@/helpers/event-tracker.helper"; -import { useGlobalView } from "@/hooks/store"; +// hooks +import { useGlobalView } from "@/hooks/store/use-global-view"; import { useAppRouter } from "@/hooks/use-app-router"; +// local imports +import { WorkspaceViewForm } from "./form"; type Props = { data?: IWorkspaceView; diff --git a/apps/web/core/components/workspace/views/quick-action.tsx b/apps/web/core/components/workspace/views/quick-action.tsx index 043cbb925..cbb67cb91 100644 --- a/apps/web/core/components/workspace/views/quick-action.tsx +++ b/apps/web/core/components/workspace/views/quick-action.tsx @@ -3,19 +3,19 @@ import { useState } from "react"; import { observer } from "mobx-react"; import { ExternalLink, LinkIcon, Pencil, Trash2 } from "lucide-react"; -// types +// plane imports import { EUserPermissions, EUserPermissionsLevel, GLOBAL_VIEW_TRACKER_ELEMENTS } from "@plane/constants"; import { useTranslation } from "@plane/i18n"; import { IWorkspaceView } from "@plane/types"; import { CustomMenu, TContextMenuItem, TOAST_TYPE, setToast } from "@plane/ui"; import { copyUrlToClipboard, cn } from "@plane/utils"; -// components -import { CreateUpdateWorkspaceViewModal, DeleteGlobalViewModal } from "@/components/workspace"; -// constants // helpers -// hooks import { captureClick } from "@/helpers/event-tracker.helper"; -import { useUser, useUserPermissions } from "@/hooks/store"; +// hooks +import { useUser, useUserPermissions } from "@/hooks/store/user"; +// local imports +import { DeleteGlobalViewModal } from "./delete-view-modal"; +import { CreateUpdateWorkspaceViewModal } from "./modal"; type Props = { workspaceSlug: string; @@ -79,7 +79,6 @@ export const WorkspaceViewQuickActions: React.FC = observer((props) => { <> setUpdateViewModal(false)} /> setDeleteViewModal(false)} /> - { const context = useContext(IssueModalContext); diff --git a/apps/web/core/hooks/editor/use-editor-config.ts b/apps/web/core/hooks/editor/use-editor-config.ts index ca76b802f..99137f5e0 100644 --- a/apps/web/core/hooks/editor/use-editor-config.ts +++ b/apps/web/core/hooks/editor/use-editor-config.ts @@ -3,7 +3,7 @@ import { useCallback } from "react"; import type { TFileHandler } from "@plane/editor"; import { getEditorAssetDownloadSrc, getEditorAssetSrc } from "@plane/utils"; // hooks -import { useEditorAsset } from "@/hooks/store"; +import { useEditorAsset } from "@/hooks/store/use-editor-asset"; // plane web hooks import { useFileSize } from "@/plane-web/hooks/use-file-size"; // services diff --git a/apps/web/core/hooks/editor/use-editor-mention.tsx b/apps/web/core/hooks/editor/use-editor-mention.tsx index 04e3686dd..e6c619a8e 100644 --- a/apps/web/core/hooks/editor/use-editor-mention.tsx +++ b/apps/web/core/hooks/editor/use-editor-mention.tsx @@ -1,6 +1,6 @@ import { useCallback } from "react"; // plane editor -import { TMentionSection, TMentionSuggestion } from "@plane/editor"; +import type { TMentionSection, TMentionSuggestion } from "@plane/editor"; // plane types import { TSearchEntities, TSearchEntityRequestPayload, TSearchResponse, TUserSearchResponse } from "@plane/types"; // plane ui diff --git a/apps/web/core/hooks/store/estimates/use-estimate-point.ts b/apps/web/core/hooks/store/estimates/use-estimate-point.ts index 156934caa..ba54a60dc 100644 --- a/apps/web/core/hooks/store/estimates/use-estimate-point.ts +++ b/apps/web/core/hooks/store/estimates/use-estimate-point.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // mobx store -import { IEstimatePoint } from "@/store/estimates/estimate-point"; +import type { IEstimatePoint } from "@/store/estimates/estimate-point"; export const useEstimatePoint = ( estimateId: string | undefined, diff --git a/apps/web/core/hooks/store/estimates/use-estimate.ts b/apps/web/core/hooks/store/estimates/use-estimate.ts index 17aaf559e..b79110459 100644 --- a/apps/web/core/hooks/store/estimates/use-estimate.ts +++ b/apps/web/core/hooks/store/estimates/use-estimate.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // mobx store -import { IEstimate } from "@/plane-web/store/estimates/estimate"; +import type { IEstimate } from "@/plane-web/store/estimates/estimate"; export const useEstimate = (estimateId: string | undefined): IEstimate => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/estimates/use-project-estimate.ts b/apps/web/core/hooks/store/estimates/use-project-estimate.ts index 6225a1cb6..a848271b0 100644 --- a/apps/web/core/hooks/store/estimates/use-project-estimate.ts +++ b/apps/web/core/hooks/store/estimates/use-project-estimate.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // context import { StoreContext } from "@/lib/store-context"; // mobx store -import { IProjectEstimateStore } from "@/store/estimates/project-estimate.store"; +import type { IProjectEstimateStore } from "@/store/estimates/project-estimate.store"; export const useProjectEstimates = (): IProjectEstimateStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/index.ts b/apps/web/core/hooks/store/index.ts deleted file mode 100644 index ddd8735b4..000000000 --- a/apps/web/core/hooks/store/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -export * from "./estimates"; -export * from "./notifications"; -export * from "./use-app-theme"; -export * from "./use-calendar-view"; -export * from "./use-command-palette"; -export * from "./use-cycle"; -export * from "./use-cycle-filter"; -export * from "./use-dashboard"; -export * from "./use-editor-asset"; -export * from "./use-global-view"; -export * from "./use-inbox-issues"; -export * from "./use-instance"; -export * from "./use-issue-detail"; -export * from "./use-issues"; -export * from "./use-kanban-view"; -export * from "./use-label"; -export * from "./use-member"; -export * from "./use-module"; -export * from "./use-module-filter"; -export * from "./use-multiple-select-store"; -export * from "./use-project"; -export * from "./use-project-filter"; -export * from "./use-project-inbox"; -export * from "./use-project-publish"; -export * from "./use-project-state"; -export * from "./use-project-view"; -export * from "./use-router-params"; -export * from "./use-webhook"; -export * from "./use-workspace"; -export * from "./user"; -export * from "./use-transient"; -export * from "./workspace-draft"; -export * from "./use-analytics"; diff --git a/apps/web/core/hooks/store/notifications/use-notification.ts b/apps/web/core/hooks/store/notifications/use-notification.ts index 9df87dd5c..2086b05c9 100644 --- a/apps/web/core/hooks/store/notifications/use-notification.ts +++ b/apps/web/core/hooks/store/notifications/use-notification.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // mobx store -import { INotification } from "@/store/notifications/notification"; +import type { INotification } from "@/store/notifications/notification"; export const useNotification = (notificationId: string | undefined): INotification => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/notifications/use-workspace-notifications.ts b/apps/web/core/hooks/store/notifications/use-workspace-notifications.ts index f882d6716..3dcdf46e5 100644 --- a/apps/web/core/hooks/store/notifications/use-workspace-notifications.ts +++ b/apps/web/core/hooks/store/notifications/use-workspace-notifications.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // context import { StoreContext } from "@/lib/store-context"; // mobx store -import { IWorkspaceNotificationStore } from "@/store/notifications/workspace-notifications.store"; +import type { IWorkspaceNotificationStore } from "@/store/notifications/workspace-notifications.store"; export const useWorkspaceNotifications = (): IWorkspaceNotificationStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-analytics.ts b/apps/web/core/hooks/store/use-analytics.ts index a07af60ed..e0494567a 100644 --- a/apps/web/core/hooks/store/use-analytics.ts +++ b/apps/web/core/hooks/store/use-analytics.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IAnalyticsStore } from "@/plane-web/store/analytics.store"; +import type { IAnalyticsStore } from "@/plane-web/store/analytics.store"; export const useAnalytics = (): IAnalyticsStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-app-theme.ts b/apps/web/core/hooks/store/use-app-theme.ts index 0a1406a39..f10e89fc2 100644 --- a/apps/web/core/hooks/store/use-app-theme.ts +++ b/apps/web/core/hooks/store/use-app-theme.ts @@ -1,7 +1,7 @@ import { useContext } from "react"; // store import { StoreContext } from "@/lib/store-context"; -import { IThemeStore } from "@/store/theme.store"; +import type { IThemeStore } from "@/store/theme.store"; export const useAppTheme = (): IThemeStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-calendar-view.ts b/apps/web/core/hooks/store/use-calendar-view.ts index 30456b3cc..da3433fa3 100644 --- a/apps/web/core/hooks/store/use-calendar-view.ts +++ b/apps/web/core/hooks/store/use-calendar-view.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { ICalendarStore } from "@/store/issue/issue_calendar_view.store"; +import type { ICalendarStore } from "@/store/issue/issue_calendar_view.store"; export const useCalendarView = (): ICalendarStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-command-palette.ts b/apps/web/core/hooks/store/use-command-palette.ts index cdf6a09ec..26d58485c 100644 --- a/apps/web/core/hooks/store/use-command-palette.ts +++ b/apps/web/core/hooks/store/use-command-palette.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { ICommandPaletteStore } from "@/plane-web/store/command-palette.store"; +import type { ICommandPaletteStore } from "@/plane-web/store/command-palette.store"; export const useCommandPalette = (): ICommandPaletteStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-cycle-filter.ts b/apps/web/core/hooks/store/use-cycle-filter.ts index 652b75b94..14754d257 100644 --- a/apps/web/core/hooks/store/use-cycle-filter.ts +++ b/apps/web/core/hooks/store/use-cycle-filter.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { ICycleFilterStore } from "@/store/cycle_filter.store"; +import type { ICycleFilterStore } from "@/store/cycle_filter.store"; export const useCycleFilter = (): ICycleFilterStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-cycle.ts b/apps/web/core/hooks/store/use-cycle.ts index 08a6daa02..5893d7593 100644 --- a/apps/web/core/hooks/store/use-cycle.ts +++ b/apps/web/core/hooks/store/use-cycle.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { ICycleStore } from "@/plane-web/store/cycle"; +import type { ICycleStore } from "@/plane-web/store/cycle"; export const useCycle = (): ICycleStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-dashboard.ts b/apps/web/core/hooks/store/use-dashboard.ts index 6a9057863..9b43f54c1 100644 --- a/apps/web/core/hooks/store/use-dashboard.ts +++ b/apps/web/core/hooks/store/use-dashboard.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IDashboardStore } from "@/store/dashboard.store"; +import type { IDashboardStore } from "@/store/dashboard.store"; export const useDashboard = (): IDashboardStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-editor-asset.ts b/apps/web/core/hooks/store/use-editor-asset.ts index 7c5af3696..08c9b74dd 100644 --- a/apps/web/core/hooks/store/use-editor-asset.ts +++ b/apps/web/core/hooks/store/use-editor-asset.ts @@ -1,7 +1,7 @@ import { useContext } from "react"; // store import { StoreContext } from "@/lib/store-context"; -import { IEditorAssetStore } from "@/store/editor/asset.store"; +import type { IEditorAssetStore } from "@/store/editor/asset.store"; export const useEditorAsset = (): IEditorAssetStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-favorite.ts b/apps/web/core/hooks/store/use-favorite.ts index 6a677520f..6c21a5560 100644 --- a/apps/web/core/hooks/store/use-favorite.ts +++ b/apps/web/core/hooks/store/use-favorite.ts @@ -1,7 +1,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; -import { IFavoriteStore } from "@/store/favorite.store"; +import type { IFavoriteStore } from "@/store/favorite.store"; export const useFavorite = (): IFavoriteStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-global-view.ts b/apps/web/core/hooks/store/use-global-view.ts index ea1e70c41..04e279cbb 100644 --- a/apps/web/core/hooks/store/use-global-view.ts +++ b/apps/web/core/hooks/store/use-global-view.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IGlobalViewStore } from "@/store/global-view.store"; +import type { IGlobalViewStore } from "@/store/global-view.store"; export const useGlobalView = (): IGlobalViewStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-home.ts b/apps/web/core/hooks/store/use-home.ts index 9ada6ddbd..40d701ee0 100644 --- a/apps/web/core/hooks/store/use-home.ts +++ b/apps/web/core/hooks/store/use-home.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IHomeStore } from "@/store/workspace/home"; +import type { IHomeStore } from "@/store/workspace/home"; export const useHome = (): IHomeStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-inbox-issues.ts b/apps/web/core/hooks/store/use-inbox-issues.ts index ed7d076ff..6c46e8ab8 100644 --- a/apps/web/core/hooks/store/use-inbox-issues.ts +++ b/apps/web/core/hooks/store/use-inbox-issues.ts @@ -1,7 +1,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; -import { IInboxIssueStore } from "@/store/inbox/inbox-issue.store"; +import type { IInboxIssueStore } from "@/store/inbox/inbox-issue.store"; export const useInboxIssues = (inboxIssueId: string): IInboxIssueStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-instance.ts b/apps/web/core/hooks/store/use-instance.ts index 92165e2bb..de66b1015 100644 --- a/apps/web/core/hooks/store/use-instance.ts +++ b/apps/web/core/hooks/store/use-instance.ts @@ -1,7 +1,7 @@ import { useContext } from "react"; // store import { StoreContext } from "@/lib/store-context"; -import { IInstanceStore } from "@/store/instance.store"; +import type { IInstanceStore } from "@/store/instance.store"; export const useInstance = (): IInstanceStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-issue-detail.ts b/apps/web/core/hooks/store/use-issue-detail.ts index 8aabdb92a..db7a57413 100644 --- a/apps/web/core/hooks/store/use-issue-detail.ts +++ b/apps/web/core/hooks/store/use-issue-detail.ts @@ -3,7 +3,7 @@ import { EIssueServiceType, TIssueServiceType } from "@plane/types"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IIssueDetail } from "@/plane-web/store/issue/issue-details/root.store"; +import type { IIssueDetail } from "@/plane-web/store/issue/issue-details/root.store"; export const useIssueDetail = (serviceType: TIssueServiceType = EIssueServiceType.ISSUES): IIssueDetail => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-issues.ts b/apps/web/core/hooks/store/use-issues.ts index 6c99a5f11..5ac116f9c 100644 --- a/apps/web/core/hooks/store/use-issues.ts +++ b/apps/web/core/hooks/store/use-issues.ts @@ -5,19 +5,19 @@ import { StoreContext } from "@/lib/store-context"; // plane web types import { IProjectEpics, IProjectEpicsFilter } from "@/plane-web/store/issue/epic"; // types -import { ITeamIssues, ITeamIssuesFilter } from "@/plane-web/store/issue/team"; -import { ITeamProjectWorkItemsFilter, ITeamProjectWorkItems } from "@/plane-web/store/issue/team-project"; -import { ITeamViewIssues, ITeamViewIssuesFilter } from "@/plane-web/store/issue/team-views"; -import { IWorkspaceIssues } from "@/plane-web/store/issue/workspace/issue.store"; -import { IArchivedIssues, IArchivedIssuesFilter } from "@/store/issue/archived"; -import { ICycleIssues, ICycleIssuesFilter } from "@/store/issue/cycle"; -import { IDraftIssues, IDraftIssuesFilter } from "@/store/issue/draft"; -import { IModuleIssues, IModuleIssuesFilter } from "@/store/issue/module"; -import { IProfileIssues, IProfileIssuesFilter } from "@/store/issue/profile"; -import { IProjectIssues, IProjectIssuesFilter } from "@/store/issue/project"; -import { IProjectViewIssues, IProjectViewIssuesFilter } from "@/store/issue/project-views"; -import { IWorkspaceIssuesFilter } from "@/store/issue/workspace"; -import { IWorkspaceDraftIssues, IWorkspaceDraftIssuesFilter } from "@/store/issue/workspace-draft"; +import type { ITeamIssues, ITeamIssuesFilter } from "@/plane-web/store/issue/team"; +import type { ITeamProjectWorkItemsFilter, ITeamProjectWorkItems } from "@/plane-web/store/issue/team-project"; +import type { ITeamViewIssues, ITeamViewIssuesFilter } from "@/plane-web/store/issue/team-views"; +import type { IWorkspaceIssues } from "@/plane-web/store/issue/workspace/issue.store"; +import type { IArchivedIssues, IArchivedIssuesFilter } from "@/store/issue/archived"; +import type { ICycleIssues, ICycleIssuesFilter } from "@/store/issue/cycle"; +import type { IDraftIssues, IDraftIssuesFilter } from "@/store/issue/draft"; +import type { IModuleIssues, IModuleIssuesFilter } from "@/store/issue/module"; +import type { IProfileIssues, IProfileIssuesFilter } from "@/store/issue/profile"; +import type { IProjectIssues, IProjectIssuesFilter } from "@/store/issue/project"; +import type { IProjectViewIssues, IProjectViewIssuesFilter } from "@/store/issue/project-views"; +import type { IWorkspaceIssuesFilter } from "@/store/issue/workspace"; +import type { IWorkspaceDraftIssues, IWorkspaceDraftIssuesFilter } from "@/store/issue/workspace-draft"; // constants type defaultIssueStore = { diff --git a/apps/web/core/hooks/store/use-kanban-view.ts b/apps/web/core/hooks/store/use-kanban-view.ts index ef14d8c5c..cf217a1e6 100644 --- a/apps/web/core/hooks/store/use-kanban-view.ts +++ b/apps/web/core/hooks/store/use-kanban-view.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IIssueKanBanViewStore } from "@/store/issue/issue_kanban_view.store"; +import type { IIssueKanBanViewStore } from "@/store/issue/issue_kanban_view.store"; export const useKanbanView = (): IIssueKanBanViewStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-label.ts b/apps/web/core/hooks/store/use-label.ts index b20de1abb..d0412c5eb 100644 --- a/apps/web/core/hooks/store/use-label.ts +++ b/apps/web/core/hooks/store/use-label.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { ILabelStore } from "@/store/label.store"; +import type { ILabelStore } from "@/store/label.store"; export const useLabel = (): ILabelStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-member.ts b/apps/web/core/hooks/store/use-member.ts index a5a93926d..bf093e960 100644 --- a/apps/web/core/hooks/store/use-member.ts +++ b/apps/web/core/hooks/store/use-member.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types; -import { IMemberRootStore } from "@/store/member"; +import type { IMemberRootStore } from "@/store/member"; export const useMember = (): IMemberRootStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-module-filter.ts b/apps/web/core/hooks/store/use-module-filter.ts index 964a66300..a9ec42605 100644 --- a/apps/web/core/hooks/store/use-module-filter.ts +++ b/apps/web/core/hooks/store/use-module-filter.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IModuleFilterStore } from "@/store/module_filter.store"; +import type { IModuleFilterStore } from "@/store/module_filter.store"; export const useModuleFilter = (): IModuleFilterStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-module.ts b/apps/web/core/hooks/store/use-module.ts index 93d1f078a..cf07f4b0f 100644 --- a/apps/web/core/hooks/store/use-module.ts +++ b/apps/web/core/hooks/store/use-module.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IModuleStore } from "@/store/module.store"; +import type { IModuleStore } from "@/store/module.store"; export const useModule = (): IModuleStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-project-filter.ts b/apps/web/core/hooks/store/use-project-filter.ts index afe852ee2..0c52ce423 100644 --- a/apps/web/core/hooks/store/use-project-filter.ts +++ b/apps/web/core/hooks/store/use-project-filter.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IProjectFilterStore } from "@/store/project/project_filter.store"; +import type { IProjectFilterStore } from "@/store/project/project_filter.store"; export const useProjectFilter = (): IProjectFilterStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-project-inbox.ts b/apps/web/core/hooks/store/use-project-inbox.ts index cdbff2533..d36af8171 100644 --- a/apps/web/core/hooks/store/use-project-inbox.ts +++ b/apps/web/core/hooks/store/use-project-inbox.ts @@ -1,7 +1,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; -import { IProjectInboxStore } from "@/plane-web/store/project-inbox.store"; +import type { IProjectInboxStore } from "@/plane-web/store/project-inbox.store"; export const useProjectInbox = (): IProjectInboxStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-project-publish.ts b/apps/web/core/hooks/store/use-project-publish.ts index 9fd14c94b..76ce87984 100644 --- a/apps/web/core/hooks/store/use-project-publish.ts +++ b/apps/web/core/hooks/store/use-project-publish.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IProjectPublishStore } from "@/store/project/project-publish.store"; +import type { IProjectPublishStore } from "@/store/project/project-publish.store"; export const useProjectPublish = (): IProjectPublishStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-project-state.ts b/apps/web/core/hooks/store/use-project-state.ts index e7f735465..106b1c3be 100644 --- a/apps/web/core/hooks/store/use-project-state.ts +++ b/apps/web/core/hooks/store/use-project-state.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // Plane-web -import { IStateStore } from "@/plane-web/store/state.store"; +import type { IStateStore } from "@/plane-web/store/state.store"; export const useProjectState = (): IStateStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-project-view.ts b/apps/web/core/hooks/store/use-project-view.ts index b8a85a5fc..493c81641 100644 --- a/apps/web/core/hooks/store/use-project-view.ts +++ b/apps/web/core/hooks/store/use-project-view.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IProjectViewStore } from "@/store/project-view.store"; +import type { IProjectViewStore } from "@/store/project-view.store"; export const useProjectView = (): IProjectViewStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-project.ts b/apps/web/core/hooks/store/use-project.ts index ca592ecbf..1ee2d7bf6 100644 --- a/apps/web/core/hooks/store/use-project.ts +++ b/apps/web/core/hooks/store/use-project.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IProjectStore } from "@/store/project/project.store"; +import type { IProjectStore } from "@/store/project/project.store"; export const useProject = (): IProjectStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-router-params.ts b/apps/web/core/hooks/store/use-router-params.ts index 062134ace..2e420c4bb 100644 --- a/apps/web/core/hooks/store/use-router-params.ts +++ b/apps/web/core/hooks/store/use-router-params.ts @@ -1,7 +1,7 @@ import { useContext } from "react"; // store import { StoreContext } from "@/lib/store-context"; -import { IRouterStore } from "@/store/router.store"; +import type { IRouterStore } from "@/store/router.store"; export const useRouterParams = (): IRouterStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-transient.ts b/apps/web/core/hooks/store/use-transient.ts index 4bca56be9..a269ee5df 100644 --- a/apps/web/core/hooks/store/use-transient.ts +++ b/apps/web/core/hooks/store/use-transient.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { ITransientStore } from "@/store/transient.store"; +import type { ITransientStore } from "@/store/transient.store"; export const useTransient = (): ITransientStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-webhook.ts b/apps/web/core/hooks/store/use-webhook.ts index 5cf6b4455..3c2e40e8c 100644 --- a/apps/web/core/hooks/store/use-webhook.ts +++ b/apps/web/core/hooks/store/use-webhook.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IWebhookStore } from "@/store/workspace/webhook.store"; +import type { IWebhookStore } from "@/store/workspace/webhook.store"; export const useWebhook = (): IWebhookStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/use-workspace.ts b/apps/web/core/hooks/store/use-workspace.ts index 8d422a343..4b77c98b8 100644 --- a/apps/web/core/hooks/store/use-workspace.ts +++ b/apps/web/core/hooks/store/use-workspace.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IWorkspaceRootStore } from "@/store/workspace"; +import type { IWorkspaceRootStore } from "@/store/workspace"; export const useWorkspace = (): IWorkspaceRootStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/user/user-permissions.ts b/apps/web/core/hooks/store/user/user-permissions.ts index 12be98135..ce698a9f9 100644 --- a/apps/web/core/hooks/store/user/user-permissions.ts +++ b/apps/web/core/hooks/store/user/user-permissions.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // plane web imports -import { IUserPermissionStore } from "@/plane-web/store/user/permission.store"; +import type { IUserPermissionStore } from "@/plane-web/store/user/permission.store"; export const useUserPermissions = (): IUserPermissionStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/user/user-user-profile.ts b/apps/web/core/hooks/store/user/user-user-profile.ts index d56378c78..c9937cd90 100644 --- a/apps/web/core/hooks/store/user/user-user-profile.ts +++ b/apps/web/core/hooks/store/user/user-user-profile.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IUserProfileStore } from "@/store/user/profile.store"; +import type { IUserProfileStore } from "@/store/user/profile.store"; export const useUserProfile = (): IUserProfileStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/user/user-user-settings.ts b/apps/web/core/hooks/store/user/user-user-settings.ts index 103188e11..85d5fa017 100644 --- a/apps/web/core/hooks/store/user/user-user-settings.ts +++ b/apps/web/core/hooks/store/user/user-user-settings.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IUserSettingsStore } from "@/store/user/settings.store"; +import type { IUserSettingsStore } from "@/store/user/settings.store"; export const useUserSettings = (): IUserSettingsStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/user/user-user.ts b/apps/web/core/hooks/store/user/user-user.ts index 7f3f52c24..e2261e0b1 100644 --- a/apps/web/core/hooks/store/user/user-user.ts +++ b/apps/web/core/hooks/store/user/user-user.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IUserStore } from "@/store/user"; +import type { IUserStore } from "@/store/user"; export const useUser = (): IUserStore => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue-filters.ts b/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue-filters.ts index 8898b38a8..b0fc6639b 100644 --- a/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue-filters.ts +++ b/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue-filters.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IWorkspaceDraftIssues } from "@/store/issue/workspace-draft"; +import type { IWorkspaceDraftIssues } from "@/store/issue/workspace-draft"; export const useWorkspaceDraftIssueFilters = (): IWorkspaceDraftIssues => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue.ts b/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue.ts index 095c1e00e..a6301f400 100644 --- a/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue.ts +++ b/apps/web/core/hooks/store/workspace-draft/use-workspace-draft-issue.ts @@ -2,7 +2,7 @@ import { useContext } from "react"; // mobx store import { StoreContext } from "@/lib/store-context"; // types -import { IWorkspaceDraftIssues } from "@/store/issue/workspace-draft"; +import type { IWorkspaceDraftIssues } from "@/store/issue/workspace-draft"; export const useWorkspaceDraftIssues = (): IWorkspaceDraftIssues => { const context = useContext(StoreContext); diff --git a/apps/web/core/hooks/use-collaborative-page-actions.tsx b/apps/web/core/hooks/use-collaborative-page-actions.tsx index 5ef1bfec9..f05000712 100644 --- a/apps/web/core/hooks/use-collaborative-page-actions.tsx +++ b/apps/web/core/hooks/use-collaborative-page-actions.tsx @@ -1,10 +1,10 @@ import { useState, useEffect, useCallback, useMemo } from "react"; -import { EditorRefApi, TDocumentEventsServer } from "@plane/editor"; +import type { EditorRefApi, TDocumentEventsServer } from "@plane/editor"; import { DocumentCollaborativeEvents, TDocumentEventsClient, getServerEventName } from "@plane/editor/lib"; // plane ui import { TOAST_TYPE, setToast } from "@plane/ui"; // store -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // Better type naming and structure type CollaborativeAction = { diff --git a/apps/web/core/hooks/use-favorite-item-details.tsx b/apps/web/core/hooks/use-favorite-item-details.tsx index b9cd11304..0de3d7c88 100644 --- a/apps/web/core/hooks/use-favorite-item-details.tsx +++ b/apps/web/core/hooks/use-favorite-item-details.tsx @@ -8,7 +8,10 @@ import { } from "@/components/workspace/sidebar/favorites/favorite-items/common"; // helpers // hooks -import { useProject, useProjectView, useCycle, useModule } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useProjectView } from "@/hooks/store/use-project-view" +import { useCycle } from "@/hooks/store/use-cycle" +import { useModule } from "@/hooks/store/use-module"; // plane web hooks import { EPageStoreType, usePage } from "@/plane-web/hooks/store"; import { useAdditionalFavoriteItemDetails } from "@/plane-web/hooks/use-additional-favorite-item-details"; diff --git a/apps/web/core/hooks/use-group-dragndrop.ts b/apps/web/core/hooks/use-group-dragndrop.ts index 75aa54b84..fedb07959 100644 --- a/apps/web/core/hooks/use-group-dragndrop.ts +++ b/apps/web/core/hooks/use-group-dragndrop.ts @@ -5,7 +5,8 @@ import { EIssuesStoreType, TIssue, TIssueGroupByOptions, TIssueOrderByOptions } import { TOAST_TYPE, setToast } from "@plane/ui"; import { GroupDropLocation, handleGroupDragDrop } from "@/components/issues/issue-layouts/utils"; import { ISSUE_FILTER_DEFAULT_DATA } from "@/store/issue/helpers/base-issues.store"; -import { useIssueDetail, useIssues } from "./store"; +import { useIssueDetail } from "./store/use-issue-detail"; +import { useIssues } from "./store/use-issues"; import { useIssuesActions } from "./use-issues-actions"; type DNDStoreType = diff --git a/apps/web/core/hooks/use-issue-layout-store.ts b/apps/web/core/hooks/use-issue-layout-store.ts index b2ecb5777..f5a8d35fd 100644 --- a/apps/web/core/hooks/use-issue-layout-store.ts +++ b/apps/web/core/hooks/use-issue-layout-store.ts @@ -1,7 +1,7 @@ import { createContext, useContext } from "react"; import { useParams } from "next/navigation"; import { EIssuesStoreType } from "@plane/types"; -import { useIssues } from "./store"; +import { useIssues } from "./store/use-issues"; export const IssuesStoreContext = createContext(undefined); diff --git a/apps/web/core/hooks/use-issue-peek-overview-redirection.tsx b/apps/web/core/hooks/use-issue-peek-overview-redirection.tsx index 68d7e2332..5da6737e9 100644 --- a/apps/web/core/hooks/use-issue-peek-overview-redirection.tsx +++ b/apps/web/core/hooks/use-issue-peek-overview-redirection.tsx @@ -4,7 +4,8 @@ import { EIssueServiceType, TIssue } from "@plane/types"; // helpers import { generateWorkItemLink } from "@plane/utils"; // hooks -import { useIssueDetail, useProject } from "./store"; +import { useIssueDetail } from "./store/use-issue-detail"; +import { useProject } from "./store/use-project"; const useIssuePeekOverviewRedirection = (isEpic: boolean = false) => { // router diff --git a/apps/web/core/hooks/use-issues-actions.tsx b/apps/web/core/hooks/use-issues-actions.tsx index 2c02d149d..e8c973525 100644 --- a/apps/web/core/hooks/use-issues-actions.tsx +++ b/apps/web/core/hooks/use-issues-actions.tsx @@ -19,7 +19,7 @@ import { useTeamViewIssueActions, useTeamProjectWorkItemsActions, } from "@/plane-web/helpers/issue-action-helper"; -import { useIssues } from "./store"; +import { useIssues } from "./store/use-issues"; export interface IssueActions { fetchIssues: ( diff --git a/apps/web/core/hooks/use-multiple-select.ts b/apps/web/core/hooks/use-multiple-select.ts index 1e997bbfe..60130bcb6 100644 --- a/apps/web/core/hooks/use-multiple-select.ts +++ b/apps/web/core/hooks/use-multiple-select.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo } from "react"; // hooks -import { useMultipleSelectStore } from "@/hooks/store"; +import { useMultipleSelectStore } from "@/hooks/store/use-multiple-select-store"; // import useReloadConfirmations from "./use-reload-confirmation"; diff --git a/apps/web/core/hooks/use-page-fallback.ts b/apps/web/core/hooks/use-page-fallback.ts index 52b54fe50..98aa1f66c 100644 --- a/apps/web/core/hooks/use-page-fallback.ts +++ b/apps/web/core/hooks/use-page-fallback.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect } from "react"; // plane editor -import { EditorRefApi, getBinaryDataFromDocumentEditorHTMLString } from "@plane/editor"; +import { type EditorRefApi, getBinaryDataFromDocumentEditorHTMLString } from "@plane/editor"; // plane types import { TDocumentPayload } from "@plane/types"; // hooks diff --git a/apps/web/core/hooks/use-page-filters.ts b/apps/web/core/hooks/use-page-filters.ts index 448c58977..b290253a8 100644 --- a/apps/web/core/hooks/use-page-filters.ts +++ b/apps/web/core/hooks/use-page-filters.ts @@ -1,6 +1,6 @@ import { useCallback, useMemo } from "react"; // plane editor -import { TEditorFontSize, TEditorFontStyle } from "@plane/editor"; +import type { TEditorFontSize, TEditorFontStyle } from "@plane/editor"; // hooks import useLocalStorage from "@/hooks/use-local-storage"; diff --git a/apps/web/core/hooks/use-page-operations.ts b/apps/web/core/hooks/use-page-operations.ts index f3c635748..05cfa3cec 100644 --- a/apps/web/core/hooks/use-page-operations.ts +++ b/apps/web/core/hooks/use-page-operations.ts @@ -1,7 +1,7 @@ import { useMemo } from "react"; // plane imports import { IS_FAVORITE_MENU_OPEN, PROJECT_PAGE_TRACKER_EVENTS } from "@plane/constants"; -import { EditorRefApi } from "@plane/editor"; +import type { EditorRefApi } from "@plane/editor"; import { EPageAccess } from "@plane/types"; import { setToast, TOAST_TYPE } from "@plane/ui"; import { copyUrlToClipboard } from "@plane/utils"; @@ -10,7 +10,7 @@ import { captureSuccess, captureError } from "@/helpers/event-tracker.helper"; // hooks import { useCollaborativePageActions } from "@/hooks/use-collaborative-page-actions"; // store types -import { TPageInstance } from "@/store/pages/base-page"; +import type { TPageInstance } from "@/store/pages/base-page"; // local storage import useLocalStorage from "./use-local-storage"; diff --git a/apps/web/core/hooks/use-parse-editor-content.ts b/apps/web/core/hooks/use-parse-editor-content.ts index 8e4f3ba97..d362a2709 100644 --- a/apps/web/core/hooks/use-parse-editor-content.ts +++ b/apps/web/core/hooks/use-parse-editor-content.ts @@ -5,7 +5,7 @@ import { TSearchEntities } from "@plane/types"; // helpers import { getBase64Image } from "@plane/utils"; // hooks -import { useMember } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member"; // plane web hooks import { useAdditionalEditorMention } from "@/plane-web/hooks/use-additional-editor-mention"; diff --git a/apps/web/core/hooks/use-project-issue-properties.ts b/apps/web/core/hooks/use-project-issue-properties.ts index e06e745c3..f11bc18e9 100644 --- a/apps/web/core/hooks/use-project-issue-properties.ts +++ b/apps/web/core/hooks/use-project-issue-properties.ts @@ -1,4 +1,9 @@ -import { useCycle, useProjectEstimates, useLabel, useMember, useModule, useProjectState } from "./store"; +import { useCycle } from "./store/use-cycle"; +import { useProjectEstimates } from "./store/estimates"; +import { useLabel } from "./store/use-label"; +import { useMember } from "./store/use-member"; +import { useModule } from "./store/use-module"; +import { useProjectState } from "./store/use-project-state"; export const useProjectIssueProperties = () => { const { fetchProjectStates } = useProjectState(); diff --git a/apps/web/core/hooks/use-timezone-converter.tsx b/apps/web/core/hooks/use-timezone-converter.tsx index 97646a339..3b7a9aecb 100644 --- a/apps/web/core/hooks/use-timezone-converter.tsx +++ b/apps/web/core/hooks/use-timezone-converter.tsx @@ -1,6 +1,7 @@ import { useCallback } from "react"; import { format } from "date-fns"; -import { useProject, useUser } from "@/hooks/store"; +import { useProject } from "@/hooks/store/use-project" +import { useUser } from "@/hooks/store/user"; export const useTimeZoneConverter = (projectId: string) => { const { data: user } = useUser(); diff --git a/apps/web/core/hooks/use-workspace-issue-properties.ts b/apps/web/core/hooks/use-workspace-issue-properties.ts index 821d7a911..af9b8d7cc 100644 --- a/apps/web/core/hooks/use-workspace-issue-properties.ts +++ b/apps/web/core/hooks/use-workspace-issue-properties.ts @@ -2,7 +2,10 @@ import useSWR from "swr"; // plane web imports import { useWorkspaceIssuePropertiesExtended } from "@/plane-web/hooks/use-workspace-issue-properties-extended"; // plane imports -import { useCycle, useProjectEstimates, useLabel, useModule } from "./store"; +import { useCycle } from "./store/use-cycle"; +import { useProjectEstimates } from "./store/estimates"; +import { useLabel } from "./store/use-label"; +import { useModule } from "./store/use-module"; export const useWorkspaceIssueProperties = (workspaceSlug: string | string[] | undefined) => { const { fetchWorkspaceLabels } = useLabel(); diff --git a/apps/web/core/layouts/auth-layout/index.ts b/apps/web/core/layouts/auth-layout/index.ts deleted file mode 100644 index 241c7bcb9..000000000 --- a/apps/web/core/layouts/auth-layout/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./workspace-wrapper"; -export * from "./project-wrapper"; diff --git a/apps/web/core/layouts/auth-layout/project-wrapper.tsx b/apps/web/core/layouts/auth-layout/project-wrapper.tsx index 0bee5655c..34964b8fa 100644 --- a/apps/web/core/layouts/auth-layout/project-wrapper.tsx +++ b/apps/web/core/layouts/auth-layout/project-wrapper.tsx @@ -8,24 +8,23 @@ import { EUserPermissions, EUserPermissionsLevel, PROJECT_TRACKER_ELEMENTS } fro import { useTranslation } from "@plane/i18n"; import { EProjectNetwork } from "@plane/types"; // components -import { JoinProject } from "@/components/auth-screens"; -import { LogoSpinner } from "@/components/common"; -import { ComicBoxButton, DetailedEmptyState } from "@/components/empty-state"; +import { JoinProject } from "@/components/auth-screens/project/join-project"; +import { LogoSpinner } from "@/components/common/logo-spinner"; +import { ComicBoxButton } from "@/components/empty-state/comic-box-button"; +import { DetailedEmptyState } from "@/components/empty-state/detailed-empty-state-root"; import { ETimeLineTypeType } from "@/components/gantt-chart/contexts"; import { captureClick } from "@/helpers/event-tracker.helper"; // hooks -import { - useCommandPalette, - useCycle, - useLabel, - useMember, - useModule, - useProject, - useProjectEstimates, - useProjectState, - useProjectView, - useUserPermissions, -} from "@/hooks/store"; +import { useCommandPalette } from "@/hooks/store/use-command-palette"; +import { useCycle } from "@/hooks/store/use-cycle"; +import { useLabel } from "@/hooks/store/use-label"; +import { useMember } from "@/hooks/store/use-member"; +import { useModule } from "@/hooks/store/use-module"; +import { useProject } from "@/hooks/store/use-project"; +import { useProjectEstimates } from "@/hooks/store/estimates"; +import { useProjectState } from "@/hooks/store/use-project-state"; +import { useProjectView } from "@/hooks/store/use-project-view"; +import { useUserPermissions } from "@/hooks/store/user"; import { useResolvedAssetPath } from "@/hooks/use-resolved-asset-path"; import { useTimeLineChart } from "@/hooks/use-timeline-chart"; // local diff --git a/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx b/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx index 42d7d4654..3a4f352d0 100644 --- a/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx +++ b/apps/web/core/layouts/auth-layout/workspace-wrapper.tsx @@ -14,9 +14,13 @@ import { EUserPermissions, EUserPermissionsLevel } from "@plane/constants"; import { Button, getButtonStyling, PlaneLogo, setToast, TOAST_TYPE, Tooltip } from "@plane/ui"; // components import { cn } from "@plane/utils"; -import { LogoSpinner } from "@/components/common"; +import { LogoSpinner } from "@/components/common/logo-spinner"; // hooks -import { useMember, useProject, useProjectState, useUser, useUserPermissions, useWorkspace } from "@/hooks/store"; +import { useMember } from "@/hooks/store/use-member" +import { useProject } from "@/hooks/store/use-project" +import { useProjectState } from "@/hooks/store/use-project-state" +import { useUser, useUserPermissions } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; import { useFavorite } from "@/hooks/store/use-favorite"; import { usePlatformOS } from "@/hooks/use-platform-os"; // local diff --git a/apps/web/core/lib/intercom-provider.tsx b/apps/web/core/lib/intercom-provider.tsx index b483c6da2..2a1fede0a 100644 --- a/apps/web/core/lib/intercom-provider.tsx +++ b/apps/web/core/lib/intercom-provider.tsx @@ -4,7 +4,9 @@ import React, { FC, useEffect } from "react"; import { Intercom, show, hide, onHide } from "@intercom/messenger-js-sdk"; import { observer } from "mobx-react"; // store hooks -import { useUser, useInstance, useTransient } from "@/hooks/store"; +import { useUser } from "@/hooks/store/user" +import { useInstance } from "@/hooks/store/use-instance" +import { useTransient } from "@/hooks/store/use-transient"; export type IntercomProviderProps = { children: React.ReactNode; diff --git a/apps/web/core/lib/posthog-provider.tsx b/apps/web/core/lib/posthog-provider.tsx index 773b1e673..669b3c5b9 100644 --- a/apps/web/core/lib/posthog-provider.tsx +++ b/apps/web/core/lib/posthog-provider.tsx @@ -12,7 +12,9 @@ import { GROUP_WORKSPACE_TRACKER_EVENT } from "@plane/constants"; import { getUserRole } from "@plane/utils"; // hooks import { captureClick, joinEventGroup } from "@/helpers/event-tracker.helper"; -import { useWorkspace, useUser, useInstance, useUserPermissions } from "@/hooks/store"; +import { useWorkspace } from "@/hooks/store/use-workspace" +import { useUser, useUserPermissions } from "@/hooks/store/user" +import { useInstance } from "@/hooks/store/use-instance"; // dynamic imports const PostHogPageView = dynamic(() => import("@/lib/posthog-view"), { ssr: false }); diff --git a/apps/web/core/lib/wrappers/authentication-wrapper.tsx b/apps/web/core/lib/wrappers/authentication-wrapper.tsx index 3c235adc7..c59286d5a 100644 --- a/apps/web/core/lib/wrappers/authentication-wrapper.tsx +++ b/apps/web/core/lib/wrappers/authentication-wrapper.tsx @@ -5,11 +5,12 @@ import { observer } from "mobx-react"; import { useSearchParams, usePathname } from "next/navigation"; import useSWR from "swr"; // components -import { LogoSpinner } from "@/components/common"; +import { LogoSpinner } from "@/components/common/logo-spinner"; // helpers import { EPageTypes } from "@/helpers/authentication.helper"; // hooks -import { useUser, useUserProfile, useUserSettings, useWorkspace } from "@/hooks/store"; +import { useUser, useUserProfile, useUserSettings } from "@/hooks/store/user" +import { useWorkspace } from "@/hooks/store/use-workspace"; import { useAppRouter } from "@/hooks/use-app-router"; type TPageType = EPageTypes; diff --git a/apps/web/core/lib/wrappers/index.ts b/apps/web/core/lib/wrappers/index.ts deleted file mode 100644 index 6dfc75b23..000000000 --- a/apps/web/core/lib/wrappers/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./instance-wrapper"; -export * from "./authentication-wrapper"; diff --git a/apps/web/core/lib/wrappers/instance-wrapper.tsx b/apps/web/core/lib/wrappers/instance-wrapper.tsx index 5379973e5..10df831fa 100644 --- a/apps/web/core/lib/wrappers/instance-wrapper.tsx +++ b/apps/web/core/lib/wrappers/instance-wrapper.tsx @@ -2,10 +2,10 @@ import { FC, ReactNode } from "react"; import { observer } from "mobx-react"; import useSWR from "swr"; // components -import { LogoSpinner } from "@/components/common"; +import { LogoSpinner } from "@/components/common/logo-spinner"; import { InstanceNotReady, MaintenanceView } from "@/components/instance"; // hooks -import { useInstance } from "@/hooks/store"; +import { useInstance } from "@/hooks/store/use-instance"; type TInstanceWrapper = { children: ReactNode; diff --git a/apps/web/core/lib/wrappers/store-wrapper.tsx b/apps/web/core/lib/wrappers/store-wrapper.tsx index a665199bb..f1ffbd363 100644 --- a/apps/web/core/lib/wrappers/store-wrapper.tsx +++ b/apps/web/core/lib/wrappers/store-wrapper.tsx @@ -6,7 +6,9 @@ import { useTranslation, TLanguage } from "@plane/i18n"; // helpers import { applyTheme, unsetCustomCssVariables } from "@plane/utils"; // hooks -import { useRouterParams, useAppTheme, useUserProfile } from "@/hooks/store"; +import { useAppTheme } from "@/hooks/store/use-app-theme"; +import { useRouterParams } from "@/hooks/store/use-router-params"; +import { useUserProfile } from "@/hooks/store/user"; type TStoreWrapper = { children: ReactNode; diff --git a/apps/web/core/store/cycle.store.ts b/apps/web/core/store/cycle.store.ts index c23af6850..3c86b16ce 100644 --- a/apps/web/core/store/cycle.store.ts +++ b/apps/web/core/store/cycle.store.ts @@ -22,7 +22,7 @@ import { CycleArchiveService } from "@/services/cycle_archive.service"; import { IssueService } from "@/services/issue"; import { ProjectService } from "@/services/project"; // store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface ICycleStore { // loaders diff --git a/apps/web/core/store/cycle_filter.store.ts b/apps/web/core/store/cycle_filter.store.ts index 070ab3b19..33b284b7a 100644 --- a/apps/web/core/store/cycle_filter.store.ts +++ b/apps/web/core/store/cycle_filter.store.ts @@ -4,7 +4,7 @@ import { computedFn } from "mobx-utils"; // types import { TCycleDisplayFilters, TCycleFilters, TCycleFiltersByState } from "@plane/types"; // store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface ICycleFilterStore { // observables diff --git a/apps/web/core/store/dashboard.store.ts b/apps/web/core/store/dashboard.store.ts index 9bdaadf4b..171cdcbac 100644 --- a/apps/web/core/store/dashboard.store.ts +++ b/apps/web/core/store/dashboard.store.ts @@ -2,7 +2,7 @@ import set from "lodash/set"; import { action, computed, makeObservable, observable, runInAction } from "mobx"; import { computedFn } from "mobx-utils"; // types -import { +import type { THomeDashboardResponse, TWidget, TWidgetFiltersFormData, @@ -13,7 +13,7 @@ import { // services import { DashboardService } from "@/services/dashboard.service"; // plane web store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface IDashboardStore { // error states diff --git a/apps/web/core/store/estimates/estimate-point.ts b/apps/web/core/store/estimates/estimate-point.ts index e956770c0..9f6d42f82 100644 --- a/apps/web/core/store/estimates/estimate-point.ts +++ b/apps/web/core/store/estimates/estimate-point.ts @@ -7,7 +7,7 @@ import { IEstimate, IEstimatePoint as IEstimatePointType } from "@plane/types"; // plane web services import estimateService from "@/plane-web/services/project/estimate.service"; // store -import { CoreRootStore } from "@/store/root.store"; +import type { CoreRootStore } from "@/store/root.store"; type TErrorCodes = { status: string; diff --git a/apps/web/core/store/estimates/project-estimate.store.ts b/apps/web/core/store/estimates/project-estimate.store.ts index c8c3a17aa..f12edf8f2 100644 --- a/apps/web/core/store/estimates/project-estimate.store.ts +++ b/apps/web/core/store/estimates/project-estimate.store.ts @@ -10,7 +10,7 @@ import estimateService from "@/plane-web/services/project/estimate.service"; // plane web store import { IEstimate, Estimate } from "@/plane-web/store/estimates/estimate"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; type TEstimateLoader = "init-loader" | "mutation-loader" | undefined; type TErrorCodes = { diff --git a/apps/web/core/store/favorite.store.ts b/apps/web/core/store/favorite.store.ts index 295dbbc56..9e2409a6d 100644 --- a/apps/web/core/store/favorite.store.ts +++ b/apps/web/core/store/favorite.store.ts @@ -4,7 +4,7 @@ import { action, observable, makeObservable, runInAction, computed } from "mobx" import { v4 as uuidv4 } from "uuid"; import { IFavorite } from "@plane/types"; import { FavoriteService } from "@/services/favorite"; -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface IFavoriteStore { // observables diff --git a/apps/web/core/store/global-view.store.ts b/apps/web/core/store/global-view.store.ts index 76fad2971..aa0503623 100644 --- a/apps/web/core/store/global-view.store.ts +++ b/apps/web/core/store/global-view.store.ts @@ -10,7 +10,7 @@ import { EViewAccess, IIssueFilterOptions, IWorkspaceView } from "@plane/types"; // services import { WorkspaceService } from "@/plane-web/services"; // store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface IGlobalViewStore { // observables diff --git a/apps/web/core/store/inbox/inbox-issue.store.ts b/apps/web/core/store/inbox/inbox-issue.store.ts index e35245223..ff8e5295e 100644 --- a/apps/web/core/store/inbox/inbox-issue.store.ts +++ b/apps/web/core/store/inbox/inbox-issue.store.ts @@ -16,7 +16,7 @@ import { addIssueToPersistanceLayer } from "@/local-db/utils/utils"; import { InboxIssueService } from "@/services/inbox"; import { IssueService } from "@/services/issue"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; export interface IInboxIssueStore { isLoading: boolean; diff --git a/apps/web/core/store/inbox/project-inbox.store.ts b/apps/web/core/store/inbox/project-inbox.store.ts index 0235445f9..f036afe9d 100644 --- a/apps/web/core/store/inbox/project-inbox.store.ts +++ b/apps/web/core/store/inbox/project-inbox.store.ts @@ -22,7 +22,7 @@ import { getCustomDates } from "@plane/utils"; import { InboxIssueService } from "@/services/inbox"; // root store import { IInboxIssueStore, InboxIssueStore } from "@/store/inbox/inbox-issue.store"; -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; type TLoader = | "init-loading" diff --git a/apps/web/core/store/issue/issue-details/relation.store.ts b/apps/web/core/store/issue/issue-details/relation.store.ts index cb446e32c..3763c4bdf 100644 --- a/apps/web/core/store/issue/issue-details/relation.store.ts +++ b/apps/web/core/store/issue/issue-details/relation.store.ts @@ -3,12 +3,12 @@ import set from "lodash/set"; import uniq from "lodash/uniq"; import { action, computed, makeObservable, observable, runInAction } from "mobx"; import { computedFn } from "mobx-utils"; -// Plane +// plane imports import { TIssueRelationIdMap, TIssueRelationMap, TIssueRelation, TIssue } from "@plane/types"; // components -import { TRelationObject } from "@/components/issues"; +import type { TRelationObject } from "@/components/issues/issue-detail-widgets/relations"; // Plane-web -import { REVERSE_RELATIONS } from "@/plane-web/constants"; +import { REVERSE_RELATIONS } from "@/plane-web/constants/gantt-chart"; import { TIssueRelationTypes } from "@/plane-web/types"; // services import { IssueRelationService } from "@/services/issue"; @@ -109,27 +109,23 @@ export class IssueRelationStore implements IIssueRelationStore { // actions fetchRelations = async (workspaceSlug: string, projectId: string, issueId: string) => { - try { - const response = await this.issueRelationService.listIssueRelations(workspaceSlug, projectId, issueId); + const response = await this.issueRelationService.listIssueRelations(workspaceSlug, projectId, issueId); - runInAction(() => { - Object.keys(response).forEach((key) => { - const relation_key = key as TIssueRelationTypes; - const relation_issues = response[relation_key]; - const issues = relation_issues.flat().map((issue) => issue); - if (issues && issues.length > 0) this.rootIssueDetailStore.rootIssueStore.issues.addIssue(issues); - set( - this.relationMap, - [issueId, relation_key], - issues && issues.length > 0 ? issues.map((issue) => issue.id) : [] - ); - }); + runInAction(() => { + Object.keys(response).forEach((key) => { + const relation_key = key as TIssueRelationTypes; + const relation_issues = response[relation_key]; + const issues = relation_issues.flat().map((issue) => issue); + if (issues && issues.length > 0) this.rootIssueDetailStore.rootIssueStore.issues.addIssue(issues); + set( + this.relationMap, + [issueId, relation_key], + issues && issues.length > 0 ? issues.map((issue) => issue.id) : [] + ); }); + }); - return response; - } catch (error) { - throw error; - } + return response; }; createRelation = async ( @@ -139,38 +135,34 @@ export class IssueRelationStore implements IIssueRelationStore { relationType: TIssueRelationTypes, issues: string[] ) => { - try { - const response = await this.issueRelationService.createIssueRelations(workspaceSlug, projectId, issueId, { - relation_type: relationType, - issues, + const response = await this.issueRelationService.createIssueRelations(workspaceSlug, projectId, issueId, { + relation_type: relationType, + issues, + }); + + const reverseRelatedType = REVERSE_RELATIONS[relationType]; + + const issuesOfRelation = get(this.relationMap, [issueId, relationType]) ?? []; + + if (response && response.length > 0) + runInAction(() => { + response.forEach((issue) => { + const issuesOfRelated = get(this.relationMap, [issue.id, reverseRelatedType]); + this.rootIssueDetailStore.rootIssueStore.issues.addIssue([issue]); + issuesOfRelation.push(issue.id); + + if (!issuesOfRelated) { + set(this.relationMap, [issue.id, reverseRelatedType], [issueId]); + } else { + set(this.relationMap, [issue.id, reverseRelatedType], uniq([...issuesOfRelated, issueId])); + } + }); + set(this.relationMap, [issueId, relationType], uniq(issuesOfRelation)); }); - const reverseRelatedType = REVERSE_RELATIONS[relationType]; - - const issuesOfRelation = get(this.relationMap, [issueId, relationType]) ?? []; - - if (response && response.length > 0) - runInAction(() => { - response.forEach((issue) => { - const issuesOfRelated = get(this.relationMap, [issue.id, reverseRelatedType]); - this.rootIssueDetailStore.rootIssueStore.issues.addIssue([issue]); - issuesOfRelation.push(issue.id); - - if (!issuesOfRelated) { - set(this.relationMap, [issue.id, reverseRelatedType], [issueId]); - } else { - set(this.relationMap, [issue.id, reverseRelatedType], uniq([...issuesOfRelated, issueId])); - } - }); - set(this.relationMap, [issueId, relationType], uniq(issuesOfRelation)); - }); - - // fetching activity - this.rootIssueDetailStore.activity.fetchActivities(workspaceSlug, projectId, issueId); - return response; - } catch (error) { - throw error; - } + // fetching activity + this.rootIssueDetailStore.activity.fetchActivities(workspaceSlug, projectId, issueId); + return response; }; /** diff --git a/apps/web/core/store/issue/issue-details/root.store.ts b/apps/web/core/store/issue/issue-details/root.store.ts index 69248ccec..03b9f656d 100644 --- a/apps/web/core/store/issue/issue-details/root.store.ts +++ b/apps/web/core/store/issue/issue-details/root.store.ts @@ -1,6 +1,6 @@ import { action, computed, makeObservable, observable } from "mobx"; // types -import { +import type { TIssue, TIssueAttachment, TIssueComment, @@ -12,27 +12,40 @@ import { } from "@plane/types"; // plane web store import { - IIssueActivityStore, + type IIssueActivityStore, IssueActivityStore, - IIssueActivityStoreActions, - TActivityLoader, + type IIssueActivityStoreActions, + type TActivityLoader, } from "@/plane-web/store/issue/issue-details/activity.store"; -import { RootStore } from "@/plane-web/store/root.store"; -import { TIssueRelationTypes } from "@/plane-web/types"; -import { IIssueRootStore } from "../root.store"; -import { IIssueAttachmentStore, IssueAttachmentStore, IIssueAttachmentStoreActions } from "./attachment.store"; -import { IIssueCommentStore, IssueCommentStore, IIssueCommentStoreActions, TCommentLoader } from "./comment.store"; +import type { RootStore } from "@/plane-web/store/root.store"; +import type { TIssueRelationTypes } from "@/plane-web/types"; +import type { IIssueRootStore } from "../root.store"; import { - IIssueCommentReactionStore, + type IIssueAttachmentStore, + IssueAttachmentStore, + type IIssueAttachmentStoreActions, +} from "./attachment.store"; +import { + type IIssueCommentStore, + IssueCommentStore, + type IIssueCommentStoreActions, + type TCommentLoader, +} from "./comment.store"; +import { + type IIssueCommentReactionStore, IssueCommentReactionStore, - IIssueCommentReactionStoreActions, + type IIssueCommentReactionStoreActions, } from "./comment_reaction.store"; -import { IIssueStore, IssueStore, IIssueStoreActions } from "./issue.store"; -import { IIssueLinkStore, IssueLinkStore, IIssueLinkStoreActions } from "./link.store"; -import { IIssueReactionStore, IssueReactionStore, IIssueReactionStoreActions } from "./reaction.store"; -import { IIssueRelationStore, IssueRelationStore, IIssueRelationStoreActions } from "./relation.store"; -import { IIssueSubIssuesStore, IssueSubIssuesStore, IIssueSubIssuesStoreActions } from "./sub_issues.store"; -import { IIssueSubscriptionStore, IssueSubscriptionStore, IIssueSubscriptionStoreActions } from "./subscription.store"; +import { type IIssueStore, IssueStore, type IIssueStoreActions } from "./issue.store"; +import { type IIssueLinkStore, IssueLinkStore, type IIssueLinkStoreActions } from "./link.store"; +import { type IIssueReactionStore, IssueReactionStore, type IIssueReactionStoreActions } from "./reaction.store"; +import { type IIssueRelationStore, IssueRelationStore, type IIssueRelationStoreActions } from "./relation.store"; +import { type IIssueSubIssuesStore, IssueSubIssuesStore, type IIssueSubIssuesStoreActions } from "./sub_issues.store"; +import { + type IIssueSubscriptionStore, + IssueSubscriptionStore, + type IIssueSubscriptionStoreActions, +} from "./subscription.store"; export type TPeekIssue = { workspaceSlug: string; diff --git a/apps/web/core/store/issue/root.store.ts b/apps/web/core/store/issue/root.store.ts index a43c71472..3dc835f0f 100644 --- a/apps/web/core/store/issue/root.store.ts +++ b/apps/web/core/store/issue/root.store.ts @@ -28,7 +28,7 @@ import { } from "@/plane-web/store/issue/team-views"; // root store import { IWorkspaceIssues, WorkspaceIssues } from "@/plane-web/store/issue/workspace/issue.store"; -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; import { IWorkspaceMembership } from "@/store/member/workspace-member.store"; // issues data store import { IArchivedIssuesFilter, ArchivedIssuesFilter, IArchivedIssues, ArchivedIssues } from "./archived"; diff --git a/apps/web/core/store/label.store.ts b/apps/web/core/store/label.store.ts index 688f0b974..4a719f6a4 100644 --- a/apps/web/core/store/label.store.ts +++ b/apps/web/core/store/label.store.ts @@ -10,7 +10,7 @@ import { buildTree } from "@plane/utils"; import { syncIssuesWithDeletedLabels } from "@/local-db/utils/load-workspace"; import { IssueLabelService } from "@/services/issue"; // store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface ILabelStore { //Loaders diff --git a/apps/web/core/store/member/base-project-member.store.ts b/apps/web/core/store/member/base-project-member.store.ts index d197851b7..bd2c91538 100644 --- a/apps/web/core/store/member/base-project-member.store.ts +++ b/apps/web/core/store/member/base-project-member.store.ts @@ -9,7 +9,7 @@ import { computedFn } from "mobx-utils"; import { EUserPermissions } from "@plane/constants"; import { EUserProjectRoles, IProjectBulkAddFormData, IUserLite, TProjectMembership } from "@plane/types"; // plane web imports -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // services import { ProjectMemberService } from "@/services/project"; // store diff --git a/apps/web/core/store/member/index.ts b/apps/web/core/store/member/index.ts index b8bae30e7..f3536dedf 100644 --- a/apps/web/core/store/member/index.ts +++ b/apps/web/core/store/member/index.ts @@ -4,7 +4,7 @@ import { computedFn } from "mobx-utils"; import { IUserLite } from "@plane/types"; // plane web imports import { IProjectMemberStore, ProjectMemberStore } from "@/plane-web/store/member/project-member.store"; -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // local imports import { IWorkspaceMemberStore, WorkspaceMemberStore } from "./workspace-member.store"; diff --git a/apps/web/core/store/member/workspace-member.store.ts b/apps/web/core/store/member/workspace-member.store.ts index 9ec2b479c..5afa019fc 100644 --- a/apps/web/core/store/member/workspace-member.store.ts +++ b/apps/web/core/store/member/workspace-member.store.ts @@ -4,16 +4,16 @@ import { action, computed, makeObservable, observable, runInAction } from "mobx" import { computedFn } from "mobx-utils"; // types import { EUserPermissions } from "@plane/constants"; -import { IWorkspaceBulkInviteFormData, IWorkspaceMember, IWorkspaceMemberInvitation } from "@plane/types"; +import type { IWorkspaceBulkInviteFormData, IWorkspaceMember, IWorkspaceMemberInvitation } from "@plane/types"; // plane-web constants // services import { WorkspaceService } from "@/plane-web/services"; // types -import { IRouterStore } from "@/store/router.store"; -import { IUserStore } from "@/store/user"; +import type { IRouterStore } from "@/store/router.store"; +import type { IUserStore } from "@/store/user"; // store -import { CoreRootStore } from "../root.store"; -import { IMemberRootStore } from "."; +import type { CoreRootStore } from "../root.store"; +import type { IMemberRootStore } from "."; export interface IWorkspaceMembership { id: string; diff --git a/apps/web/core/store/module.store.ts b/apps/web/core/store/module.store.ts index 5592835cc..11be7ab02 100644 --- a/apps/web/core/store/module.store.ts +++ b/apps/web/core/store/module.store.ts @@ -14,7 +14,7 @@ import { ModuleService } from "@/services/module.service"; import { ModuleArchiveService } from "@/services/module_archive.service"; import { ProjectService } from "@/services/project"; // store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface IModuleStore { //Loaders diff --git a/apps/web/core/store/module_filter.store.ts b/apps/web/core/store/module_filter.store.ts index 5d2b60482..62ac072cb 100644 --- a/apps/web/core/store/module_filter.store.ts +++ b/apps/web/core/store/module_filter.store.ts @@ -4,7 +4,7 @@ import { computedFn } from "mobx-utils"; // types import { TModuleDisplayFilters, TModuleFilters, TModuleFiltersByState } from "@plane/types"; // store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface IModuleFilterStore { // observables diff --git a/apps/web/core/store/notifications/notification.ts b/apps/web/core/store/notifications/notification.ts index 74c0bf38c..6ee3ce081 100644 --- a/apps/web/core/store/notifications/notification.ts +++ b/apps/web/core/store/notifications/notification.ts @@ -5,7 +5,7 @@ import { IUserLite, TNotification, TNotificationData } from "@plane/types"; // services import workspaceNotificationService from "@/services/workspace-notification.service"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; export interface INotification extends TNotification { // observables diff --git a/apps/web/core/store/notifications/workspace-notifications.store.ts b/apps/web/core/store/notifications/workspace-notifications.store.ts index ef8d20bf5..1e383b7ed 100644 --- a/apps/web/core/store/notifications/workspace-notifications.store.ts +++ b/apps/web/core/store/notifications/workspace-notifications.store.ts @@ -20,7 +20,7 @@ import { convertToEpoch } from "@plane/utils"; import workspaceNotificationService from "@/services/workspace-notification.service"; // store import { Notification, INotification } from "@/store/notifications/notification"; -import { CoreRootStore } from "@/store/root.store"; +import type { CoreRootStore } from "@/store/root.store"; type TNotificationLoader = ENotificationLoader | undefined; type TNotificationQueryParamType = ENotificationQueryParamType; diff --git a/apps/web/core/store/pages/base-page.ts b/apps/web/core/store/pages/base-page.ts index ca100c04e..f80856bac 100644 --- a/apps/web/core/store/pages/base-page.ts +++ b/apps/web/core/store/pages/base-page.ts @@ -7,7 +7,7 @@ import { TChangeHandlerProps } from "@plane/ui"; import { convertHexEmojiToDecimal } from "@plane/utils"; // plane web store import { ExtendedBasePage } from "@/plane-web/store/pages/extended-base-page"; -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // local imports import { PageEditorInstance } from "./page-editor-info"; diff --git a/apps/web/core/store/pages/page-editor-info.ts b/apps/web/core/store/pages/page-editor-info.ts index 442b534f3..937302443 100644 --- a/apps/web/core/store/pages/page-editor-info.ts +++ b/apps/web/core/store/pages/page-editor-info.ts @@ -1,6 +1,6 @@ import { action, makeObservable, observable, runInAction } from "mobx"; // plane imports -import { EditorRefApi, TEditorAsset } from "@plane/editor"; +import type { EditorRefApi, TEditorAsset } from "@plane/editor"; export type TPageEditorInstance = { // observables diff --git a/apps/web/core/store/pages/project-page.store.ts b/apps/web/core/store/pages/project-page.store.ts index 02dfda547..5b8bfdb0d 100644 --- a/apps/web/core/store/pages/project-page.store.ts +++ b/apps/web/core/store/pages/project-page.store.ts @@ -9,11 +9,11 @@ import { EUserProjectRoles, TPage, TPageFilters, TPageNavigationTabs } from "@pl import { filterPagesByPageType, getPageName, orderPages, shouldFilterPage } from "@plane/utils"; // plane web constants // plane web store -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // services import { ProjectPageService } from "@/services/page"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; import { ProjectPage, TProjectPage } from "./project-page"; type TLoader = "init-loader" | "mutation-loader" | undefined; diff --git a/apps/web/core/store/pages/project-page.ts b/apps/web/core/store/pages/project-page.ts index 60bcb3804..fedd04814 100644 --- a/apps/web/core/store/pages/project-page.ts +++ b/apps/web/core/store/pages/project-page.ts @@ -4,12 +4,12 @@ import { computedFn } from "mobx-utils"; import { EPageAccess, EUserPermissions } from "@plane/constants"; import { TPage } from "@plane/types"; // plane web store -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // services import { ProjectPageService } from "@/services/page"; const projectPageService = new ProjectPageService(); // store -import { BasePage, TPageInstance } from "./base-page"; +import { BasePage, type TPageInstance } from "./base-page"; export type TProjectPage = TPageInstance; diff --git a/apps/web/core/store/project-view.store.ts b/apps/web/core/store/project-view.store.ts index 4ed4b78cb..49c7a1122 100644 --- a/apps/web/core/store/project-view.store.ts +++ b/apps/web/core/store/project-view.store.ts @@ -9,7 +9,7 @@ import { getValidatedViewFilters, getViewName, orderViews, shouldFilterView } fr // services import { ViewService } from "@/plane-web/services"; // store -import { CoreRootStore } from "./root.store"; +import type { CoreRootStore } from "./root.store"; export interface IProjectViewStore { //Loaders diff --git a/apps/web/core/store/project/index.ts b/apps/web/core/store/project/index.ts index 642512761..fd83f5743 100644 --- a/apps/web/core/store/project/index.ts +++ b/apps/web/core/store/project/index.ts @@ -1,4 +1,4 @@ -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; import { IProjectPublishStore, ProjectPublishStore } from "./project-publish.store"; import { IProjectStore, ProjectStore } from "./project.store"; import { IProjectFilterStore, ProjectFilterStore } from "./project_filter.store"; diff --git a/apps/web/core/store/project/project.store.ts b/apps/web/core/store/project/project.store.ts index 8082db0e3..20a0b3071 100644 --- a/apps/web/core/store/project/project.store.ts +++ b/apps/web/core/store/project/project.store.ts @@ -13,7 +13,7 @@ import { TProject, TPartialProject } from "@/plane-web/types/projects"; import { IssueLabelService, IssueService } from "@/services/issue"; import { ProjectService, ProjectStateService, ProjectArchiveService } from "@/services/project"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; type ProjectOverviewCollapsible = "links" | "attachments"; diff --git a/apps/web/core/store/project/project_filter.store.ts b/apps/web/core/store/project/project_filter.store.ts index 968805ba2..47ac3efab 100644 --- a/apps/web/core/store/project/project_filter.store.ts +++ b/apps/web/core/store/project/project_filter.store.ts @@ -4,7 +4,7 @@ import { computedFn } from "mobx-utils"; // types import { TProjectDisplayFilters, TProjectFilters, TProjectAppliedDisplayFilterKeys } from "@plane/types"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; export interface IProjectFilterStore { // observables diff --git a/apps/web/core/store/root.store.ts b/apps/web/core/store/root.store.ts index 677e30376..f88049e14 100644 --- a/apps/web/core/store/root.store.ts +++ b/apps/web/core/store/root.store.ts @@ -4,7 +4,7 @@ import { FALLBACK_LANGUAGE, LANGUAGE_STORAGE_KEY } from "@plane/i18n"; // plane web store import { AnalyticsStore, IAnalyticsStore } from "@/plane-web/store/analytics.store"; import { CommandPaletteStore, ICommandPaletteStore } from "@/plane-web/store/command-palette.store"; -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; import { IStateStore, StateStore } from "@/plane-web/store/state.store"; // stores import { CycleStore, ICycleStore } from "./cycle.store"; diff --git a/apps/web/core/store/state.store.ts b/apps/web/core/store/state.store.ts index 8f1d324b6..9e3cd4717 100644 --- a/apps/web/core/store/state.store.ts +++ b/apps/web/core/store/state.store.ts @@ -10,7 +10,7 @@ import { sortStates } from "@plane/utils"; // plane web import { syncIssuesWithDeletedStates } from "@/local-db/utils/load-workspace"; import { ProjectStateService } from "@/plane-web/services/project/project-state.service"; -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; export interface IStateStore { //Loaders diff --git a/apps/web/core/store/timeline/issues-timeline.store.ts b/apps/web/core/store/timeline/issues-timeline.store.ts index 41358724f..5128b9d8e 100644 --- a/apps/web/core/store/timeline/issues-timeline.store.ts +++ b/apps/web/core/store/timeline/issues-timeline.store.ts @@ -1,6 +1,6 @@ import { autorun } from "mobx"; // Plane-web -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; import { BaseTimeLineStore, IBaseTimelineStore } from "@/plane-web/store/timeline/base-timeline.store"; export interface IIssuesTimeLineStore extends IBaseTimelineStore { diff --git a/apps/web/core/store/timeline/modules-timeline.store.ts b/apps/web/core/store/timeline/modules-timeline.store.ts index 739f56865..5cf7bd3c8 100644 --- a/apps/web/core/store/timeline/modules-timeline.store.ts +++ b/apps/web/core/store/timeline/modules-timeline.store.ts @@ -1,7 +1,7 @@ import { autorun } from "mobx"; // Store -import { RootStore } from "@/plane-web/store/root.store"; -import { BaseTimeLineStore, IBaseTimelineStore } from "ce/store/timeline/base-timeline.store"; +import { BaseTimeLineStore, type IBaseTimelineStore } from "@/plane-web/store/timeline/base-timeline.store"; +import type { RootStore } from "@/plane-web/store/root.store"; export interface IModulesTimeLineStore extends IBaseTimelineStore { isDependencyEnabled: boolean; diff --git a/apps/web/core/store/user/account.store.ts b/apps/web/core/store/user/account.store.ts index f9ce78683..1a6806b67 100644 --- a/apps/web/core/store/user/account.store.ts +++ b/apps/web/core/store/user/account.store.ts @@ -5,7 +5,7 @@ import { IUserAccount } from "@plane/types"; // services import { UserService } from "@/services/user.service"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; export interface IAccountStore { // observables diff --git a/apps/web/core/store/user/base-permissions.store.ts b/apps/web/core/store/user/base-permissions.store.ts index a224fbfff..b88d74930 100644 --- a/apps/web/core/store/user/base-permissions.store.ts +++ b/apps/web/core/store/user/base-permissions.store.ts @@ -19,7 +19,7 @@ import { } from "@plane/types"; // plane web imports import { WorkspaceService } from "@/plane-web/services/workspace.service"; -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; // services import projectMemberService from "@/services/project/project-member.service"; import userService from "@/services/user.service"; diff --git a/apps/web/core/store/user/index.ts b/apps/web/core/store/user/index.ts index 09c0f7498..bbce6d63a 100644 --- a/apps/web/core/store/user/index.ts +++ b/apps/web/core/store/user/index.ts @@ -7,7 +7,7 @@ import { IUser, TUserPermissions } from "@plane/types"; // local import { persistence } from "@/local-db/storage.sqlite"; // plane web imports -import { RootStore } from "@/plane-web/store/root.store"; +import type { RootStore } from "@/plane-web/store/root.store"; import { IUserPermissionStore, UserPermissionStore } from "@/plane-web/store/user/permission.store"; // services import { AuthService } from "@/services/auth.service"; diff --git a/apps/web/core/store/user/profile.store.ts b/apps/web/core/store/user/profile.store.ts index 386f1af38..df9a9efb9 100644 --- a/apps/web/core/store/user/profile.store.ts +++ b/apps/web/core/store/user/profile.store.ts @@ -6,7 +6,7 @@ import { EStartOfTheWeek, IUserTheme, TUserProfile } from "@plane/types"; // services import { UserService } from "@/services/user.service"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; type TError = { status: string; diff --git a/apps/web/core/store/workspace/api-token.store.ts b/apps/web/core/store/workspace/api-token.store.ts index 2f51e6605..9737b80b2 100644 --- a/apps/web/core/store/workspace/api-token.store.ts +++ b/apps/web/core/store/workspace/api-token.store.ts @@ -5,7 +5,7 @@ import { APITokenService } from "@plane/services"; import { IApiToken } from "@plane/types"; // services // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; export interface IApiTokenStore { // observables diff --git a/apps/web/core/store/workspace/index.ts b/apps/web/core/store/workspace/index.ts index 36a47d35d..76b1da64d 100644 --- a/apps/web/core/store/workspace/index.ts +++ b/apps/web/core/store/workspace/index.ts @@ -7,7 +7,7 @@ import { IWorkspaceSidebarNavigationItem, IWorkspace, IWorkspaceSidebarNavigatio // services import { WorkspaceService } from "@/plane-web/services"; // store -import { CoreRootStore } from "@/store/root.store"; +import type { CoreRootStore } from "@/store/root.store"; // sub-stores import { ApiTokenStore, IApiTokenStore } from "./api-token.store"; import { HomeStore, IHomeStore } from "./home"; diff --git a/apps/web/core/store/workspace/webhook.store.ts b/apps/web/core/store/workspace/webhook.store.ts index 8b47bc74c..5b2fb29da 100644 --- a/apps/web/core/store/workspace/webhook.store.ts +++ b/apps/web/core/store/workspace/webhook.store.ts @@ -6,7 +6,7 @@ import { IWebhook } from "@plane/types"; // services import { WebhookService } from "@/services/webhook.service"; // store -import { CoreRootStore } from "../root.store"; +import type { CoreRootStore } from "../root.store"; export interface IWebhookStore { // observables diff --git a/apps/web/ee/components/breadcrumbs/index.ts b/apps/web/ee/components/breadcrumbs/index.ts deleted file mode 100644 index eecd3efb0..000000000 --- a/apps/web/ee/components/breadcrumbs/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/breadcrumbs"; diff --git a/apps/web/ee/components/issues/bulk-operations/index.ts b/apps/web/ee/components/issues/bulk-operations/index.ts deleted file mode 100644 index 9427e2fa2..000000000 --- a/apps/web/ee/components/issues/bulk-operations/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/bulk-operations/index"; diff --git a/apps/web/ee/components/issues/filters/applied-filters/index.ts b/apps/web/ee/components/issues/filters/applied-filters/index.ts deleted file mode 100644 index 592325823..000000000 --- a/apps/web/ee/components/issues/filters/applied-filters/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./issue-types"; diff --git a/apps/web/ee/components/issues/filters/applied-filters/issue-types.tsx b/apps/web/ee/components/issues/filters/applied-filters/issue-types.tsx deleted file mode 100644 index dc5e4ee58..000000000 --- a/apps/web/ee/components/issues/filters/applied-filters/issue-types.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/filters/applied-filters/issue-types"; diff --git a/apps/web/ee/components/issues/filters/index.ts b/apps/web/ee/components/issues/filters/index.ts deleted file mode 100644 index f0f36b6c9..000000000 --- a/apps/web/ee/components/issues/filters/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./applied-filters"; -export * from "./issue-types"; -export * from "./team-project"; diff --git a/apps/web/ee/components/issues/filters/issue-types.tsx b/apps/web/ee/components/issues/filters/issue-types.tsx deleted file mode 100644 index e08857af5..000000000 --- a/apps/web/ee/components/issues/filters/issue-types.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/filters/issue-types"; diff --git a/apps/web/ee/components/issues/filters/team-project.tsx b/apps/web/ee/components/issues/filters/team-project.tsx deleted file mode 100644 index 0f5683af1..000000000 --- a/apps/web/ee/components/issues/filters/team-project.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/filters/team-project"; diff --git a/apps/web/ee/components/issues/header.tsx b/apps/web/ee/components/issues/header.tsx deleted file mode 100644 index 8049127f4..000000000 --- a/apps/web/ee/components/issues/header.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/header"; diff --git a/apps/web/ee/components/issues/index.ts b/apps/web/ee/components/issues/index.ts deleted file mode 100644 index 01fc1d9ac..000000000 --- a/apps/web/ee/components/issues/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from "./bulk-operations"; -export * from "./worklog"; -export * from "./issue-modal"; -export * from "./issue-details"; -export * from "./quick-add"; -export * from "./filters"; -export * from "./header"; diff --git a/apps/web/ee/components/issues/issue-details/additional-activity-root.tsx b/apps/web/ee/components/issues/issue-details/additional-activity-root.tsx deleted file mode 100644 index c6c26375e..000000000 --- a/apps/web/ee/components/issues/issue-details/additional-activity-root.tsx +++ /dev/null @@ -1 +0,0 @@ -export { AdditionalActivityRoot } from "ce/components/issues/issue-details/additional-activity-root"; diff --git a/apps/web/ee/components/issues/issue-details/additional-properties.tsx b/apps/web/ee/components/issues/issue-details/additional-properties.tsx deleted file mode 100644 index 5a15f5b3a..000000000 --- a/apps/web/ee/components/issues/issue-details/additional-properties.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-details/additional-properties"; diff --git a/apps/web/ee/components/issues/issue-details/index.ts b/apps/web/ee/components/issues/issue-details/index.ts deleted file mode 100644 index 4125ebf83..000000000 --- a/apps/web/ee/components/issues/issue-details/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./issue-identifier"; -export * from "./issue-properties-activity"; -export * from "./issue-type-switcher"; -export * from "./issue-type-activity"; -export * from "./parent-select-root"; -export * from "./issue-creator"; diff --git a/apps/web/ee/components/issues/issue-details/issue-creator.tsx b/apps/web/ee/components/issues/issue-details/issue-creator.tsx deleted file mode 100644 index a9902b36c..000000000 --- a/apps/web/ee/components/issues/issue-details/issue-creator.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-details/issue-creator"; diff --git a/apps/web/ee/components/issues/issue-details/issue-identifier.tsx b/apps/web/ee/components/issues/issue-details/issue-identifier.tsx deleted file mode 100644 index 739e41482..000000000 --- a/apps/web/ee/components/issues/issue-details/issue-identifier.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-details/issue-identifier"; diff --git a/apps/web/ee/components/issues/issue-details/issue-properties-activity/index.ts b/apps/web/ee/components/issues/issue-details/issue-properties-activity/index.ts deleted file mode 100644 index 1efe34c51..000000000 --- a/apps/web/ee/components/issues/issue-details/issue-properties-activity/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./root"; diff --git a/apps/web/ee/components/issues/issue-details/issue-properties-activity/root.tsx b/apps/web/ee/components/issues/issue-details/issue-properties-activity/root.tsx deleted file mode 100644 index df17dc7a6..000000000 --- a/apps/web/ee/components/issues/issue-details/issue-properties-activity/root.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-details/issue-properties-activity/root"; diff --git a/apps/web/ee/components/issues/issue-details/issue-type-activity.tsx b/apps/web/ee/components/issues/issue-details/issue-type-activity.tsx deleted file mode 100644 index 1e2cb90c2..000000000 --- a/apps/web/ee/components/issues/issue-details/issue-type-activity.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-details"; diff --git a/apps/web/ee/components/issues/issue-details/issue-type-switcher.tsx b/apps/web/ee/components/issues/issue-details/issue-type-switcher.tsx deleted file mode 100644 index 683fdbd52..000000000 --- a/apps/web/ee/components/issues/issue-details/issue-type-switcher.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-details/issue-type-switcher"; diff --git a/apps/web/ee/components/issues/issue-details/parent-select-root.tsx b/apps/web/ee/components/issues/issue-details/parent-select-root.tsx deleted file mode 100644 index 0b668ecb1..000000000 --- a/apps/web/ee/components/issues/issue-details/parent-select-root.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-details/parent-select-root"; diff --git a/apps/web/ee/components/issues/issue-layouts/additional-properties.tsx b/apps/web/ee/components/issues/issue-layouts/additional-properties.tsx deleted file mode 100644 index d9bc6914a..000000000 --- a/apps/web/ee/components/issues/issue-layouts/additional-properties.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-layouts/additional-properties"; diff --git a/apps/web/ee/components/issues/issue-layouts/empty-states/index.ts b/apps/web/ee/components/issues/issue-layouts/empty-states/index.ts deleted file mode 100644 index a0739e26a..000000000 --- a/apps/web/ee/components/issues/issue-layouts/empty-states/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-layouts/empty-states"; diff --git a/apps/web/ee/components/issues/issue-layouts/quick-action-dropdowns/index.ts b/apps/web/ee/components/issues/issue-layouts/quick-action-dropdowns/index.ts deleted file mode 100644 index 2538e79a7..000000000 --- a/apps/web/ee/components/issues/issue-layouts/quick-action-dropdowns/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-layouts/quick-action-dropdowns"; diff --git a/apps/web/ee/components/issues/issue-layouts/utils.tsx b/apps/web/ee/components/issues/issue-layouts/utils.tsx deleted file mode 100644 index 1716a8950..000000000 --- a/apps/web/ee/components/issues/issue-layouts/utils.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-layouts/utils"; diff --git a/apps/web/ee/components/issues/issue-modal/index.ts b/apps/web/ee/components/issues/issue-modal/index.ts deleted file mode 100644 index d77e4657b..000000000 --- a/apps/web/ee/components/issues/issue-modal/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./provider"; -export * from "./issue-type-select"; diff --git a/apps/web/ee/components/issues/issue-modal/issue-type-select.tsx b/apps/web/ee/components/issues/issue-modal/issue-type-select.tsx deleted file mode 100644 index 897305bf7..000000000 --- a/apps/web/ee/components/issues/issue-modal/issue-type-select.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-modal/issue-type-select"; diff --git a/apps/web/ee/components/issues/issue-modal/provider.tsx b/apps/web/ee/components/issues/issue-modal/provider.tsx deleted file mode 100644 index b79fe9ecd..000000000 --- a/apps/web/ee/components/issues/issue-modal/provider.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/issue-modal/provider"; diff --git a/apps/web/ee/components/issues/quick-add/index.ts b/apps/web/ee/components/issues/quick-add/index.ts deleted file mode 100644 index 1efe34c51..000000000 --- a/apps/web/ee/components/issues/quick-add/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./root"; diff --git a/apps/web/ee/components/issues/quick-add/root.tsx b/apps/web/ee/components/issues/quick-add/root.tsx deleted file mode 100644 index 87d9fd2e3..000000000 --- a/apps/web/ee/components/issues/quick-add/root.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/quick-add/root"; diff --git a/apps/web/ee/components/issues/worklog/activity/filter-root.tsx b/apps/web/ee/components/issues/worklog/activity/filter-root.tsx deleted file mode 100644 index 90acdbb5c..000000000 --- a/apps/web/ee/components/issues/worklog/activity/filter-root.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/worklog/activity/filter-root"; diff --git a/apps/web/ee/components/issues/worklog/activity/index.ts b/apps/web/ee/components/issues/worklog/activity/index.ts deleted file mode 100644 index 0c803acab..000000000 --- a/apps/web/ee/components/issues/worklog/activity/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./root"; -export * from "./worklog-create-button"; - -export * from "./filter-root"; diff --git a/apps/web/ee/components/issues/worklog/activity/root.tsx b/apps/web/ee/components/issues/worklog/activity/root.tsx deleted file mode 100644 index 2d10db815..000000000 --- a/apps/web/ee/components/issues/worklog/activity/root.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/worklog/activity/root"; diff --git a/apps/web/ee/components/issues/worklog/activity/worklog-create-button.tsx b/apps/web/ee/components/issues/worklog/activity/worklog-create-button.tsx deleted file mode 100644 index 394cd3e8c..000000000 --- a/apps/web/ee/components/issues/worklog/activity/worklog-create-button.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/worklog/activity/worklog-create-button"; diff --git a/apps/web/ee/components/issues/worklog/index.ts b/apps/web/ee/components/issues/worklog/index.ts deleted file mode 100644 index c0ed33ebf..000000000 --- a/apps/web/ee/components/issues/worklog/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./property"; -export * from "./activity"; diff --git a/apps/web/ee/components/issues/worklog/property/index.ts b/apps/web/ee/components/issues/worklog/property/index.ts deleted file mode 100644 index 1efe34c51..000000000 --- a/apps/web/ee/components/issues/worklog/property/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./root"; diff --git a/apps/web/ee/components/issues/worklog/property/root.tsx b/apps/web/ee/components/issues/worklog/property/root.tsx deleted file mode 100644 index 5fe8c9321..000000000 --- a/apps/web/ee/components/issues/worklog/property/root.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/issues/worklog/property/root"; diff --git a/apps/web/ee/components/workspace-notifications/index.ts b/apps/web/ee/components/workspace-notifications/index.ts deleted file mode 100644 index fb22da3e8..000000000 --- a/apps/web/ee/components/workspace-notifications/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace-notifications"; diff --git a/apps/web/ee/components/workspace/billing/index.ts b/apps/web/ee/components/workspace/billing/index.ts deleted file mode 100644 index 1efe34c51..000000000 --- a/apps/web/ee/components/workspace/billing/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./root"; diff --git a/apps/web/ee/components/workspace/billing/root.tsx b/apps/web/ee/components/workspace/billing/root.tsx deleted file mode 100644 index 522692913..000000000 --- a/apps/web/ee/components/workspace/billing/root.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace/billing/root"; diff --git a/apps/web/ee/components/workspace/delete-workspace-modal.tsx b/apps/web/ee/components/workspace/delete-workspace-modal.tsx deleted file mode 100644 index ce6b9cccf..000000000 --- a/apps/web/ee/components/workspace/delete-workspace-modal.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace/delete-workspace-modal"; diff --git a/apps/web/ee/components/workspace/delete-workspace-section.tsx b/apps/web/ee/components/workspace/delete-workspace-section.tsx deleted file mode 100644 index 9b2628048..000000000 --- a/apps/web/ee/components/workspace/delete-workspace-section.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace/delete-workspace-section"; diff --git a/apps/web/ee/components/workspace/edition-badge.tsx b/apps/web/ee/components/workspace/edition-badge.tsx deleted file mode 100644 index b5b092da4..000000000 --- a/apps/web/ee/components/workspace/edition-badge.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace/edition-badge"; diff --git a/apps/web/ee/components/workspace/index.ts b/apps/web/ee/components/workspace/index.ts deleted file mode 100644 index 4e148736d..000000000 --- a/apps/web/ee/components/workspace/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./edition-badge"; -export * from "./upgrade-badge"; -export * from "./billing"; -export * from "./delete-workspace-section"; -export * from "./sidebar"; -export * from "ce/components/workspace/app-switcher"; diff --git a/apps/web/ee/components/workspace/settings/useMemberColumns.tsx b/apps/web/ee/components/workspace/settings/useMemberColumns.tsx deleted file mode 100644 index 4d0ca711a..000000000 --- a/apps/web/ee/components/workspace/settings/useMemberColumns.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace/settings/useMemberColumns"; diff --git a/apps/web/ee/components/workspace/sidebar/index.ts b/apps/web/ee/components/workspace/sidebar/index.ts deleted file mode 100644 index eb17e4018..000000000 --- a/apps/web/ee/components/workspace/sidebar/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace/sidebar"; diff --git a/apps/web/ee/components/workspace/sidebar/teams-sidebar-list.tsx b/apps/web/ee/components/workspace/sidebar/teams-sidebar-list.tsx deleted file mode 100644 index 2cd5f20dc..000000000 --- a/apps/web/ee/components/workspace/sidebar/teams-sidebar-list.tsx +++ /dev/null @@ -1 +0,0 @@ -export * from "ce/components/workspace/sidebar/teams-sidebar-list"; diff --git a/apps/web/ee/components/workspace/upgrade-badge.tsx b/apps/web/ee/components/workspace/upgrade-badge.tsx deleted file mode 100644 index d12716555..000000000 --- a/apps/web/ee/components/workspace/upgrade-badge.tsx +++ /dev/null @@ -1,2 +0,0 @@ -export * from "ce/components/workspace/upgrade-badge"; -export * from "ce/components/workspace/content-wrapper";