diff --git a/apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx b/apps/web/app/(all)/[workspaceSlug]/(projects)/_sidebar.tsx index cd91d1c28d..aaa7f6e51c 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 92ed6b7368..6215ec3284 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 cfe3ed8426..1ee1b3c3d7 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 f1b3893830..3b3e82c8f7 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 3a531a7b29..29d4a54e6c 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 829ebdec7f..f75edf89e5 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 2899b06212..0e030e2144 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 d2ccb109ba..f4cac61774 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 63c6aa2b76..48e40685f1 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 84f60e9fc8..5190dc74f6 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 a5a647bfdb..7629f6ed35 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 f94fc872ae..93c9b79ce8 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 ac3e3262ad..b8e4cbd033 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 6af0e0b244..e6f2d92d35 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 0664a945c1..938b458548 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 35408c4914..3b48668493 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 e3d7303636..f8fd3a0f4c 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 415ea8fbf7..4521cf4363 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 7a808decd2..446a965aec 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 b6c1a22f07..aac7ed4590 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 3ad14bd966..31c96cd438 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 ec0c0d86da..a256bb6f9c 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 fb223f2dd4..f893140591 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 ac7e04303c..dd59768943 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 0db37129c2..eeb6998c98 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 5da3018b3f..c46c531732 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 b7f59441f4..9894b9ca69 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 40f407d6a8..a2ed6db4b7 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 80ecbbf67f..fb15225816 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 14f62397d7..c2e0e9c42a 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 10e6cc582e..74eb8949da 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 eb2df313da..321ab8a62e 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 a52b3596f3..ceb24bf3c6 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 c1e48db7c0..ee72018acd 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 5c1d55d3e4..1edb13e23c 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 b26a063ec7..5bc6149e41 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 8cadaea829..09b41721f1 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 1966657546..40872f0b47 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 2d07bccd94..5110cd8708 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 fe95037876..39a2e699a4 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 76cbf685ff..a3caddf305 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 05b7d53153..eee1e58cf7 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 81a10e63f3..4783a28236 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 d58c19ad73..4969a0a511 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 f3068816e1..ec6cdc1dd7 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 d233cb17a5..ce91afb616 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 e4cde6cbb1..4f9c5af7e9 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 1e6e2c5429..f8ba5b6cee 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 cee22b0cf6..22728d5e36 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 c3aacaebb0..8a2e9a71a5 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 5b5c3048cb..c2df9c4e52 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 25fa8fc802..7359f6dcc1 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 6b83f367b1..63162e102c 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 db31713079..889c258456 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 67dc8801cc..310f2a0bf0 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 bd409af05b..e976c73535 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 66d89dab07..a10667e9e5 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 81acf8c68a..a0e1375f20 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 12ebf41e0c..269cf94557 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 629dca36a1..7a76d63455 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 f00c7b223e..fca530980f 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 8566b04d27..ff4f10a70e 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 4292e67ea4..99af7075b8 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 dacd613881..a9147e0fe1 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 a9c029852c..ba3314eb87 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 8b1bdd8283..a74a9797b3 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 58b69809bf..9042dd787d 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 2f3a175426..c143487cc8 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 45c16260a0..08e7ef7488 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 92cbb7326d..af6e57d49a 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 d9b2cb8ef8..f411485dac 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 3143612c29..d96c8256a5 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 608ed5dff1..256d5f786c 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 67895bcb96..490ffb4b98 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 a308e19789..d8429ef306 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 a308e19789..d8429ef306 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 b5dbec81ce..2fd3218c07 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 7f7f9c96f6..1b4b1a2360 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 b1d7e6b92e..d2abcd3f6d 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 48c2cc3745..198985929c 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 0d62cd4a2c..8f4cb196e2 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 2778ffbf38..1c50844c8c 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 a40d9318c0..6f3dbe1b9c 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 87d0cfc58d..5a3969a225 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 593a1b0931..a87d4d2676 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 0286476694..6c8950b4cb 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 62aabb10ee..b0ba8774a9 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 10d1a76e66..2838e2226f 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 335631a2ed..bb9d8f3d39 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 011659090a..6db9ea99b7 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 e05eb30f05..065d8c5e73 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 2728625970..9e7c24982c 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 736c348106..12fcdca8f3 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 08ad0f72fa..09a4de1d59 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 c6a7d3f5ac..0bf1acdc97 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 511ab96d9a..06be0fd854 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 fe64d6b223..8d4f8b133f 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 ecbc2f9aa5..d37711e38f 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 43ff520323..4ca617cd5f 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 cc71877af0..5b0d43ab22 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 f37178c2a0..238119334a 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 87479a2c8b..5032ae1ba6 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 2a405e0b01..3d0c298585 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 7153e11beb..0dd30509ce 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 99e4bd77da..b2eb7127c6 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 db9d17e89b..e0e153bbba 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 d84ba10c4a..92933cabbe 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 317e769298..9841120bb0 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 216a74631d..badb1ed3d3 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 cf79fa127d..8af72805f1 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 30f6c3da63..c7dfaedbfd 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 011b240b91..fd521b9cd9 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 f94ca21416..7715afecd0 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 7cecc697fa..ed16556a9e 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 11d646985e..c49e217486 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 43468a0191..93cc0f8307 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 f09218e27c..3f9a07bf15 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 ab28596e4c..e715f83795 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 218d7dee24..03d224f585 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 5a2ee5c3a3..3ac1ce86e5 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 f85fea7f11..14ef5881f2 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 ae27bf793f..4fa1039cac 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 877dfd5117..679ea22922 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 21e02480d3..d9a440fb43 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 5e154fdffc..9f7bb2203d 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 66b59ab9f6..01ff111450 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 104bf46bbd..cff764ca8b 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 be70e1e13f..50144d9335 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 7d3943d1c5..18deab2d83 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 524393755f..6f9d78d56f 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 68a0dd5985..20a184ffc4 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 fb4b165e2a..d7fbfd3b07 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 87c131821c..1efe34c51e 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 3c073890f3..caad61a0a2 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 b82fb019e9..9e0289a3cb 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 5b2f573cbc..abcb5cb3d1 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 aad2cb3522..0000000000 --- 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 c606a2d3f3..fefbe9d187 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 1beab197aa..c8c0924891 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 1ec015bbd9..d5bc3aba15 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 cd47f848de..7a5eb6802b 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 9f80727d3c..843e39cfb7 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 e0ff03a48b..6b9e8000d1 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 64d22493e1..a6c89776dd 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 08c5bb331c..46d3f3b58e 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 f0c974348f..5a2df91cb1 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 6b2ecb928b..66a580cbde 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 518f98648a..c9c56990a6 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 ad1c2e5c32..90193a69c9 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 16e21f848d..23f15fe274 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 58bae9b746..c6b94b8d89 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 a321f4a9b0..05544302d3 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 741a341bec..dbd1455068 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 592325823c..0000000000 --- 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 f0f36b6c97..0000000000 --- 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 cad3d0f22d..5a88e139ff 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 01fc1d9acf..0000000000 --- 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 07e6899d3d..c1e65ff5f3 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 b806803f43..338f24fb06 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 5d4adeb955..09245289f4 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 820a578e17..3582d053f0 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 62c8b35e64..c0b82ae955 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 b7b6e0898c..00a192be12 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 0a0ef1e3f3..55b0d4bb79 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 2a3bc5edbe..d74c3bf755 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 a4dc62a6d5..a2fe9910f3 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 0c803acab8..1efe34c51e 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 c0ed33ebf8..0000000000 --- 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 19e658b12b..26aeb8e452 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 956422256b..d09024369d 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 4ade46da17..f1ed1787b9 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 1a99262c6a..ad3d4dd3b2 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 8e15ebff79..65151def4e 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 0aa77e470c..75c8bc5356 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 a1ef7f3f2e..1d6256045a 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 7f906564a0..b259a38d7a 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 25a0dd9d8c..89972c23dd 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 c12683ce61..ed26efa234 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 2aff9edfea..ef2eb11de4 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 f02c34d3f6..1efe34c51e 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 c089a4905f..d5bc225d4e 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 489ef6352c..0000000000 --- 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 5e1651e901..0000000000 --- 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 629370cc14..8641847bd7 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 c340518784..10ce47824d 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 6b8a94f6ba..77a3593733 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 815fdb2637..ac1f7f4a00 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 c22f296a21..0000000000 --- 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 5612b3026b..0000000000 --- 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 58416379f1..604649e71f 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 7e04919ce6..ef5a002d64 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 025c8ddfd1..c72e96da5b 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 fcb6a0f3c3..67bc79b7eb 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 d429991583..7492ea105e 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 585ed567bf..6c566b0a33 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 fcde83e7f3..3fa52a5d1c 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 a61b9ee36e..0be2f1dd30 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 47b4205a1b..95f133cf9d 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 717da46590..10aeb842a1 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 a80e5e4e3a..2c5cd30664 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 517a5700fb..35b1a10f41 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 5f423f4b72..49a3c120b5 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 00300cdf2e..3a1977a92c 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 7e88919421..65e6aceaf2 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 c3cc80e10e..0ba02323b1 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 f41aa70fd5..0000000000 --- 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 6cef6018a2..39ac9b9f38 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 d13a85a2d8..aa4ee6fd87 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 b22c91114c..578c47ed3b 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 14b1ad43b2..be9c734e91 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 1510cdbd13..8c5ee1ee3d 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 684416184b..97ad8139df 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 6131a03150..0000000000 --- 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 3b4014ea1b..6d799d8bbc 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 8ac82df5df..0000000000 --- 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 088bf61852..286305ff79 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 2bcc8e831d..5645d49b83 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 fa03d56dfe..2bbea9516a 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 4982f8fb0e..0a3ef5742a 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 33a045c186..84188bbed6 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 06d09aa1e9..4852a0bd55 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 ac7704628f..25a3c54346 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 7a52afeccd..0000000000 --- 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 d7d6e14d37..af04b31c23 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 279722cfdd..57f74cd53d 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 a09ba77ebb..0000000000 --- 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 f5fe9fbd80..8b707e8d7d 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 5bba6cc204..d68144691a 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 5f4c10391b..f5624f07bd 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 5960006a78..7abaa79b0c 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 5e078d6171..0000000000 --- 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 1fb77e697a..0000000000 --- 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 58e65c471d..3bb5447868 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 8283243122..0000000000 --- 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 e83c196511..77f5b3a2e2 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 44c8b76713..dbee2ff933 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 49a8887981..3024d38da9 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 e03d6363a9..70e2a3d334 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 d442afde92..aff9f8224d 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 84f8ef2870..1eea7a3cea 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 7abc9326e0..64d9e4449e 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 0000eac6c7..59f77a3d64 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 9df95c00a9..108deba2cc 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 5cf7ee4b1f..87b9213374 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 27493c8460..5cf56620a6 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 0bc174d6d1..e26dbcc7b9 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 227974053c..a9bac41096 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 4a83385add..fd15336a04 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 3958941404..c97c2201b4 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 894e32630e..4f62c359de 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 8ab32d3d90..0000000000 --- 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 c82ab36162..fdba5fe8a9 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 77f9f6304c..0000000000 --- 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 508a47f982..49b0f1a304 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 3626531bde..77bd3efbda 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 513830e671..903863a5c4 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 6f0b5dbdef..0000000000 --- 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 f1261b2262..0000000000 --- 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 37f041d6eb..d56856ff0a 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 6e5b3b491e..37c989f2f0 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 39e9f70338..bef4f63a3f 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 daa42cf307..d08c207c3c 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 28e36d3e67..0000000000 --- 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 77ff591cfe..0000000000 --- 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 e0c4be23ec..f00defb76a 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 c44885d2d6..0e7a6d4545 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 b516d96af8..24546c8da9 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 3c6eaa8092..2a554f96bb 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 940dc1a432..0000000000 --- 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 20646efb18..b94aa90533 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 314702346c..be0e91faed 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 ad5c6f6835..0000000000 --- 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 7641431767..6b0a564ad3 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 3cc5469afe..ca1907bad8 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 145b3862a1..0000000000 --- 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 4f31e06d70..2ecb846dea 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 bf5f3e9b44..0000000000 --- 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 f53e2ef876..63d0850984 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 c2f0174f62..b7fadd9032 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 447df1eb06..bc7b8d7e31 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 035a585854..1efe34c51e 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 90586d3313..2d3f5393e0 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 7e1c378577..b0de0ce240 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 b709c0e631..ebe3711f21 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 b2d9db7d9e..3dcc27e20d 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 1fa7c26e0d..60a6d23849 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 cee9ae3497..1efe34c51e 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 78a62238c2..77fa8f1605 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 7ec368cdd4..15a2b4c6da 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 f59f0954ef..1efe34c51e 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 2832efa2c7..5b0f98f0f4 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 6005dfb3c6..d2cbae9e3d 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 e22536e309..4d4dd990d9 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 51d70ae980..bcf447716e 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 0ec9217540..4976a33f51 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 ef6c9d136a..7c1b8cebae 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 9ace4e3738..4d0e8447fd 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 db3950780a..7aaadc6100 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 b836999662..1dbf1a3d93 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 354fea41c3..ff32a4b23b 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 19ff38bc6e..8ac3aa6765 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 0e24a2a218..70cde0b668 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 6b0ec32f02..6efbb81401 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 7013beeaba..0000000000 --- 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 330f6041f2..eef7c469a3 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 d1ca58e052..019ebbdc66 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 004c66fcac..52954b2bbc 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 25419a0560..1efe34c51e 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 49e3fcbe3e..4e59d2c5d5 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 559f18e4d0..8b2b490d32 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 84dfe99bbf..0fcc51e4e7 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 aaf4b6940e..b6cf96d658 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 7499c64e3c..7a30b583b9 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 803a606e3d..f01f1ea501 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 2968ee5839..315fa65fec 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 3455fa7f47..0000000000 --- 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 68d2a4767e..56a8a7a94c 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 980144a190..9c8cb8775b 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 e9f42a50e1..47347c3700 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 a251efe8cc..46b6ae7694 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 3fa08ca195..a8d25aba63 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 e17643e64b..03a265ae95 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 5be65926e8..c06c217b79 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 79573245a4..3c82b1b49d 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 318467a69b..3b816ebd95 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 a579430d9a..910d891083 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 8146e94d92..0000000000 --- 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 9ea5ef6fb2..95149b9267 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 83a6ee79fc..90129ccd3b 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 c80c733527..0000000000 --- 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 56d7f5436c..5f4d28203c 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 13cd07c44e..0c2759f252 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 735d81e231..aaaa0898db 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 81149e41bf..776d96cacc 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 84b27226ec..6811e70039 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 3ba1c3ad30..0000000000 --- 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 7de8cb9889..0000000000 --- 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 531a024ab5..396ba572ea 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 d168273646..dc38ebeb57 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 031608e25f..0000000000 --- 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 8f9c17dd76..67ed4b847a 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 9dcd863f02..edc1c4f075 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 a64864ea56..9acbe955bc 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 14846c7de1..ead1e8e151 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 57de5bc8d8..c493352c1b 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 9ae5fb41c6..1efe34c51e 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 bdeb731176..1efe34c51e 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 c7338fd445..56ad098d9a 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 7c074245aa..9d10c55823 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 5418830ac8..7f751ce9ca 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 0bfba1c524..2ef48eb2ad 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 eaac1ed990..7792a79d3b 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 9924cb08ad..6b3cd59766 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 2fd6919998..ffc36a6b66 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 5d0294f721..d68e60c8d6 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 0b097aeb66..927308d252 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 05519d377d..c1ba3a86e1 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 ff15c11924..0000000000 --- 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 b07d580b3c..5ee589e7de 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 f856d201f9..e24fe2ee71 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 b2f3180b71..23b46da63d 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 7c22d56be9..455ed123e9 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 730e9c6c59..2c64f41162 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 30be6512b7..2a720929a7 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 040aefea44..ed90156769 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 b1ded3f44f..288c0027cb 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 4943dbde0d..062e933a53 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 19e32a822c..cb247296c5 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 d5ade21fcb..f0e0fbbc69 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 b499a3ea11..1efe34c51e 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 d5bfa4ebcc..4102ae5253 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 e77147fa07..ae2e145c2a 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 0c7493fb75..29d436563a 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 956f75719a..58799eb3c8 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 6113e51ddc..0000000000 --- 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 d18438caf4..d942175f30 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 a93095579b..73307ebf6a 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 ebbdd6ae5a..a2eb5246b7 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 a0ddd674a3..b2a517802a 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 a237c910fe..2ca7914668 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 d19c80a229..1ecbf5efd0 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 4eb8d9d316..7382a028d6 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 cff75e2098..7c5c61009d 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 4cd0d31f13..0000000000 --- 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 3541ef8dc4..1bb86c931e 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 77ce95c4ee..1be980b353 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 ebb02ccb35..a3174f51c8 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 49b5f99aca..7c2778db2a 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 98b12fa7d4..250ba128bb 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 20ec09a357..1efe34c51e 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 df4fcf69fb..d6d8567d4f 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 d6db844ce3..0000000000 --- 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 b65a201609..fc984c0f08 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 8b05b565ff..1efe34c51e 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 32dbfc42a9..57627bca56 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 907c3ddbaf..031608e25f 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 09679cf313..6d7c5a5840 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 5f87202cda..2a36099378 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 698d0bf4d6..42e3dd879d 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 206eae71fe..56749cc557 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 cd76aae63f..b2fd74e838 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 78d9e6561b..0000000000 --- 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 39d66beecd..040d0f5c1a 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 7016da40d0..aefb688614 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 308092fee5..4ecc13dada 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 95d692b605..cabd16616a 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 8a76734238..1efe34c51e 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 d5f05e0be7..0d8eed682a 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 0ba2dc9f5b..b141ff7987 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 d1343b523b..082a0ac225 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 7cce8df860..d6e2161098 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 19eace8a5b..292bd3c673 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 eb1de3ed30..9e33f77c40 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 15da0bf4b0..4a762a2c00 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 9d2037ff41..09242ecc9f 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 d9504e3218..dde2c485fa 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 c1ecf7ba1d..99ce4c707c 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 e5fdd26268..d10f9fa367 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 bdae008f4f..8725c94d61 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 a25ee25893..b4f74c6918 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 838c266969..f06b839416 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 af20960a86..1efe34c51e 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 bad4f36773..0000000000 --- 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 f0a19249ec..c1b1913d76 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 8f7265a169..da75081dd7 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 1e99de3aa8..a8c6376d6d 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 12d99143a1..db6debd10a 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 483d53da91..0000000000 --- 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 27b6b4265c..090701f32f 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 1a3169104e..b62de354b2 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 1a2d35f5e8..29fc7f0b69 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 2739875747..9d308defb1 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 509b211147..22a79a29cf 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 4eb61fabd0..ef436f25dc 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 a3559aec83..1efe34c51e 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 ec3302d611..f9fb24372e 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 d798798724..31b21e45fa 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 ad849eb3ad..76bbb5c2b1 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 89d33729ab..25ffc02adc 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 47007ecd2f..3cd211a048 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 8307ab46d4..e1aa75b43e 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 08d694a34f..7ace014ca2 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 1073b2063a..91ed4bb664 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 b03c1b3233..18a3d1cdcc 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 d40c6d464c..576e1e8f7c 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 32b9318eb8..3f6365e6bf 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 ef8b8c285d..4f44730885 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 00abc3799f..d98e80f3f0 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 46d1f8d229..dfb246d54b 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 8ae6195ea8..bf76004f93 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 79b362fb77..3707cc2761 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 62e59eb260..1740d86be8 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 92a8bc0d6a..a9436cc616 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 7b55d37ef2..2d1fa603f5 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 ae1bc87427..4547524453 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 a48d2ef5cc..738414e80c 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 b01dac11ec..1674ea98a8 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 c38a398cb7..56a29d525a 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 cbf7493a8c..7c7f27da04 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 7b85900437..1efe34c51e 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 5b0d073a1a..eec5db1a87 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 f05f5b98de..22e18556e1 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 97f6058154..e69837104a 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 3ba87df9cc..e210d75f49 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 f763c3bcc7..f24c9056b9 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 3d22707502..7ef63f96ef 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 b80d9470da..4f39767fc1 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 f324cb83e8..a97b4eb40c 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 663d2aa2c2..8d84489e95 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 80451cb02e..5535b1bfa5 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 50b8db1ab6..7d8e642361 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 f949f58598..5f3012c0ef 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 bd0e49c3bc..ec66349b45 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 9e13043893..596d1a404a 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 88a8c35a47..e59b52b09c 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 ac8d454cf6..99df9d2bb6 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 2a3256c624..a4ea65439f 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 8669cfe832..bb605e522e 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 d1ceb8f887..534d0dbb3e 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 a55071bf91..e89ffa3332 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 d5c3e8d585..b441304eef 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 12457d59db..d1efd7aa6d 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 32c49915c3..a2050a20a2 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 884c2325e8..25c175f7e2 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 463192d6c2..a07a9dbadd 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 242c1399df..50a6e66398 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 15c00845ed..4d99eb2ed2 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 89670dbb3b..c3d308f910 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 a2ad09307a..ca05df1112 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 f2c62919f4..eede4642f1 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 9a24ce5b1b..94c350ded5 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 107c6ef430..cf3ea8b773 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 01c7570741..200f1c38cd 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 856d1ec4be..36a41de2fd 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 4512eb30bd..6087f4c3b8 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 29a22c9c48..5cd7438de0 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 41b802795a..a038e0bf4f 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 9b2d544a9c..31e0f001b0 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 0682d4b54e..4c48a14079 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 04cb3745d3..d03bf7af45 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 8c03143609..b26cff1a51 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 caaeb65ff6..082070d570 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 5e5994ff39..f12bf03feb 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 d7d0a69477..b15a129473 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 66c12d1f8e..19117a5e01 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 c93baf884c..65c5803e11 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 504b625f64..518f3d8440 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 9ca5d12f8b..20c2d6e33c 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 47d75531d5..d0d1d575c5 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 b484a5c491..83429b4904 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 f0563f5ba9..4d0ad5bc9f 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 f41dbc06c1..469f612544 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 e5943f33b0..55da82d032 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 e9a722af0b..0000000000 --- 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 2ca6a8f8ea..10a965378c 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 ce1181b730..93c18c9c30 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 ff2bbe76b8..dceb7a714a 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 8f05892f17..0b1f78caff 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 d10e28b230..c1faa7933f 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 19de048067..0000000000 --- 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 0e1038e2fe..075d395a3f 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 9634f1f8b6..6cf681fc74 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 dc073fc9ed..72ab231fbd 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 2f843d4d61..b9f2b2448e 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 d1164d1a59..b289c9798b 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 73d138fcf6..0d9c20d226 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 59a7acdafc..4877d686f6 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 0d12f31dcd..2f1ab4fdde 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 f71010c586..2a74709f74 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 d67aad491f..26f8e52abc 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 842a3485bc..3ee8fd6534 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 bd0ab5b2fd..0db9d94e25 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 2a2c377951..0a08aec5fa 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 17fcbbfece..9918ce4152 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 cf9dc582a5..66607cc24d 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 32f9b13d76..524938c473 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 190d9f1fa1..04efe576ca 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 b27328a82f..19f12e0432 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 f678f1a131..a1d3cef956 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 b774d2d347..2d6b96f1c0 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 bf3fa63cec..31a8de982a 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 d7174ceefb..45a24e48b5 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 cbd41be9e5..8b6b5fb2ad 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 b834eb9da2..421359e797 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 c458d692fb..de13ce1593 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 12338658ef..471ded1925 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 51780d2277..c3eba13a43 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 2622eae9d0..29a270a65d 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 d3d106a93a..c01378242c 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 5c4a6ba50b..511e6536db 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 e19f6d0112..032d28d29a 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 f4a2613167..8d137d0147 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 9dd7c1d09d..2067802cfb 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 8169b43c8b..bfb5dfe043 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 8f3dfa58d0..a5e815ed47 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 28e29ab62b..04afbba804 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 70800af0e8..5b80a2fbb6 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 7e60eb5bb7..31294c7dc0 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 ea972db032..7b02e9536a 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 dee9165342..d519f63843 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 02fac50a3b..d1038be5e0 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 c667696e7c..d747ef8e13 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 cdad192b62..be38f0c73d 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 784ffc0763..f8506c817d 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 3999797279..baa43a8482 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 89f63d96b6..aebefc6c38 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 e2babd3711..a4fa8f83e6 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 b0eb6d232e..6728bd6590 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 75bf1d5995..0000000000 --- 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 ba26b3f0d2..916a913889 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 bed7a3ba0f..2ea62cbb74 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 f0fe531dea..7e4e898f84 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 2fb4da801b..b6f5603e25 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 32cddc5a2d..def5e59248 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 d40fbf0d59..d9caaad1b4 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 f84f7c8af1..0000000000 --- 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 ed834eea7d..1b6450722e 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 16f0990d9e..e9404a2dea 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 c2542b182b..568dd315fe 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 139c09a7ae..0000000000 --- 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 7944ffc794..8587a509f7 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 fed04333ec..be1e433611 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 32f22a4599..bcb3a596a1 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 5f0e71f7fe..8e9e50be14 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 ca5c456163..67a001233b 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 755d462958..d6613b68aa 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 4c84322d17..2a4100e467 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 be7e783655..ab00e40c38 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 f107c28b65..2e34570d36 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 2171c18731..0000000000 --- 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 577a52adc8..e5f567d35d 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 e7c7670ae7..8724f49594 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 a542537dc8..4fe7180558 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 bb037020e4..4b3c8c5383 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 aae6f833cc..0000000000 --- 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 c04be1ac1b..fa7b514d0e 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 0ebf46b502..f3ec225953 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 bb98b73e18..f976a57a29 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 852c5f5a3d..62fdec30af 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 354567eaf5..8d17dbfe0e 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 b8f21bfbad..473be0e965 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 2087a1bdce..9c4dc934d3 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 347a07c1f5..d87c784716 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 055335c8cb..af2bd06ffe 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 386c5f1e96..8950c491b3 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 5a33febc6b..02db31eee4 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 5d512ce476..8b5db5b56c 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 266ebbe74f..a9a7199526 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 00ae3585dc..bda83937ff 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 d9a9fbf8bf..5b109d4321 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 b96afb5993..1a16dc42ae 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 4ffba95c92..c924a3da34 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 9de55b2ecf..56254ddb83 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 727e3e3935..0000000000 --- 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 14e20ae53f..158a5daa69 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 2d1be0cc2a..d2b789ce66 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 b6bf4755bc..050cfc0569 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 524391dba0..7c25038b33 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 c3ddad73ea..7e61fb3aac 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 e6e54fcc34..4b91e74a53 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 fc923331bb..adbc221fcd 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 98612b46f1..5d8246b709 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 d63b49da30..47633a7c12 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 49de4064a9..b3dbec5f91 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 b30f7716fe..dcd1c03e50 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 a23236f482..89f594cea0 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 397e68905f..fac7bfdc31 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 6a25938362..e3c64df458 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 75d40695ff..0000000000 --- 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 8594e72fae..750dfb35a4 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 707a114ce7..83eb1a6238 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 10037416cf..0000000000 --- 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 d79059863d..b949cc5425 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 b78f95881e..a957a418b5 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 1a68aba4df..a378f32ab4 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 7f6e5669a7..a1b4bf9c8c 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 8f348c7170..6794a04d9a 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 83943f84d4..a4c90897c3 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 b4a01c56d3..ed1351669f 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 20eb13a4c2..6b3c060d7b 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 8e0bc68f53..83e2f31394 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 10d936001b..6c99531049 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 ca978700d1..e689106109 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 13b608fe96..4fe3300049 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 cc2ad0c270..b9d4e5122b 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 8c20e2763d..2310961a8d 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 4899229491..0000000000 --- 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 303eac87d5..cec18f8712 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 64f013e0f9..a0c39a0f51 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 f0b8cec494..72d4dd319a 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 5081a1ae23..1183b556a1 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 3e0d56558f..1efe34c51e 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 6873da488c..fc3df13586 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 41921cf561..25a33a221c 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 b38415c2f4..8768a7109a 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 6d1fe4756b..e06a483975 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 a54c231f62..0000000000 --- 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 a344969e2d..7099683feb 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 e11ce476f6..f7f8133dce 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 fae86a7436..c826a9df3a 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 59e7901ffe..8c48cf78e8 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 2a86e03abd..be66d709ab 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 69f6f15bf6..8e27da913c 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 4c9a9736cf..ef31ad8fcc 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 4318bc2eaf..496f53f279 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 3cd990d07a..a5c16cf7f3 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 07138bc0bc..1efe34c51e 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 56efcea985..ef09385d3f 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 c6aef19c66..0b61ec0a23 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 3b50824eda..8e00bb99f3 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 9ea93b70d2..db49f69665 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 897b756a9e..df59f8f1a5 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 088e7440eb..474bfce655 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 13a491ab2a..da8a907eb7 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 b30811219c..555e7e32bb 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 343077ac23..acfb9904f0 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 e1c8b68343..06e485ab4a 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 c0bd2d930a..ad0aacfbe5 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 f7c5e58564..2bc35b053e 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 9bcb50c6ed..e828d6be9a 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 5921b12e86..5a2a2eeb7a 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 a098de4835..c046da8752 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 a6de50b4e8..f00c492b8b 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 1f593203a7..db7bee879e 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 61191626ee..d2537868ac 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 2d7b9c17f2..9d44fb3361 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 3f3994fda4..f1aa3b14dd 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 2bb0f84c27..c3baa8d729 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 aab66235de..59b42a6a5e 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 ace0b7f809..937aa3f3bb 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 1260d5621a..f70def7c9e 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 2a83514d2a..fd7d826179 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 36a468d5f3..4ae7de5ccb 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 2741dbc449..46748561e9 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 578af737b9..c938b92ec8 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 9ed74019d4..c5709f965d 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 0d20bd224f..705aa8e8a3 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 590ef67e8a..8b54546e12 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 efa96c6c64..2de45d7de9 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 241d24a004..a8b09de57a 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 047f06a2d5..9139eec407 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 9575e7166e..bf07cc2ed8 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 2e0fbe6f08..faa9af4e9c 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 d4021f925e..efa6b4c515 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 aef04aa04b..1efe34c51e 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 1659cee6bb..762db93c74 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 c9151a1b88..b25e9a6bd3 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 fc997b4b68..8984aaf752 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 aba7430239..1efe34c51e 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 c2675ab13f..90fc135d72 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 32cdbffbae..fb0e0d2b66 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 f78202a6e4..f8a564d699 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 97d39696ce..ce4160899f 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 b14df36fd2..b3f9d51514 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 680661eb50..d3fff2beb3 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 e2043f4d1a..665f63aee6 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 c8c19b8113..0ce44a9bb8 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 e42257a5ef..323f67a62c 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 110e961a9b..1efe34c51e 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 529232b443..ae31e157a3 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 538d0b8556..3b08dbef41 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 97e3ba1334..bb7e934d6a 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 6770466750..63cb650998 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 e8dd98e9a2..17092d8c56 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 0c3912e09b..0000000000 --- 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 e0e2fa9f4b..d43c319c1a 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 507deb7035..04d31f6b2c 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 416c43e071..fc5c7b4ffe 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 b0a3c658f5..bc89c2a8ab 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 a5ba7c6060..b388395d0b 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 e779c618e5..dbf1c4cee8 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 ca85e60661..8de7d72a9a 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 ccf07191a3..6b56a72d8e 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 24f239c875..afe24fd592 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 a498e3ab93..50c853cc6f 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 e94c53bb4d..723ee28fc6 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 31e68e576c..c1c7191877 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 f546c804bf..bd4012846a 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 d372f2b89c..0000000000 --- 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 99558163cb..6db9e9e3f3 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 c3cb980e10..cc3fe0a3eb 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 6cf7471bab..91981529c2 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 7871b76cdf..2c9f6f1037 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 88f7633a0c..1efe34c51e 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 554e48855d..85fccdb59f 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 8760eede6c..0000000000 --- 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 9e7472a58a..b0b180a70a 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 992d2b95b7..d35103672a 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 67e2f629d8..ad519094b9 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 d0f9e67577..0000000000 --- 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 32a2a8ad2a..f1c4c0721f 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 a2497d3856..688e45078f 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 357b759ad3..f551f07c61 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 d0bd1b907b..dcd5221ea5 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 b301e9cbe7..dd23835c5f 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 77edc24e04..54aaffb6f1 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 d1454b12c0..2eb9183093 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 d563e52ebf..eb9a8251a8 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 c9880f0d58..6c4b4f28c1 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 c5e466e892..886daaa0e8 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 eccaf5e9bc..d4d4b6157a 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 b4aec1bb5b..f09f3724ea 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 5da43e9591..1efe34c51e 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 ab05ba2566..40c861b698 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 64b4f43dae..df2f39942d 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 34886eb598..ff033e2721 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 3b202d6c52..0000000000 --- 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 76bc98ef24..a8b151773e 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 ffc74e5fc0..03791472b2 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 8601cad3a1..0000000000 --- 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 56ef42216a..0000000000 --- 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 002286c770..f52255400e 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 0c69a50dea..0000000000 --- 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 a352deb0cd..b61018ef35 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 ee07a71893..16bf9c63f5 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 8d171ee36c..94d9c26f55 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 2b91194ba1..ad9f94379b 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 574f134bf2..d0782aff5d 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 85c5803993..1c7e240e78 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 1508fd2e98..e9643ca53d 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 580126d97a..53b7ad4ed2 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 909f346060..c2d6a7d608 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 afa277a03f..65ff9256a3 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 3ef343340a..7bfe7fc6f3 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 85bcda446c..1efe34c51e 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 f0e4519ca9..497dd6c32f 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 c2489054d5..d5ff01b084 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 87a5520329..0739fcca66 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 c2800f3aac..a328360e1d 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 d4a394e67d..5567d4c58d 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 2c393aff10..5abd4cf3da 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 7c48fb30ad..d7b89e1862 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 b9b3dd6a2f..7d4043945f 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 6b223f259f..f0aad24700 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 c04162e579..1efe34c51e 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 a6de50b4e8..f00c492b8b 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 1f593203a7..db7bee879e 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 161d25c021..e304a157cc 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 f6c42552f6..0000000000 --- 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 5a97acde09..563bbc3ede 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 452d9d0b66..f4eabe9283 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 1abd5a91db..4bfe081d21 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 3f2b2b0771..0000000000 --- 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 d46cf4d0bc..2fdba46b6f 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 7f9bde99f7..7de4a02d3d 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 d729c48b93..403985d996 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 ff9d63564e..c651a8f72e 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 c1597e0dd6..3866fa89f6 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 0ab59bccef..6d16987c0d 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 93ff8723ba..3ed701a1b5 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 3905a38bb7..490f07e74a 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 031608e25f..0000000000 --- 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 5cef174480..06489e9d80 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 e0be0292a4..07e270b17f 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 c7d41280fc..8a0df46cdd 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 9e28140c1d..f78a7c4fda 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 f55ec8cdb3..661b2d6a16 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 23da8dcb2f..0000000000 --- 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 48b1fcac93..735832d9e8 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 0f8e9aa6d2..0000000000 --- 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 74315bbd5f..ed4fcd72f9 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 832f7f39b8..3df1bf4084 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 84dd83af9f..e621fcdbd6 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 ada14070e3..0000000000 --- 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 4e98cf1d88..138636c756 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 4cf4c6b994..e0574a3af5 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 de3d0c4e4f..fe006ae1f5 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 56fd49ffac..0e8a22935a 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 af1d139d6d..a2991371f8 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 286d6c0978..33ac26a763 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 c639b0bac8..0000000000 --- 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 45caea0c6a..c0b279f9c1 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 9b3789ea2b..91dc50962d 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 91363220e0..0000000000 --- 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 e3afe22f92..0000000000 --- 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 a04424ce36..b6af55c666 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 ed03fe1855..6479d1833a 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 e94741cc09..5a96ec644d 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 35367be7ec..0000000000 --- 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 62df0e465a..aac5a7fbb1 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 33887728eb..7370559e4e 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 c36666583f..0000000000 --- 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 c658d19141..8fc6fac884 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 fb41fff4ff..0000000000 --- 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 4f9c40be7d..0000000000 --- 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 8b73cd98dd..0000000000 --- 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 18e7c04fd2..ec55cc979f 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 d4109eea6e..35dce46e3c 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 9dd7d0a4dc..dbb370dd6f 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 5bfa8bb2dc..79ba7646ab 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 085a1c6b71..0000000000 --- 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 01d3e0bc6d..81df6abe0f 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 8fb8cc53eb..d46191a4f2 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 e28aa37d8a..9abb45ba35 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 8a0ec89c37..d3860c9618 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 1ba93fc100..cda916c165 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 372f61ace5..f74de0e83c 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 6e32d9f66a..a54a251658 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 804b708e8c..ad2265cbfc 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 e619750786..2a32c44fb3 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 5419207d89..7cdf4c00ac 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 1b99f4b398..3aab35357e 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 8bc361a7c9..1efe34c51e 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 3a2e9071cf..d1397250ee 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 f11db704aa..ed96c2da99 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 b36bc58a51..d716608924 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 f551a25f4a..ff2d366342 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 b4d269c8a3..0000000000 --- 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 5d76f42637..1efe34c51e 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 206f4b0467..a8ed60f30d 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 e52e989a0c..405eac7d92 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 eb738f5f37..1efe34c51e 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 e4d478279a..1efe34c51e 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 808d90c76f..1efe34c51e 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 2c1a59ce04..38a33ee527 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 21905a54dc..d7a298145f 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 f15520ec32..397252fe59 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 bd935b6657..fd3e8d28c4 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 4713a9b3c2..1efe34c51e 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 d72ec28a05..141e9ad5bb 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 d464403479..0000000000 --- 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 ab1c43a433..6c9b3d4982 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 9a03bd7114..0c6a8ab216 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 073d7eef58..34f4e4f1f6 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 7d0284ae57..c20664d54e 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 cc3b274f0e..3896431574 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 b96783b095..32eced44d1 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 0439d5cdaf..a0f780c877 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 b425ab2926..6006bf54c5 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 43f98b7e89..955fdd1439 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 a71831671e..0000000000 --- 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 07bd56a129..201a02921b 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 f760cd1d9c..b1e2fac5c6 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 14cffe5459..dc373aa19f 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 81758c4850..0000000000 --- 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 d46a249954..e74e8104cf 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 235edf9800..0000000000 --- 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 d9b3b64b9b..0000000000 --- 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 1fa1fce2f6..6007804a68 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 edff3f15ad..ff04eee1d5 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 db7e7e2753..a3ab6271a8 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 9bce5ea0f1..f2d51807c5 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 da3dbe3d13..60c5f1b148 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 7dec302b7c..f813f9adce 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 670f9ba116..60606f7694 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 1b5c9436e4..5e06ec5747 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 fd92ae14a3..0000000000 --- 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 3a1dc8320a..e1bb34e184 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 5aff74d568..d3d69bb15e 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 bf2a547d62..619abb4f8e 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 8c18ceae6b..0000000000 --- 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 754f45de5c..25912263b3 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 714c36eca5..04479c7a82 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 1f4a8f71ff..623b0294ac 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 8784472331..b79cb7ad6b 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 085cbab7b0..653f2479d3 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 3a2676c816..73f8bbbaf5 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 5d0b555dc1..efd4b3f389 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 4a874c9e94..a830b0b85a 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 9826a77b91..2b9bcfcee9 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 0d2a736f3a..bda8343ba5 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 e8028761e6..e873784d8c 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 c6f1d3ec2c..404c70849c 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 0e6c5857e1..4be9d4fcdf 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 ece0918f77..881b22a591 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 05401dca88..d2d8860a47 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 c41d752381..0000000000 --- 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 a7336e312f..de54f114a0 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 043cbb9259..cbb67cb91a 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 ca76b802f0..99137f5e09 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 04e3686ddd..e6c619a8e6 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 156934caa2..ba54a60dc4 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 17aaf559e8..b79110459e 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 6225a1cb62..a848271b0c 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 ddd8735b4d..0000000000 --- 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 9df87dd5c1..2086b05c92 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 f882d67161..3dcdf46e5a 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 a07af60ed7..e0494567af 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 0a1406a394..f10e89fc27 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 30456b3cc1..da3433fa34 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 cdf6a09ec6..26d58485c3 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 652b75b940..14754d257a 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 08a6daa02d..5893d7593c 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 6a90578630..9b43f54c10 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 7c5af36960..08c9b74ddf 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 6a677520fe..6c21a55609 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 ea1e70c419..04e279cbb7 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 9ada6ddbd6..40d701ee0e 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 ed7d076ff7..6c46e8ab84 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 92165e2bbe..de66b10151 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 8aabdb92a1..db7a57413c 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 6c99a5f111..5ac116f9c2 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 ef14d8c5c3..cf217a1e64 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 b20de1abb8..d0412c5eba 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 a5a93926d0..bf093e960a 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 964a663001..a9ec42605d 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 93d1f078af..cf07f4b0ff 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 afe852ee2d..0c52ce423d 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 cdbff2533d..d36af8171d 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 9fd14c94b2..76ce87984b 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 e7f7354658..106b1c3bec 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 b8a85a5fca..493c816411 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 ca592ecbfe..1ee2d7bf6f 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 062134ace4..2e420c4bb2 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 4bca56be93..a269ee5dfd 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 5cf6b44559..3c2e40e8c8 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 8d422a343a..4b77c98b8b 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 12be981355..ce698a9f99 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 d56378c781..c9937cd902 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 103188e11d..85d5fa0172 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 7f3f52c24e..e2261e0b1c 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 8898b38a80..b0fc6639be 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 095c1e00e4..a6301f4001 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 5ef1bfec9f..f050007124 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 b9cd11304f..0de3d7c882 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 75aa54b84f..fedb079597 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 b2ecb57772..f5a8d35fda 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 68d7e23326..5da6737e9c 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 2c02d149d4..e8c9735252 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 1e997bbfe1..60130bcb6a 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 52b54fe501..98aa1f66c3 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 448c589777..b290253a86 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 f3c635748e..05cfa3cec7 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 8e4f3ba970..d362a2709e 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 e06e745c3a..f11bc18e91 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 97646a3397..3b7a9aecb5 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 821d7a9119..af9b8d7ccd 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 241c7bcb99..0000000000 --- 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 0bee5655c2..34964b8fac 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 42d7d46548..3a4f352d09 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 b483c6da2d..2a1fede0a9 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 773b1e6736..669b3c5b94 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 3c235adc74..c59286d5a4 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 6dfc75b23a..0000000000 --- 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 5379973e5e..10df831faf 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 a665199bb1..f1ffbd3639 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 c23af6850f..3c86b16cec 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 070ab3b19d..33b284b7a6 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 9bdaadf4b0..171cdcbac3 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 e956770c06..9f6d42f82f 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 c8c3a17aaa..f12edf8f20 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 295dbbc56a..9e2409a6dc 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 76fad29717..aa0503623a 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 e352452239..ff8e5295e0 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 0235445f90..f036afe9d3 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 cb446e32c5..3763c4bdff 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 69248ccec8..03b9f656d3 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 a43c714721..3dc835f0fa 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 688f0b974a..4a719f6a40 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 d197851b7a..bd2c915389 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 b8bae30e7b..f3536dedf8 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 9ec2b479ce..5afa019fcc 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 5592835cce..11be7ab020 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 5d2b60482e..62ac072cb6 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 74c0bf38cd..6ee3ce081f 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 ef8d20bf59..1e383b7eda 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 ca100c04e6..f80856bac4 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 442b534f36..937302443f 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 02dfda5479..5b8bfdb0de 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 60bcb38046..fedd04814f 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 4ed4b78cbc..49c7a1122a 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 6425127618..fd83f5743f 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 8082db0e3c..20a0b30719 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 968805ba2b..47ac3efab2 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 677e303765..f88049e144 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 8f1d324b68..9e3cd4717e 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 41358724f7..5128b9d8e1 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 739f568654..5cf7bd3c80 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 f9ce786839..1a6806b678 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 a224fbfff7..b88d749308 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 09c0f74987..bbce6d63ac 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 386f1af38f..df9a9efb95 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 2f51e66054..9737b80b27 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 36a47d35dc..76b1da64d0 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 8b47bc74c2..5b2fb29da9 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 eecd3efb09..0000000000 --- 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 9427e2fa20..0000000000 --- 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 592325823c..0000000000 --- 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 dc5e4ee58a..0000000000 --- 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 f0f36b6c97..0000000000 --- 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 e08857af57..0000000000 --- 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 0f5683af11..0000000000 --- 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 8049127f42..0000000000 --- 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 01fc1d9acf..0000000000 --- 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 c6c26375ef..0000000000 --- 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 5a15f5b3a6..0000000000 --- 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 4125ebf832..0000000000 --- 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 a9902b36c3..0000000000 --- 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 739e414828..0000000000 --- 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 1efe34c51e..0000000000 --- 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 df17dc7a69..0000000000 --- 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 1e2cb90c25..0000000000 --- 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 683fdbd523..0000000000 --- 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 0b668ecb14..0000000000 --- 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 d9bc6914a5..0000000000 --- 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 a0739e26ad..0000000000 --- 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 2538e79a73..0000000000 --- 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 1716a8950e..0000000000 --- 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 d77e4657ba..0000000000 --- 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 897305bf79..0000000000 --- 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 b79fe9ecdc..0000000000 --- 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 1efe34c51e..0000000000 --- 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 87d9fd2e35..0000000000 --- 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 90acdbb5cd..0000000000 --- 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 0c803acab8..0000000000 --- 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 2d10db8153..0000000000 --- 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 394cd3e8ce..0000000000 --- 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 c0ed33ebf8..0000000000 --- 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 1efe34c51e..0000000000 --- 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 5fe8c9321f..0000000000 --- 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 fb22da3e81..0000000000 --- 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 1efe34c51e..0000000000 --- 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 522692913a..0000000000 --- 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 ce6b9cccf2..0000000000 --- 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 9b2628048e..0000000000 --- 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 b5b092da4a..0000000000 --- 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 4e148736d6..0000000000 --- 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 4d0ca711aa..0000000000 --- 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 eb17e4018f..0000000000 --- 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 2cd5f20dc1..0000000000 --- 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 d12716555f..0000000000 --- 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";