refactor(core): move workspace atoms to core (#5459)

@affine/workspace/atom -> @affine/core/modules/workspace
This commit is contained in:
EYHN
2024-01-02 10:06:48 +00:00
parent 4b217e6b89
commit 9d0b3b4947
41 changed files with 64 additions and 60 deletions

View File

@@ -2,11 +2,11 @@ import type {
CollectionsCRUD, CollectionsCRUD,
CollectionsCRUDAtom, CollectionsCRUDAtom,
} from '@affine/component/page-list'; } from '@affine/component/page-list';
import type { Collection, DeprecatedCollection } from '@affine/env/filter';
import { import {
currentWorkspaceAtom, currentWorkspaceAtom,
waitForCurrentWorkspaceAtom, waitForCurrentWorkspaceAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import type { Collection, DeprecatedCollection } from '@affine/env/filter';
import { DisposableGroup } from '@blocksuite/global/utils'; import { DisposableGroup } from '@blocksuite/global/utils';
import type { Workspace } from '@blocksuite/store'; import type { Workspace } from '@blocksuite/store';
import { type DBSchema, openDB } from 'idb'; import { type DBSchema, openDB } from 'idb';

View File

@@ -1,7 +1,7 @@
import { import {
currentWorkspaceAtom, currentWorkspaceAtom,
workspaceListAtom, workspaceListAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { useAtomValue } from 'jotai/react'; import { useAtomValue } from 'jotai/react';
import { useEffect } from 'react'; import { useEffect } from 'react';
import { useLocation, useParams } from 'react-router-dom'; import { useLocation, useParams } from 'react-router-dom';

View File

@@ -1,4 +1,4 @@
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom'; import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { Suspense, useEffect } from 'react'; import { Suspense, useEffect } from 'react';

View File

@@ -5,11 +5,11 @@ import {
Modal, Modal,
} from '@affine/component/ui/modal'; } from '@affine/component/ui/modal';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { workspaceManagerAtom } from '@affine/core/modules/workspace';
import { DebugLogger } from '@affine/debug'; import { DebugLogger } from '@affine/debug';
import { apis } from '@affine/electron-api'; import { apis } from '@affine/electron-api';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { workspaceManagerAtom } from '@affine/workspace/atom';
import { getCurrentStore } from '@toeverything/infra/atom'; import { getCurrentStore } from '@toeverything/infra/atom';
import { import {
buildShowcaseWorkspace, buildShowcaseWorkspace,

View File

@@ -7,8 +7,8 @@ import { Button } from '@affine/component/ui/button';
import { ConfirmModal, Modal } from '@affine/component/ui/modal'; import { ConfirmModal, Modal } from '@affine/component/ui/modal';
import type { PageMode } from '@affine/core/atoms'; import type { PageMode } from '@affine/core/atoms';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { ToggleCollapseIcon } from '@blocksuite/icons'; import { ToggleCollapseIcon } from '@blocksuite/icons';
import type { Page, Workspace } from '@blocksuite/store'; import type { Page, Workspace } from '@blocksuite/store';
import * as Collapsible from '@radix-ui/react-collapsible'; import * as Collapsible from '@radix-ui/react-collapsible';

View File

@@ -6,13 +6,13 @@ import { Avatar } from '@affine/component/ui/avatar';
import { Tooltip } from '@affine/component/ui/tooltip'; import { Tooltip } from '@affine/component/ui/tooltip';
import { useWorkspaceBlobObjectUrl } from '@affine/core/hooks/use-workspace-blob'; import { useWorkspaceBlobObjectUrl } from '@affine/core/hooks/use-workspace-blob';
import { useWorkspaceInfo } from '@affine/core/hooks/use-workspace-info'; import { useWorkspaceInfo } from '@affine/core/hooks/use-workspace-info';
import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { WorkspaceMetadata } from '@affine/workspace';
import { import {
waitForCurrentWorkspaceAtom, waitForCurrentWorkspaceAtom,
workspaceListAtom, workspaceListAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { WorkspaceMetadata } from '@affine/workspace';
import { Logo1Icon } from '@blocksuite/icons'; import { Logo1Icon } from '@blocksuite/icons';
import clsx from 'clsx'; import clsx from 'clsx';
import { useAtom, useAtomValue } from 'jotai/react'; import { useAtom, useAtomValue } from 'jotai/react';

View File

@@ -2,13 +2,13 @@ import { pushNotificationAtom } from '@affine/component/notification-center';
import { SettingRow } from '@affine/component/setting-components'; import { SettingRow } from '@affine/component/setting-components';
import { ConfirmModal } from '@affine/component/ui/modal'; import { ConfirmModal } from '@affine/component/ui/modal';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { import {
currentWorkspaceAtom, currentWorkspaceAtom,
workspaceListAtom, workspaceListAtom,
workspaceManagerAtom, workspaceManagerAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { ArrowRightSmallIcon } from '@blocksuite/icons'; import { ArrowRightSmallIcon } from '@blocksuite/icons';
import { useAtomValue, useSetAtom } from 'jotai'; import { useAtomValue, useSetAtom } from 'jotai';
import { useCallback, useState } from 'react'; import { useCallback, useState } from 'react';

View File

@@ -2,11 +2,11 @@ import { SettingRow } from '@affine/component/setting-components';
import { Button } from '@affine/component/ui/button'; import { Button } from '@affine/component/ui/button';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { useWorkspaceInfo } from '@affine/core/hooks/use-workspace-info'; import { useWorkspaceInfo } from '@affine/core/hooks/use-workspace-info';
import { workspaceManagerAtom } from '@affine/core/modules/workspace';
import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant'; import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant';
import { WorkspaceFlavour, WorkspaceSubPath } from '@affine/env/workspace'; import { WorkspaceFlavour, WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { Workspace } from '@affine/workspace'; import type { Workspace } from '@affine/workspace';
import { workspaceManagerAtom } from '@affine/workspace/atom';
import { useAtomValue, useSetAtom } from 'jotai'; import { useAtomValue, useSetAtom } from 'jotai';
import { useState } from 'react'; import { useState } from 'react';

View File

@@ -1,7 +1,7 @@
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { workspaceManagerAtom } from '@affine/core/modules/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import type { Workspace } from '@affine/workspace'; import type { Workspace } from '@affine/workspace';
import { workspaceManagerAtom } from '@affine/workspace/atom';
import type { Page } from '@blocksuite/store'; import type { Page } from '@blocksuite/store';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useState } from 'react'; import { useState } from 'react';

View File

@@ -6,9 +6,9 @@ import {
MenuSeparator, MenuSeparator,
} from '@affine/component/ui/menu'; } from '@affine/component/ui/menu';
import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { import {
DuplicateIcon, DuplicateIcon,

View File

@@ -4,12 +4,12 @@ import {
useBlockSuitePageMeta, useBlockSuitePageMeta,
usePageMetaHelper, usePageMetaHelper,
} from '@affine/core/hooks/use-block-suite-page-meta'; } from '@affine/core/hooks/use-block-suite-page-meta';
import type { Collection } from '@affine/env/filter';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { import {
currentWorkspaceAtom, currentWorkspaceAtom,
waitForCurrentWorkspaceAtom, waitForCurrentWorkspaceAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import type { Collection } from '@affine/env/filter';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { EdgelessIcon, PageIcon, ViewLayersIcon } from '@blocksuite/icons'; import { EdgelessIcon, PageIcon, ViewLayersIcon } from '@blocksuite/icons';
import type { Page, PageMeta } from '@blocksuite/store'; import type { Page, PageMeta } from '@blocksuite/store';
import { getCurrentStore } from '@toeverything/infra/atom'; import { getCurrentStore } from '@toeverything/infra/atom';

View File

@@ -2,9 +2,9 @@ import { Button } from '@affine/component/ui/button';
import { ConfirmModal } from '@affine/component/ui/modal'; import { ConfirmModal } from '@affine/component/ui/modal';
import { Tooltip } from '@affine/component/ui/tooltip'; import { Tooltip } from '@affine/component/ui/tooltip';
import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { WorkspaceSubPath } from '@affine/env/workspace'; import { WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { DeleteIcon, ResetIcon } from '@blocksuite/icons'; import { DeleteIcon, ResetIcon } from '@blocksuite/icons';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';

View File

@@ -1,11 +1,11 @@
import { Divider } from '@affine/component/ui/divider'; import { Divider } from '@affine/component/ui/divider';
import { MenuItem } from '@affine/component/ui/menu'; import { MenuItem } from '@affine/component/ui/menu';
import { Unreachable } from '@affine/env/constant';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { import {
workspaceListAtom, workspaceListAtom,
workspaceManagerAtom, workspaceManagerAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { Unreachable } from '@affine/env/constant';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { Logo1Icon } from '@blocksuite/icons'; import { Logo1Icon } from '@blocksuite/icons';
import { useAtomValue, useSetAtom } from 'jotai'; import { useAtomValue, useSetAtom } from 'jotai';
// eslint-disable-next-line @typescript-eslint/no-restricted-imports // eslint-disable-next-line @typescript-eslint/no-restricted-imports

View File

@@ -5,13 +5,13 @@ import {
useWorkspaceAvatar, useWorkspaceAvatar,
useWorkspaceName, useWorkspaceName,
} from '@affine/core/hooks/use-workspace-info'; } from '@affine/core/hooks/use-workspace-info';
import { WorkspaceFlavour, WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { WorkspaceMetadata } from '@affine/workspace';
import { import {
currentWorkspaceAtom, currentWorkspaceAtom,
workspaceListAtom, workspaceListAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { WorkspaceFlavour, WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { WorkspaceMetadata } from '@affine/workspace';
import type { DragEndEvent } from '@dnd-kit/core'; import type { DragEndEvent } from '@dnd-kit/core';
import { useAtomValue, useSetAtom } from 'jotai'; import { useAtomValue, useSetAtom } from 'jotai';
// eslint-disable-next-line @typescript-eslint/no-restricted-imports // eslint-disable-next-line @typescript-eslint/no-restricted-imports

View File

@@ -3,10 +3,10 @@ import { Loading } from '@affine/component/ui/loading';
import { Tooltip } from '@affine/component/ui/tooltip'; import { Tooltip } from '@affine/component/ui/tooltip';
import { useWorkspaceBlobObjectUrl } from '@affine/core/hooks/use-workspace-blob'; import { useWorkspaceBlobObjectUrl } from '@affine/core/hooks/use-workspace-blob';
import { useWorkspaceInfo } from '@affine/core/hooks/use-workspace-info'; import { useWorkspaceInfo } from '@affine/core/hooks/use-workspace-info';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant'; import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { type SyncEngineStatus, SyncEngineStep } from '@affine/workspace'; import { type SyncEngineStatus, SyncEngineStep } from '@affine/workspace';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { import {
CloudWorkspaceIcon, CloudWorkspaceIcon,
InformationFillDuotoneIcon, InformationFillDuotoneIcon,

View File

@@ -1,11 +1,11 @@
import { BrowserWarning } from '@affine/component/affine-banner'; import { BrowserWarning } from '@affine/component/affine-banner';
import { LocalDemoTips } from '@affine/component/affine-banner'; import { LocalDemoTips } from '@affine/component/affine-banner';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { workspaceManagerAtom } from '@affine/core/modules/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { Trans } from '@affine/i18n'; import { Trans } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { Workspace } from '@affine/workspace'; import type { Workspace } from '@affine/workspace';
import { workspaceManagerAtom } from '@affine/workspace/atom';
import { useAtomValue, useSetAtom } from 'jotai'; import { useAtomValue, useSetAtom } from 'jotai';
import { useCallback, useState } from 'react'; import { useCallback, useState } from 'react';

View File

@@ -1,17 +1,17 @@
import { AffineShapeIcon } from '@affine/component/page-list'; // TODO: import from page-list temporarily, need to defined common svg icon/images management. import { AffineShapeIcon } from '@affine/component/page-list'; // TODO: import from page-list temporarily, need to defined common svg icon/images management.
import { Button } from '@affine/component/ui/button'; import { Button } from '@affine/component/ui/button';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { useNavigateHelper } from '@affine/core/hooks/use-navigate-helper';
import { useWorkspaceStatus } from '@affine/core/hooks/use-workspace-status'; import { useWorkspaceStatus } from '@affine/core/hooks/use-workspace-status';
import { WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { import {
waitForCurrentWorkspaceAtom, waitForCurrentWorkspaceAtom,
workspaceManagerAtom, workspaceManagerAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useState } from 'react'; import { useState } from 'react';
import { useNavigateHelper } from '../../hooks/use-navigate-helper';
import * as styles from './upgrade.css'; import * as styles from './upgrade.css';
import { ArrowCircleIcon, HeartBreakIcon } from './upgrade-icon'; import { ArrowCircleIcon, HeartBreakIcon } from './upgrade-icon';

View File

@@ -4,8 +4,8 @@ import {
FavoriteTag, FavoriteTag,
} from '@affine/component/page-list'; } from '@affine/component/page-list';
import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import type { PageMeta } from '@blocksuite/store'; import type { PageMeta } from '@blocksuite/store';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useCallback, useMemo } from 'react'; import { useCallback, useMemo } from 'react';

View File

@@ -1,8 +1,8 @@
import { toast } from '@affine/component'; import { toast } from '@affine/component';
import { usePageMetaHelper } from '@affine/core/hooks/use-block-suite-page-meta'; import { usePageMetaHelper } from '@affine/core/hooks/use-block-suite-page-meta';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { EdgelessIcon, HistoryIcon, PageIcon } from '@blocksuite/icons'; import { EdgelessIcon, HistoryIcon, PageIcon } from '@blocksuite/icons';
import { import {

View File

@@ -1,8 +1,8 @@
import { toast } from '@affine/component'; import { toast } from '@affine/component';
import type { DraggableTitleCellData } from '@affine/component/page-list'; import type { DraggableTitleCellData } from '@affine/component/page-list';
import { usePageMetaHelper } from '@affine/core/hooks/use-block-suite-page-meta'; import { usePageMetaHelper } from '@affine/core/hooks/use-block-suite-page-meta';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import type { DragEndEvent, UniqueIdentifier } from '@dnd-kit/core'; import type { DragEndEvent, UniqueIdentifier } from '@dnd-kit/core';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useCallback } from 'react'; import { useCallback } from 'react';

View File

@@ -1,5 +1,5 @@
import { useBlockSuiteWorkspacePage } from '@affine/core/hooks/use-block-suite-workspace-page'; import { useBlockSuiteWorkspacePage } from '@affine/core/hooks/use-block-suite-workspace-page';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom'; import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { currentPageIdAtom } from '../../atoms/mode'; import { currentPageIdAtom } from '../../atoms/mode';

View File

@@ -1,5 +1,5 @@
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { useAtom, useAtomValue, useStore } from 'jotai'; import { useAtom, useAtomValue, useStore } from 'jotai';
import { useTheme } from 'next-themes'; import { useTheme } from 'next-themes';
import { useEffect } from 'react'; import { useEffect } from 'react';

View File

@@ -1,4 +1,4 @@
import { workspaceManagerAtom } from '@affine/workspace/atom'; import { workspaceManagerAtom } from '@affine/core/modules/workspace';
import type { WorkspaceMetadata } from '@affine/workspace/metadata'; import type { WorkspaceMetadata } from '@affine/workspace/metadata';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';

View File

@@ -1,5 +1,5 @@
import { workspaceManagerAtom } from '@affine/core/modules/workspace';
import type { WorkspaceMetadata } from '@affine/workspace'; import type { WorkspaceMetadata } from '@affine/workspace';
import { workspaceManagerAtom } from '@affine/workspace/atom';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';

View File

@@ -1,5 +1,5 @@
import { workspaceManagerAtom } from '@affine/core/modules/workspace';
import type { Workspace } from '@affine/workspace'; import type { Workspace } from '@affine/workspace';
import { workspaceManagerAtom } from '@affine/workspace/atom';
import type { WorkspaceMetadata } from '@affine/workspace/metadata'; import type { WorkspaceMetadata } from '@affine/workspace/metadata';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';

View File

@@ -9,7 +9,7 @@ import {
import { MainContainer, WorkspaceFallback } from '@affine/component/workspace'; import { MainContainer, WorkspaceFallback } from '@affine/component/workspace';
import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta';
import { useWorkspaceStatus } from '@affine/core/hooks/use-workspace-status'; import { useWorkspaceStatus } from '@affine/core/hooks/use-workspace-status';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom'; import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { import {
DndContext, DndContext,

View File

@@ -1,10 +1,13 @@
import { DebugLogger } from '@affine/debug'; import { DebugLogger } from '@affine/debug';
import {
type Workspace,
workspaceManager,
type WorkspaceMetadata,
} from '@affine/workspace';
import { atom } from 'jotai'; import { atom } from 'jotai';
import { atomWithObservable } from 'jotai/utils'; import { atomWithObservable } from 'jotai/utils';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { type Workspace, workspaceManager, type WorkspaceMetadata } from '.';
const logger = new DebugLogger('affine:workspace:atom'); const logger = new DebugLogger('affine:workspace:atom');
// readonly atom for workspace manager, currently only one workspace manager is supported // readonly atom for workspace manager, currently only one workspace manager is supported

View File

@@ -0,0 +1 @@
export * from './atoms';

View File

@@ -1,6 +1,6 @@
import { Menu } from '@affine/component/ui/menu'; import { Menu } from '@affine/component/ui/menu';
import { WorkspaceFallback } from '@affine/component/workspace'; import { WorkspaceFallback } from '@affine/component/workspace';
import { workspaceListAtom } from '@affine/workspace/atom'; import { workspaceListAtom } from '@affine/core/modules/workspace';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { lazy, useEffect, useLayoutEffect, useState } from 'react'; import { lazy, useEffect, useLayoutEffect, useState } from 'react';
import { type LoaderFunction, redirect } from 'react-router-dom'; import { type LoaderFunction, redirect } from 'react-router-dom';

View File

@@ -3,8 +3,8 @@ import {
SaveAsCollectionButton, SaveAsCollectionButton,
useCollectionManager, useCollectionManager,
} from '@affine/component/page-list'; } from '@affine/component/page-list';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import type { Collection, Filter } from '@affine/env/filter'; import type { Collection, Filter } from '@affine/env/filter';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';
import { useCallback } from 'react'; import { useCallback } from 'react';

View File

@@ -10,9 +10,9 @@ import {
VirtualizedPageList, VirtualizedPageList,
} from '@affine/component/page-list'; } from '@affine/component/page-list';
import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { Trans } from '@affine/i18n'; import { Trans } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { import {
CloseIcon, CloseIcon,
DeleteIcon, DeleteIcon,

View File

@@ -11,10 +11,10 @@ import {
} from '@affine/component/page-list'; } from '@affine/component/page-list';
import { WindowsAppControls } from '@affine/core/components/pure/header/windows-app-controls'; import { WindowsAppControls } from '@affine/core/components/pure/header/windows-app-controls';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks'; import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import type { Collection } from '@affine/env/filter'; import type { Collection } from '@affine/env/filter';
import { Trans } from '@affine/i18n'; import { Trans } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { import {
CloseIcon, CloseIcon,
FilterIcon, FilterIcon,

View File

@@ -6,9 +6,9 @@ import {
import { ResizePanel } from '@affine/component/resize-panel'; import { ResizePanel } from '@affine/component/resize-panel';
import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta';
import { useWorkspaceStatus } from '@affine/core/hooks/use-workspace-status'; import { useWorkspaceStatus } from '@affine/core/hooks/use-workspace-status';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { WorkspaceSubPath } from '@affine/env/workspace'; import { WorkspaceSubPath } from '@affine/env/workspace';
import { globalBlockSuiteSchema, SyncEngineStep } from '@affine/workspace'; import { globalBlockSuiteSchema, SyncEngineStep } from '@affine/workspace';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import type { AffineEditorContainer } from '@blocksuite/presets'; import type { AffineEditorContainer } from '@blocksuite/presets';
import type { Page, Workspace } from '@blocksuite/store'; import type { Page, Workspace } from '@blocksuite/store';
import { appSettingAtom } from '@toeverything/infra/atom'; import { appSettingAtom } from '@toeverything/infra/atom';

View File

@@ -1,12 +1,12 @@
import { WorkspaceFallback } from '@affine/component/workspace'; import { WorkspaceFallback } from '@affine/component/workspace';
import { useWorkspace } from '@affine/core/hooks/use-workspace'; import { useWorkspace } from '@affine/core/hooks/use-workspace';
import { type Workspace } from '@affine/workspace';
import { import {
currentWorkspaceAtom, currentWorkspaceAtom,
workspaceListAtom, workspaceListAtom,
workspaceListLoadingStatusAtom, workspaceListLoadingStatusAtom,
workspaceManagerAtom, workspaceManagerAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { type Workspace } from '@affine/workspace';
import { useAtom, useAtomValue } from 'jotai'; import { useAtom, useAtomValue } from 'jotai';
import { type ReactElement, Suspense, useEffect, useMemo } from 'react'; import { type ReactElement, Suspense, useEffect, useMemo } from 'react';
import { Outlet, useParams } from 'react-router-dom'; import { Outlet, useParams } from 'react-router-dom';

View File

@@ -5,8 +5,8 @@ import {
VirtualizedPageList, VirtualizedPageList,
} from '@affine/component/page-list'; } from '@affine/component/page-list';
import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta'; import { useBlockSuitePageMeta } from '@affine/core/hooks/use-block-suite-page-meta';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { DeleteIcon } from '@blocksuite/icons'; import { DeleteIcon } from '@blocksuite/icons';
import type { PageMeta } from '@blocksuite/store'; import type { PageMeta } from '@blocksuite/store';

View File

@@ -1,10 +1,9 @@
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
import { WorkspaceFlavour, WorkspaceSubPath } from '@affine/env/workspace';
import { import {
currentWorkspaceAtom, currentWorkspaceAtom,
waitForCurrentWorkspaceAtom, waitForCurrentWorkspaceAtom,
workspaceListAtom, workspaceListAtom,
} from '@affine/workspace/atom'; } from '@affine/core/modules/workspace';
import { WorkspaceFlavour, WorkspaceSubPath } from '@affine/env/workspace';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { useAtom, useAtomValue } from 'jotai'; import { useAtom, useAtomValue } from 'jotai';
import type { ReactElement } from 'react'; import type { ReactElement } from 'react';
@@ -19,6 +18,7 @@ import {
openSignOutModalAtom, openSignOutModalAtom,
} from '../atoms'; } from '../atoms';
import { PaymentDisableModal } from '../components/affine/payment-disable'; import { PaymentDisableModal } from '../components/affine/payment-disable';
import { useAsyncCallback } from '../hooks/affine-async-hooks';
import { useNavigateHelper } from '../hooks/use-navigate-helper'; import { useNavigateHelper } from '../hooks/use-navigate-helper';
import { signOutCloud } from '../utils/cloud-utils'; import { signOutCloud } from '../utils/cloud-utils';

View File

@@ -19,7 +19,7 @@ import type { Preview } from '@storybook/react';
import { useLayoutEffect, useRef } from 'react'; import { useLayoutEffect, useRef } from 'react';
import { setup } from '@affine/core/bootstrap/setup'; import { setup } from '@affine/core/bootstrap/setup';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { currentWorkspaceAtom } from '@affine/workspace/atom'; import { currentWorkspaceAtom } from '@affine/core/modules/workspace';
setupGlobal(); setupGlobal();
export const parameters = { export const parameters = {

View File

@@ -1,6 +1,6 @@
import { BlockSuiteEditor } from '@affine/component/block-suite-editor'; import { BlockSuiteEditor } from '@affine/component/block-suite-editor';
import { ImagePreviewModal } from '@affine/core/components/image-preview'; import { ImagePreviewModal } from '@affine/core/components/image-preview';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom'; import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import type { Page } from '@blocksuite/store'; import type { Page } from '@blocksuite/store';
import type { Meta } from '@storybook/react'; import type { Meta } from '@storybook/react';
import { initEmptyPage } from '@toeverything/infra/blocksuite'; import { initEmptyPage } from '@toeverything/infra/blocksuite';

View File

@@ -6,9 +6,9 @@ import {
import { CMDKQuickSearchModal } from '@affine/core/components/pure/cmdk'; import { CMDKQuickSearchModal } from '@affine/core/components/pure/cmdk';
import { HighlightLabel } from '@affine/core/components/pure/cmdk/highlight'; import { HighlightLabel } from '@affine/core/components/pure/cmdk/highlight';
import { useWorkspace } from '@affine/core/hooks/use-workspace'; import { useWorkspace } from '@affine/core/hooks/use-workspace';
import { currentWorkspaceAtom } from '@affine/core/modules/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { currentWorkspaceAtom } from '@affine/workspace/atom';
import type { Page } from '@blocksuite/store'; import type { Page } from '@blocksuite/store';
import type { Meta, StoryFn } from '@storybook/react'; import type { Meta, StoryFn } from '@storybook/react';
import { useStore } from 'jotai'; import { useStore } from 'jotai';

View File

@@ -1,8 +1,8 @@
import { toast } from '@affine/component'; import { toast } from '@affine/component';
import { PublicLinkDisableModal } from '@affine/component/disable-public-link'; import { PublicLinkDisableModal } from '@affine/component/disable-public-link';
import { ShareMenu } from '@affine/core/components/affine/share-page-modal/share-menu'; import { ShareMenu } from '@affine/core/components/affine/share-page-modal/share-menu';
import { waitForCurrentWorkspaceAtom } from '@affine/core/modules/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace'; import { WorkspaceFlavour } from '@affine/env/workspace';
import { waitForCurrentWorkspaceAtom } from '@affine/workspace/atom';
import { type Page } from '@blocksuite/store'; import { type Page } from '@blocksuite/store';
import { expect } from '@storybook/jest'; import { expect } from '@storybook/jest';
import type { Meta, StoryFn } from '@storybook/react'; import type { Meta, StoryFn } from '@storybook/react';

View File

@@ -1,6 +1,6 @@
import type { WorkspaceListProps } from '@affine/component/workspace-list'; import type { WorkspaceListProps } from '@affine/component/workspace-list';
import { WorkspaceList } from '@affine/component/workspace-list'; import { WorkspaceList } from '@affine/component/workspace-list';
import { workspaceListAtom } from '@affine/workspace/atom'; import { workspaceListAtom } from '@affine/core/modules/workspace';
import type { Meta } from '@storybook/react'; import type { Meta } from '@storybook/react';
import { useAtomValue } from 'jotai'; import { useAtomValue } from 'jotai';