From 01173babe68a564c67e89e1ce5c185d741d880bc Mon Sep 17 00:00:00 2001 From: Himself65 Date: Mon, 22 May 2023 15:48:01 +0800 Subject: [PATCH] refactor: rename `plugins` to `adapters` (#2480) --- .../affine/__tests__/index.spec.tsx | 0 .../{plugins => adapters}/affine/fetcher.ts | 0 .../{plugins => adapters}/affine/index.tsx | 9 ++---- .../src/{plugins => adapters}/local/index.tsx | 29 +++++++++++++++---- apps/web/src/adapters/type.tsx | 21 ++++++++++++++ .../index.tsx => adapters/workspace.ts} | 18 ++---------- apps/web/src/atoms/__tests__/atom.spec.ts | 2 +- apps/web/src/atoms/index.ts | 2 +- apps/web/src/atoms/root.ts | 3 +- .../affine/workspace-setting-detail/index.tsx | 2 +- .../header-right-items/sync-user.tsx | 2 +- .../components/pure/message-center/index.tsx | 2 +- apps/web/src/hooks/__tests__/index.spec.tsx | 1 - .../hooks/__tests__/use-recent-views.spec.tsx | 15 +++++----- .../web/src/hooks/affine/use-affine-log-in.ts | 2 +- .../src/hooks/affine/use-affine-log-out.ts | 2 +- .../affine/use-affine-refresh-auth-token.ts | 2 +- apps/web/src/hooks/affine/use-members.ts | 2 +- .../affine/use-toggle-workspace-publish.ts | 2 +- .../src/hooks/affine/use-users-by-email.ts | 2 +- .../hooks/root/use-on-transform-workspace.ts | 2 +- apps/web/src/hooks/use-transform-workspace.ts | 2 +- apps/web/src/hooks/use-workspaces.ts | 4 +-- apps/web/src/layouts/workspace-layout.tsx | 2 +- apps/web/src/pages/invite/[invite-code].tsx | 2 +- .../workspace/[workspaceId]/[pageId].tsx | 2 +- .../src/pages/workspace/[workspaceId]/all.tsx | 2 +- .../pages/workspace/[workspaceId]/setting.tsx | 2 +- .../providers/affine-swr-config-provider.tsx | 2 +- apps/web/src/shared/apis.ts | 7 ++++- 30 files changed, 87 insertions(+), 58 deletions(-) rename apps/web/src/{plugins => adapters}/affine/__tests__/index.spec.tsx (100%) rename apps/web/src/{plugins => adapters}/affine/fetcher.ts (100%) rename apps/web/src/{plugins => adapters}/affine/index.tsx (97%) rename apps/web/src/{plugins => adapters}/local/index.tsx (82%) create mode 100644 apps/web/src/adapters/type.tsx rename apps/web/src/{plugins/index.tsx => adapters/workspace.ts} (77%) diff --git a/apps/web/src/plugins/affine/__tests__/index.spec.tsx b/apps/web/src/adapters/affine/__tests__/index.spec.tsx similarity index 100% rename from apps/web/src/plugins/affine/__tests__/index.spec.tsx rename to apps/web/src/adapters/affine/__tests__/index.spec.tsx diff --git a/apps/web/src/plugins/affine/fetcher.ts b/apps/web/src/adapters/affine/fetcher.ts similarity index 100% rename from apps/web/src/plugins/affine/fetcher.ts rename to apps/web/src/adapters/affine/fetcher.ts diff --git a/apps/web/src/plugins/affine/index.tsx b/apps/web/src/adapters/affine/index.tsx similarity index 97% rename from apps/web/src/plugins/affine/index.tsx rename to apps/web/src/adapters/affine/index.tsx index ccd884d88b..ec0b3689cd 100644 --- a/apps/web/src/plugins/affine/index.tsx +++ b/apps/web/src/adapters/affine/index.tsx @@ -1,10 +1,9 @@ -import { AFFINE_STORAGE_KEY, config, prefixUrl } from '@affine/env'; +import { AFFINE_STORAGE_KEY, config } from '@affine/env'; import { initPage } from '@affine/env/blocksuite'; import { PageNotFoundError } from '@affine/env/constant'; import { currentAffineUserAtom } from '@affine/workspace/affine/atom'; import { clearLoginStorage, - createAffineAuth, getLoginStorage, isExpired, parseIdToken, @@ -37,9 +36,9 @@ import { PageDetailEditor } from '../../components/page-detail-editor'; import { PageLoading } from '../../components/pure/loading'; import { useAffineRefreshAuthToken } from '../../hooks/affine/use-affine-refresh-auth-token'; import { BlockSuiteWorkspace } from '../../shared'; -import { affineApis } from '../../shared/apis'; +import { affineApis, affineAuth } from '../../shared/apis'; import { toast } from '../../utils'; -import type { WorkspaceAdapter } from '..'; +import type { WorkspaceAdapter } from '../type'; import { QueryKey } from './fetcher'; const storage = createJSONStorage(() => localStorage); @@ -79,8 +78,6 @@ const getPersistenceAllWorkspace = () => { return allWorkspaces; }; -export const affineAuth = createAffineAuth(prefixUrl); - function AuthContext({ children }: PropsWithChildren): ReactElement { const login = useAffineRefreshAuthToken(); diff --git a/apps/web/src/plugins/local/index.tsx b/apps/web/src/adapters/local/index.tsx similarity index 82% rename from apps/web/src/plugins/local/index.tsx rename to apps/web/src/adapters/local/index.tsx index a52b68b383..306d4f2f23 100644 --- a/apps/web/src/plugins/local/index.tsx +++ b/apps/web/src/adapters/local/index.tsx @@ -17,12 +17,31 @@ import { } from '@affine/workspace/type'; import { createEmptyBlockSuiteWorkspace } from '@affine/workspace/utils'; import { nanoid } from '@blocksuite/store'; -import React from 'react'; +import { lazy } from 'react'; -import { WorkspaceSettingDetail } from '../../components/affine/workspace-setting-detail'; -import { BlockSuitePageList } from '../../components/blocksuite/block-suite-page-list'; -import { PageDetailEditor } from '../../components/page-detail-editor'; -import type { WorkspaceAdapter } from '..'; +import type { WorkspaceAdapter } from '../type'; + +const WorkspaceSettingDetail = lazy(() => + import('../../components/affine/workspace-setting-detail').then( + ({ WorkspaceSettingDetail }) => ({ + default: WorkspaceSettingDetail, + }) + ) +); +const BlockSuitePageList = lazy(() => + import('../../components/blocksuite/block-suite-page-list').then( + ({ BlockSuitePageList }) => ({ + default: BlockSuitePageList, + }) + ) +); +const PageDetailEditor = lazy(() => + import('../../components/page-detail-editor').then( + ({ PageDetailEditor }) => ({ + default: PageDetailEditor, + }) + ) +); const logger = new DebugLogger('use-create-first-workspace'); diff --git a/apps/web/src/adapters/type.tsx b/apps/web/src/adapters/type.tsx new file mode 100644 index 0000000000..ec6f374d06 --- /dev/null +++ b/apps/web/src/adapters/type.tsx @@ -0,0 +1,21 @@ +import type { + AppEvents, + WorkspaceCRUD, + WorkspaceUISchema, +} from '@affine/workspace/type'; +import type { + LoadPriority, + ReleaseType, + WorkspaceFlavour, +} from '@affine/workspace/type'; + +export interface WorkspaceAdapter { + releaseType: ReleaseType; + flavour: Flavour; + // Plugin will be loaded according to the priority + loadPriority: LoadPriority; + Events: Partial; + // Fetch necessary data for the first render + CRUD: WorkspaceCRUD; + UI: WorkspaceUISchema; +} diff --git a/apps/web/src/plugins/index.tsx b/apps/web/src/adapters/workspace.ts similarity index 77% rename from apps/web/src/plugins/index.tsx rename to apps/web/src/adapters/workspace.ts index 79d903f887..ae98c231c1 100644 --- a/apps/web/src/plugins/index.tsx +++ b/apps/web/src/adapters/workspace.ts @@ -1,8 +1,4 @@ -import type { - AppEvents, - WorkspaceCRUD, - WorkspaceUISchema, -} from '@affine/workspace/type'; +import type { AppEvents } from '@affine/workspace/type'; import { LoadPriority, ReleaseType, @@ -11,17 +7,7 @@ import { import { AffinePlugin } from './affine'; import { LocalPlugin } from './local'; - -export interface WorkspaceAdapter { - releaseType: ReleaseType; - flavour: Flavour; - // Plugin will be loaded according to the priority - loadPriority: LoadPriority; - Events: Partial; - // Fetch necessary data for the first render - CRUD: WorkspaceCRUD; - UI: WorkspaceUISchema; -} +import type { WorkspaceAdapter } from './type'; const unimplemented = () => { throw new Error('Not implemented'); diff --git a/apps/web/src/atoms/__tests__/atom.spec.ts b/apps/web/src/atoms/__tests__/atom.spec.ts index abbe58dd49..1d49a5854e 100644 --- a/apps/web/src/atoms/__tests__/atom.spec.ts +++ b/apps/web/src/atoms/__tests__/atom.spec.ts @@ -19,7 +19,7 @@ import type { Page } from '@blocksuite/store'; import { createStore } from 'jotai'; import { describe, expect, test } from 'vitest'; -import { WorkspaceAdapters } from '../../plugins'; +import { WorkspaceAdapters } from '../../adapters/workspace'; import { rootCurrentWorkspaceAtom } from '../root'; describe('currentWorkspace atom', () => { diff --git a/apps/web/src/atoms/index.ts b/apps/web/src/atoms/index.ts index 209bd0cf49..c7997330ac 100644 --- a/apps/web/src/atoms/index.ts +++ b/apps/web/src/atoms/index.ts @@ -11,8 +11,8 @@ import type { Page } from '@blocksuite/store'; import { atom } from 'jotai'; import { atomWithStorage } from 'jotai/utils'; +import { WorkspaceAdapters } from '../adapters/workspace'; import type { CreateWorkspaceMode } from '../components/affine/create-workspace-modal'; -import { WorkspaceAdapters } from '../plugins'; const logger = new DebugLogger('web:atoms'); diff --git a/apps/web/src/atoms/root.ts b/apps/web/src/atoms/root.ts index ee8cd4d87f..d4a2908e20 100644 --- a/apps/web/src/atoms/root.ts +++ b/apps/web/src/atoms/root.ts @@ -13,7 +13,6 @@ import { WorkspaceFlavour } from '@affine/workspace/type'; import { assertExists } from '@blocksuite/store'; import { atom } from 'jotai'; -import { WorkspaceAdapters } from '../plugins'; import type { AllWorkspace } from '../shared'; const logger = new DebugLogger('web:atoms:root'); @@ -22,6 +21,7 @@ const logger = new DebugLogger('web:atoms:root'); * Fetch all workspaces from the Plugin CRUD */ export const workspacesAtom = atom>(async get => { + const { WorkspaceAdapters } = await import('../adapters/workspace'); const flavours: string[] = Object.values(WorkspaceAdapters).map( plugin => plugin.flavour ); @@ -82,6 +82,7 @@ export const workspacesAtom = atom>(async get => { */ export const rootCurrentWorkspaceAtom = atom>( async get => { + const { WorkspaceAdapters } = await import('../adapters/workspace'); const metadata = get(rootWorkspacesMetadataAtom); const targetId = get(rootCurrentWorkspaceIdAtom); if (targetId === null) { diff --git a/apps/web/src/components/affine/workspace-setting-detail/index.tsx b/apps/web/src/components/affine/workspace-setting-detail/index.tsx index bcb797cb3c..685bf68676 100644 --- a/apps/web/src/components/affine/workspace-setting-detail/index.tsx +++ b/apps/web/src/components/affine/workspace-setting-detail/index.tsx @@ -6,8 +6,8 @@ import type React from 'react'; import { Suspense, useCallback, useEffect, useMemo, useRef } from 'react'; import { preload } from 'swr'; +import { fetcher, QueryKey } from '../../../adapters/affine/fetcher'; import { useIsWorkspaceOwner } from '../../../hooks/affine/use-is-workspace-owner'; -import { fetcher, QueryKey } from '../../../plugins/affine/fetcher'; import type { AffineOfficialWorkspace } from '../../../shared'; import * as style from './index.css'; import { CollaborationPanel } from './panel/collaboration'; diff --git a/apps/web/src/components/blocksuite/workspace-header/header-right-items/sync-user.tsx b/apps/web/src/components/blocksuite/workspace-header/header-right-items/sync-user.tsx index ce3094a8ba..71f3afb7fa 100644 --- a/apps/web/src/components/blocksuite/workspace-header/header-right-items/sync-user.tsx +++ b/apps/web/src/components/blocksuite/workspace-header/header-right-items/sync-user.tsx @@ -19,8 +19,8 @@ import React, { useEffect, useState } from 'react'; import { useCurrentWorkspace } from '../../../../hooks/current/use-current-workspace'; import { useTransformWorkspace } from '../../../../hooks/use-transform-workspace'; -import { affineAuth } from '../../../../plugins/affine'; import type { AffineOfficialWorkspace } from '../../../../shared'; +import { affineAuth } from '../../../../shared/apis'; import { TransformWorkspaceToAffineModal } from '../../../affine/transform-workspace-to-affine-modal'; const IconWrapper = styled('div')(() => { diff --git a/apps/web/src/components/pure/message-center/index.tsx b/apps/web/src/components/pure/message-center/index.tsx index 586c973acc..8734c2485a 100644 --- a/apps/web/src/components/pure/message-center/index.tsx +++ b/apps/web/src/components/pure/message-center/index.tsx @@ -4,7 +4,7 @@ import type React from 'react'; import { memo, useEffect, useState } from 'react'; import { useAffineLogOut } from '../../../hooks/affine/use-affine-log-out'; -import { affineAuth } from '../../../plugins/affine'; +import { affineAuth } from '../../../shared/apis'; import { toast } from '../../../utils'; declare global { diff --git a/apps/web/src/hooks/__tests__/index.spec.tsx b/apps/web/src/hooks/__tests__/index.spec.tsx index 1e1fcbf11d..c73b0ed4ab 100644 --- a/apps/web/src/hooks/__tests__/index.spec.tsx +++ b/apps/web/src/hooks/__tests__/index.spec.tsx @@ -44,7 +44,6 @@ beforeAll(() => { `/workspace/[workspaceId/${WorkspaceSubPath.ALL}`, `/workspace/[workspaceId/${WorkspaceSubPath.SETTING}`, `/workspace/[workspaceId/${WorkspaceSubPath.TRASH}`, - `/workspace/[workspaceId/${WorkspaceSubPath.FAVORITE}`, '/workspace/[workspaceId]/[pageId]', ]) ); diff --git a/apps/web/src/hooks/__tests__/use-recent-views.spec.tsx b/apps/web/src/hooks/__tests__/use-recent-views.spec.tsx index 44f9834e1d..1cb0c716b7 100644 --- a/apps/web/src/hooks/__tests__/use-recent-views.spec.tsx +++ b/apps/web/src/hooks/__tests__/use-recent-views.spec.tsx @@ -11,14 +11,15 @@ import { __unstableSchemas, AffineSchemas } from '@blocksuite/blocks/models'; import type { Page } from '@blocksuite/store'; import { assertExists } from '@blocksuite/store'; import { renderHook } from '@testing-library/react'; -import { createStore, Provider } from 'jotai/index'; +import { createStore, Provider } from 'jotai'; import { useRouter } from 'next/router'; import routerMock from 'next-router-mock'; import { createDynamicRouteParser } from 'next-router-mock/dynamic-routes'; +import type { FC, PropsWithChildren } from 'react'; import { beforeAll, beforeEach, describe, expect, test, vi } from 'vitest'; +import { LocalPlugin } from '../../adapters/local'; import { workspacesAtom } from '../../atoms'; -import { LocalPlugin } from '../../plugins/local'; import { BlockSuiteWorkspace } from '../../shared'; import { WorkspaceSubPath } from '../../shared'; import { @@ -37,7 +38,6 @@ beforeAll(() => { `/workspace/[workspaceId/${WorkspaceSubPath.ALL}`, `/workspace/[workspaceId/${WorkspaceSubPath.SETTING}`, `/workspace/[workspaceId/${WorkspaceSubPath.TRASH}`, - `/workspace/[workspaceId/${WorkspaceSubPath.FAVORITE}`, '/workspace/[workspaceId]/[pageId]', ]) ); @@ -45,10 +45,11 @@ beforeAll(() => { async function getJotaiContext() { const store = createStore(); - const ProviderWrapper: React.FC = - function ProviderWrapper({ children }) { - return {children}; - }; + const ProviderWrapper: FC = function ProviderWrapper({ + children, + }) { + return {children}; + }; const workspaces = await store.get(workspacesAtom); expect(workspaces.length).toBe(0); return { diff --git a/apps/web/src/hooks/affine/use-affine-log-in.ts b/apps/web/src/hooks/affine/use-affine-log-in.ts index 0f9fd473bd..644cdefd26 100644 --- a/apps/web/src/hooks/affine/use-affine-log-in.ts +++ b/apps/web/src/hooks/affine/use-affine-log-in.ts @@ -2,7 +2,7 @@ import { WorkspaceFlavour } from '@affine/workspace/type'; import { useRouter } from 'next/router'; import { useCallback } from 'react'; -import { WorkspaceAdapters } from '../../plugins'; +import { WorkspaceAdapters } from '../../adapters/workspace'; export function useAffineLogIn() { const router = useRouter(); diff --git a/apps/web/src/hooks/affine/use-affine-log-out.ts b/apps/web/src/hooks/affine/use-affine-log-out.ts index 1b8939f55a..7c3458be37 100644 --- a/apps/web/src/hooks/affine/use-affine-log-out.ts +++ b/apps/web/src/hooks/affine/use-affine-log-out.ts @@ -2,7 +2,7 @@ import { WorkspaceFlavour } from '@affine/workspace/type'; import { useRouter } from 'next/router'; import { useCallback } from 'react'; -import { WorkspaceAdapters } from '../../plugins'; +import { WorkspaceAdapters } from '../../adapters/workspace'; export function useAffineLogOut() { const router = useRouter(); diff --git a/apps/web/src/hooks/affine/use-affine-refresh-auth-token.ts b/apps/web/src/hooks/affine/use-affine-refresh-auth-token.ts index 892264bdb5..42324e6886 100644 --- a/apps/web/src/hooks/affine/use-affine-refresh-auth-token.ts +++ b/apps/web/src/hooks/affine/use-affine-refresh-auth-token.ts @@ -8,7 +8,7 @@ import { } from '@affine/workspace/affine/login'; import useSWR from 'swr'; -import { affineAuth } from '../../plugins/affine'; +import { affineAuth } from '../../shared/apis'; const logger = new DebugLogger('auth-token'); diff --git a/apps/web/src/hooks/affine/use-members.ts b/apps/web/src/hooks/affine/use-members.ts index 46cf5abb4e..cdd68f98b9 100644 --- a/apps/web/src/hooks/affine/use-members.ts +++ b/apps/web/src/hooks/affine/use-members.ts @@ -2,7 +2,7 @@ import type { Member } from '@affine/workspace/affine/api'; import { useCallback } from 'react'; import useSWR from 'swr'; -import { QueryKey } from '../../plugins/affine/fetcher'; +import { QueryKey } from '../../adapters/affine/fetcher'; import { affineApis } from '../../shared/apis'; export function useMembers(workspaceId: string) { diff --git a/apps/web/src/hooks/affine/use-toggle-workspace-publish.ts b/apps/web/src/hooks/affine/use-toggle-workspace-publish.ts index fe886ff187..2ec5c689fe 100644 --- a/apps/web/src/hooks/affine/use-toggle-workspace-publish.ts +++ b/apps/web/src/hooks/affine/use-toggle-workspace-publish.ts @@ -3,7 +3,7 @@ import type { AffineLegacyCloudWorkspace } from '@affine/workspace/type'; import { useCallback } from 'react'; import useSWR from 'swr'; -import { QueryKey } from '../../plugins/affine/fetcher'; +import { QueryKey } from '../../adapters/affine/fetcher'; import { affineApis } from '../../shared/apis'; export function useToggleWorkspacePublish( diff --git a/apps/web/src/hooks/affine/use-users-by-email.ts b/apps/web/src/hooks/affine/use-users-by-email.ts index 0251607b7e..7eaf6da78a 100644 --- a/apps/web/src/hooks/affine/use-users-by-email.ts +++ b/apps/web/src/hooks/affine/use-users-by-email.ts @@ -1,6 +1,6 @@ import useSWR from 'swr'; -import { QueryKey } from '../../plugins/affine/fetcher'; +import { QueryKey } from '../../adapters/affine/fetcher'; export interface QueryEmailMember { id: string; diff --git a/apps/web/src/hooks/root/use-on-transform-workspace.ts b/apps/web/src/hooks/root/use-on-transform-workspace.ts index 025c5ad365..1e7239880d 100644 --- a/apps/web/src/hooks/root/use-on-transform-workspace.ts +++ b/apps/web/src/hooks/root/use-on-transform-workspace.ts @@ -12,7 +12,7 @@ import { WorkspaceFlavour } from '@affine/workspace/type'; import { useSetAtom } from 'jotai'; import { useCallback } from 'react'; -import { affineAuth } from '../../plugins/affine'; +import { affineAuth } from '../../shared/apis'; import { useTransformWorkspace } from '../use-transform-workspace'; export function useOnTransformWorkspace() { diff --git a/apps/web/src/hooks/use-transform-workspace.ts b/apps/web/src/hooks/use-transform-workspace.ts index 3c1bce8217..892dde759b 100644 --- a/apps/web/src/hooks/use-transform-workspace.ts +++ b/apps/web/src/hooks/use-transform-workspace.ts @@ -4,7 +4,7 @@ import type { WorkspaceRegistry } from '@affine/workspace/type'; import { useSetAtom } from 'jotai'; import { useCallback } from 'react'; -import { WorkspaceAdapters } from '../plugins'; +import { WorkspaceAdapters } from '../adapters/workspace'; /** * Transform workspace from one flavour to another diff --git a/apps/web/src/hooks/use-workspaces.ts b/apps/web/src/hooks/use-workspaces.ts index fbbaf602f0..f2a3492084 100644 --- a/apps/web/src/hooks/use-workspaces.ts +++ b/apps/web/src/hooks/use-workspaces.ts @@ -8,9 +8,9 @@ import { nanoid } from '@blocksuite/store'; import { useAtomValue, useSetAtom } from 'jotai'; import { useCallback } from 'react'; +import { LocalPlugin } from '../adapters/local'; +import { WorkspaceAdapters } from '../adapters/workspace'; import { workspacesAtom } from '../atoms'; -import { WorkspaceAdapters } from '../plugins'; -import { LocalPlugin } from '../plugins/local'; import type { AllWorkspace } from '../shared'; export function useWorkspaces(): AllWorkspace[] { diff --git a/apps/web/src/layouts/workspace-layout.tsx b/apps/web/src/layouts/workspace-layout.tsx index 8936c57267..c9c51d963a 100644 --- a/apps/web/src/layouts/workspace-layout.tsx +++ b/apps/web/src/layouts/workspace-layout.tsx @@ -26,6 +26,7 @@ import { useRouter } from 'next/router'; import type { FC, PropsWithChildren, ReactElement } from 'react'; import { lazy, Suspense, useCallback, useEffect, useMemo } from 'react'; +import { WorkspaceAdapters } from '../adapters/workspace'; import { openQuickSearchModalAtom, openWorkspacesModalAtom } from '../atoms'; import { useTrackRouterHistoryEffect } from '../atoms/history'; import { @@ -38,7 +39,6 @@ import { useCurrentWorkspace } from '../hooks/current/use-current-workspace'; import { useRouterHelper } from '../hooks/use-router-helper'; import { useRouterTitle } from '../hooks/use-router-title'; import { useWorkspaces } from '../hooks/use-workspaces'; -import { WorkspaceAdapters } from '../plugins'; import { ModalProvider } from '../providers/modal-provider'; import { pathGenerator, publicPathGenerator } from '../shared'; diff --git a/apps/web/src/pages/invite/[invite-code].tsx b/apps/web/src/pages/invite/[invite-code].tsx index df8a2a1def..6880b8d1b4 100644 --- a/apps/web/src/pages/invite/[invite-code].tsx +++ b/apps/web/src/pages/invite/[invite-code].tsx @@ -11,9 +11,9 @@ import { useRouter } from 'next/router'; import { Suspense } from 'react'; import useSWR from 'swr'; +import { QueryKey } from '../../adapters/affine/fetcher'; import { PageLoading } from '../../components/pure/loading'; import { RouteLogic, useRouterHelper } from '../../hooks/use-router-helper'; -import { QueryKey } from '../../plugins/affine/fetcher'; import type { NextPageWithLayout } from '../../shared'; import { WorkspaceSubPath } from '../../shared'; diff --git a/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx b/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx index 146d103ab7..39a9d8f4ce 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/[pageId].tsx @@ -15,6 +15,7 @@ import { useRouter } from 'next/router'; import type React from 'react'; import { useCallback, useEffect } from 'react'; +import { WorkspaceAdapters } from '../../../adapters/workspace'; import { rootCurrentWorkspaceAtom } from '../../../atoms/root'; import { useReferenceLinkEffect } from '../../../hooks/affine/use-reference-link-effect'; import { useCurrentWorkspace } from '../../../hooks/current/use-current-workspace'; @@ -22,7 +23,6 @@ import { usePinboardHandler } from '../../../hooks/use-pinboard-handler'; import { useSyncRecentViewsWithRouter } from '../../../hooks/use-recent-views'; import { useRouterHelper } from '../../../hooks/use-router-helper'; import { WorkspaceLayout } from '../../../layouts/workspace-layout'; -import { WorkspaceAdapters } from '../../../plugins'; import type { BlockSuiteWorkspace, NextPageWithLayout } from '../../../shared'; function setEditorFlags(blockSuiteWorkspace: BlockSuiteWorkspace) { diff --git a/apps/web/src/pages/workspace/[workspaceId]/all.tsx b/apps/web/src/pages/workspace/[workspaceId]/all.tsx index 9793daadae..32d355f14a 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/all.tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/all.tsx @@ -7,12 +7,12 @@ import Head from 'next/head'; import { useRouter } from 'next/router'; import React, { useCallback } from 'react'; +import { WorkspaceAdapters } from '../../../adapters/workspace'; import { PageLoading } from '../../../components/pure/loading'; import { WorkspaceTitle } from '../../../components/pure/workspace-title'; import { useCurrentWorkspace } from '../../../hooks/current/use-current-workspace'; import { useRouterHelper } from '../../../hooks/use-router-helper'; import { WorkspaceLayout } from '../../../layouts/workspace-layout'; -import { WorkspaceAdapters } from '../../../plugins'; import type { NextPageWithLayout } from '../../../shared'; const AllPage: NextPageWithLayout = () => { diff --git a/apps/web/src/pages/workspace/[workspaceId]/setting.tsx b/apps/web/src/pages/workspace/[workspaceId]/setting.tsx index 11b3e6de5e..0540c1540c 100644 --- a/apps/web/src/pages/workspace/[workspaceId]/setting.tsx +++ b/apps/web/src/pages/workspace/[workspaceId]/setting.tsx @@ -16,13 +16,13 @@ import type { NextRouter } from 'next/router'; import { useRouter } from 'next/router'; import React, { useCallback, useEffect } from 'react'; +import { WorkspaceAdapters } from '../../../adapters/workspace'; import { PageLoading } from '../../../components/pure/loading'; import { WorkspaceTitle } from '../../../components/pure/workspace-title'; import { useCurrentWorkspace } from '../../../hooks/current/use-current-workspace'; import { useOnTransformWorkspace } from '../../../hooks/root/use-on-transform-workspace'; import { useAppHelper } from '../../../hooks/use-workspaces'; import { WorkspaceLayout } from '../../../layouts/workspace-layout'; -import { WorkspaceAdapters } from '../../../plugins'; import type { NextPageWithLayout } from '../../../shared'; import { toast } from '../../../utils'; diff --git a/apps/web/src/providers/affine-swr-config-provider.tsx b/apps/web/src/providers/affine-swr-config-provider.tsx index eeef5cc24b..8d588caa63 100644 --- a/apps/web/src/providers/affine-swr-config-provider.tsx +++ b/apps/web/src/providers/affine-swr-config-provider.tsx @@ -3,7 +3,7 @@ import { memo } from 'react'; import type { SWRConfiguration } from 'swr'; import { SWRConfig } from 'swr'; -import { fetcher } from '../plugins/affine/fetcher'; +import { fetcher } from '../adapters/affine/fetcher'; const config: SWRConfiguration = { suspense: true, diff --git a/apps/web/src/shared/apis.ts b/apps/web/src/shared/apis.ts index 2884e798df..4ef4041158 100644 --- a/apps/web/src/shared/apis.ts +++ b/apps/web/src/shared/apis.ts @@ -6,9 +6,14 @@ import { } from '@affine/workspace/affine/api'; import { currentAffineUserAtom } from '@affine/workspace/affine/atom'; import type { LoginResponse } from '@affine/workspace/affine/login'; -import { parseIdToken, setLoginStorage } from '@affine/workspace/affine/login'; +import { + createAffineAuth, + parseIdToken, + setLoginStorage, +} from '@affine/workspace/affine/login'; import { rootStore } from '@affine/workspace/atom'; +export const affineAuth = createAffineAuth(prefixUrl); const affineApis = {} as ReturnType & ReturnType; Object.assign(affineApis, createUserApis(prefixUrl));