From 7c76c25a9ca259cfc458cc70b79934b7bcccb393 Mon Sep 17 00:00:00 2001 From: EYHN Date: Tue, 5 Mar 2024 07:01:24 +0000 Subject: [PATCH] refactor(core): new back&forward button base on workbench (#6012) # feature: ## In Browser: - hidden back&forward button in sidebar. - back and forward is equal with `window.history.back()` `window.history.forward()` ## In Desktop: - Back and forward can be controlled through the sidebar, cmdk, and shortcut keys. - back and forward act on the currently **active** view. - buttons change disable&enable style based on current active view history # Refactor: Move app-sidebar and app-container from @affine/component to @affine/core --- packages/common/infra/src/livedata/index.ts | 2 +- .../app-sidebar/sidebar-header/index.tsx | 99 -------- .../component/src/ui/scrollbar/index.ts | 1 + .../component/src/ui/scrollbar/scrollbar.tsx | 2 +- .../scrollbar}/use-has-scroll-top.tsx | 0 packages/frontend/core/src/app.tsx | 2 +- packages/frontend/core/src/atoms/guide.ts | 3 +- packages/frontend/core/src/atoms/history.ts | 106 --------- .../core/src/commands/affine-layout.tsx | 3 +- .../src/components/affine/app-container.tsx | 5 +- .../components/affine/hub-island/index.tsx | 3 +- .../app-sidebar/add-page-button/index.css.ts | 0 .../add-page-button/index.stories.tsx | 0 .../app-sidebar/add-page-button/index.tsx | 0 .../app-download-button/index.css.ts | 0 .../app-sidebar/app-download-button/index.tsx | 0 .../app-updater-button/dot-animation.svg | 0 .../app-updater-button/index.css.ts | 0 .../app-sidebar/app-updater-button/index.tsx | 2 +- .../app-sidebar/category-divider/index.css.ts | 0 .../category-divider/index.stories.tsx | 0 .../app-sidebar/category-divider/index.tsx | 0 .../components/app-sidebar/fallback.css.ts | 0 .../src/components/app-sidebar/index.css.ts | 0 .../src/components/app-sidebar/index.jotai.ts | 0 .../src/components/app-sidebar/index.tsx | 18 +- .../app-sidebar/menu-item/index.css.ts | 0 .../app-sidebar/menu-item/index.stories.tsx | 0 .../app-sidebar/menu-item/index.tsx | 0 .../quick-search-input/index.css.ts | 0 .../quick-search-input/index.stories.tsx | 0 .../app-sidebar/quick-search-input/index.tsx | 0 .../sidebar-containers/index.css.ts | 0 .../app-sidebar/sidebar-containers/index.tsx | 4 +- .../app-sidebar/sidebar-header/index.tsx | 23 ++ .../sidebar-header/sidebar-switch.css.ts | 0 .../sidebar-header/sidebar-switch.tsx | 3 +- .../app-sidebar/spolight/index.css.ts | 0 .../app-sidebar/spolight/index.stories.tsx | 0 .../components/app-sidebar/spolight/index.tsx | 0 .../core/src/components/page-list/list.tsx | 3 +- .../core/src/components/pure/header/index.tsx | 5 +- .../pure/workspace-mode-filter-tab/index.tsx | 18 +- .../collections/collections-list.tsx | 2 +- .../workspace-slider-bar/collections/page.tsx | 2 +- .../components/reference-page.tsx | 2 +- .../favorite/favourite-page.tsx | 2 +- .../root-app-sidebar/import-page.tsx | 2 +- .../src/components/root-app-sidebar/index.tsx | 51 ++-- .../root-app-sidebar/journal-button.tsx | 3 +- .../root-app-sidebar/updater-button.tsx | 3 +- .../src/components/workspace/index.css.ts | 0 .../src/components/workspace/index.tsx | 0 .../src/hooks/affine/use-sidebar-status.ts | 3 +- .../core/src/layouts/workspace-layout.tsx | 10 +- .../modules/navigation/entities/navigator.ts | 55 +++++ .../core/src/modules/navigation/index.ts | 2 + .../navigation/view/navigation-buttons.css.ts | 13 ++ .../navigation/view/navigation-buttons.tsx | 100 ++++++++ .../view/use-register-navigation-commands.ts} | 15 +- .../frontend/core/src/modules/services.ts | 2 + .../src/modules/workbench/entities/view.ts | 25 +- .../modules/workbench/entities/workbench.ts | 15 +- .../modules/workbench/view/desktop-adapter.ts | 7 + .../workbench/view/route-container.tsx | 8 +- packages/frontend/core/src/pages/index.tsx | 2 +- .../src/pages/share/share-detail-page.tsx | 2 +- .../workspace/all-collection/index.css.ts | 9 + .../pages/workspace/all-collection/index.tsx | 41 ++-- .../detail-page/detail-page-header.tsx | 2 +- .../workspace/detail-page/detail-page.tsx | 3 +- .../core/src/pages/workspace/index.tsx | 2 +- .../core/src/utils/navigable-history.ts | 221 ++++++++++++++++++ tests/affine-desktop/e2e/basic.spec.ts | 8 +- tests/affine-local/e2e/navigation.spec.ts | 44 ++++ .../src/stories/app-sidebar.stories.tsx | 14 +- .../stories/app-updater-button.stories.tsx | 2 +- 77 files changed, 625 insertions(+), 349 deletions(-) delete mode 100644 packages/frontend/component/src/components/app-sidebar/sidebar-header/index.tsx rename packages/frontend/component/src/{components/app-sidebar/sidebar-containers => ui/scrollbar}/use-has-scroll-top.tsx (100%) delete mode 100644 packages/frontend/core/src/atoms/history.ts rename packages/frontend/{component => core}/src/components/app-sidebar/add-page-button/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/add-page-button/index.stories.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/add-page-button/index.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/app-download-button/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/app-download-button/index.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/app-updater-button/dot-animation.svg (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/app-updater-button/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/app-updater-button/index.tsx (99%) rename packages/frontend/{component => core}/src/components/app-sidebar/category-divider/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/category-divider/index.stories.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/category-divider/index.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/fallback.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/index.jotai.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/index.tsx (91%) rename packages/frontend/{component => core}/src/components/app-sidebar/menu-item/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/menu-item/index.stories.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/menu-item/index.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/quick-search-input/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/quick-search-input/index.stories.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/quick-search-input/index.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/sidebar-containers/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/sidebar-containers/index.tsx (90%) create mode 100644 packages/frontend/core/src/components/app-sidebar/sidebar-header/index.tsx rename packages/frontend/{component => core}/src/components/app-sidebar/sidebar-header/sidebar-switch.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/sidebar-header/sidebar-switch.tsx (92%) rename packages/frontend/{component => core}/src/components/app-sidebar/spolight/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/spolight/index.stories.tsx (100%) rename packages/frontend/{component => core}/src/components/app-sidebar/spolight/index.tsx (100%) rename packages/frontend/{component => core}/src/components/workspace/index.css.ts (100%) rename packages/frontend/{component => core}/src/components/workspace/index.tsx (100%) create mode 100644 packages/frontend/core/src/modules/navigation/entities/navigator.ts create mode 100644 packages/frontend/core/src/modules/navigation/index.ts create mode 100644 packages/frontend/core/src/modules/navigation/view/navigation-buttons.css.ts create mode 100644 packages/frontend/core/src/modules/navigation/view/navigation-buttons.tsx rename packages/frontend/core/src/{hooks/use-browser-history-commands.ts => modules/navigation/view/use-register-navigation-commands.ts} (77%) create mode 100644 packages/frontend/core/src/pages/workspace/all-collection/index.css.ts create mode 100644 packages/frontend/core/src/utils/navigable-history.ts create mode 100644 tests/affine-local/e2e/navigation.spec.ts diff --git a/packages/common/infra/src/livedata/index.ts b/packages/common/infra/src/livedata/index.ts index 49aeeb7bab..cc9259a9b1 100644 --- a/packages/common/infra/src/livedata/index.ts +++ b/packages/common/infra/src/livedata/index.ts @@ -182,7 +182,7 @@ export class LiveData implements InteropObservable { } subscribe( - observer: Partial> | ((value: T) => void) | undefined + observer?: Partial> | ((value: T) => void) | undefined ): Subscription { this.ops.next('watch'); const subscription = this.raw.subscribe(observer); diff --git a/packages/frontend/component/src/components/app-sidebar/sidebar-header/index.tsx b/packages/frontend/component/src/components/app-sidebar/sidebar-header/index.tsx deleted file mode 100644 index 09c0e5491f..0000000000 --- a/packages/frontend/component/src/components/app-sidebar/sidebar-header/index.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { useAFFiNEI18N } from '@affine/i18n/hooks'; -import { ArrowLeftSmallIcon, ArrowRightSmallIcon } from '@blocksuite/icons'; -import { useAtomValue } from 'jotai'; -import { useMemo } from 'react'; - -import { IconButton } from '../../../ui/button'; -import { Tooltip } from '../../../ui/tooltip'; -import type { History } from '..'; -import { - navHeaderButton, - navHeaderNavigationButtons, - navHeaderStyle, -} from '../index.css'; -import { appSidebarOpenAtom } from '../index.jotai'; -import { SidebarSwitch } from './sidebar-switch'; - -export type SidebarHeaderProps = { - router?: { - back: () => unknown; - forward: () => unknown; - history: History; - }; - generalShortcutsInfo?: { - shortcuts: { - [title: string]: string[]; - }; - }; -}; - -export const SidebarHeader = (props: SidebarHeaderProps) => { - const open = useAtomValue(appSidebarOpenAtom); - const t = useAFFiNEI18N(); - - const shortcuts = props.generalShortcutsInfo?.shortcuts; - const shortcutsObject = useMemo(() => { - const goBack = t['com.affine.keyboardShortcuts.goBack'](); - const goBackShortcut = shortcuts?.[goBack]; - - const goForward = t['com.affine.keyboardShortcuts.goForward'](); - const goForwardShortcut = shortcuts?.[goForward]; - return { - goBack, - goBackShortcut, - goForward, - goForwardShortcut, - }; - }, [shortcuts, t]); - - return ( -
- -
- - { - props.router?.back(); - }} - > - - - - - 0 && - props.router.history.current === - props.router.history.stack.length - 1) || - props.router.history.stack.length === 0 - : true - } - onClick={() => { - props.router?.forward(); - }} - > - - - -
-
- ); -}; - -export * from './sidebar-switch'; diff --git a/packages/frontend/component/src/ui/scrollbar/index.ts b/packages/frontend/component/src/ui/scrollbar/index.ts index e493a30b9a..e46131e1d3 100644 --- a/packages/frontend/component/src/ui/scrollbar/index.ts +++ b/packages/frontend/component/src/ui/scrollbar/index.ts @@ -1,2 +1,3 @@ export * from './scrollable'; export * from './scrollbar'; +export * from './use-has-scroll-top'; diff --git a/packages/frontend/component/src/ui/scrollbar/scrollbar.tsx b/packages/frontend/component/src/ui/scrollbar/scrollbar.tsx index 0d4827b595..d082ce5e2f 100644 --- a/packages/frontend/component/src/ui/scrollbar/scrollbar.tsx +++ b/packages/frontend/component/src/ui/scrollbar/scrollbar.tsx @@ -2,8 +2,8 @@ import * as ScrollArea from '@radix-ui/react-scroll-area'; import clsx from 'clsx'; import { type PropsWithChildren, useRef } from 'react'; -import { useHasScrollTop } from '../../components/app-sidebar/sidebar-containers/use-has-scroll-top'; import * as styles from './index.css'; +import { useHasScrollTop } from './use-has-scroll-top'; export type ScrollableContainerProps = { showScrollTopBorder?: boolean; diff --git a/packages/frontend/component/src/components/app-sidebar/sidebar-containers/use-has-scroll-top.tsx b/packages/frontend/component/src/ui/scrollbar/use-has-scroll-top.tsx similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/sidebar-containers/use-has-scroll-top.tsx rename to packages/frontend/component/src/ui/scrollbar/use-has-scroll-top.tsx diff --git a/packages/frontend/core/src/app.tsx b/packages/frontend/core/src/app.tsx index 1cd7018504..228b02f8b9 100644 --- a/packages/frontend/core/src/app.tsx +++ b/packages/frontend/core/src/app.tsx @@ -4,7 +4,6 @@ import '@affine/component/theme/theme.css'; import { AffineContext } from '@affine/component/context'; import { GlobalLoading } from '@affine/component/global-loading'; import { NotificationCenter } from '@affine/component/notification-center'; -import { WorkspaceFallback } from '@affine/component/workspace'; import { createI18n, setUpLanguage } from '@affine/i18n'; import { CacheProvider } from '@emotion/react'; import { getCurrentStore } from '@toeverything/infra/atom'; @@ -13,6 +12,7 @@ import type { PropsWithChildren, ReactElement } from 'react'; import { lazy, memo, Suspense } from 'react'; import { RouterProvider } from 'react-router-dom'; +import { WorkspaceFallback } from './components/workspace'; import { GlobalScopeProvider } from './modules/infra-web/global-scope'; import { CloudSessionProvider } from './providers/session-provider'; import { router } from './router'; diff --git a/packages/frontend/core/src/atoms/guide.ts b/packages/frontend/core/src/atoms/guide.ts index b49d72d940..3c40f9e6b1 100644 --- a/packages/frontend/core/src/atoms/guide.ts +++ b/packages/frontend/core/src/atoms/guide.ts @@ -1,8 +1,9 @@ // these atoms cannot be moved to @affine/jotai since they use atoms from @affine/component -import { appSidebarOpenAtom } from '@affine/component/app-sidebar'; import { atom } from 'jotai'; import { atomWithStorage } from 'jotai/utils'; +import { appSidebarOpenAtom } from '../components/app-sidebar'; + export type Guide = { // should show quick search tips quickSearchTips: boolean; diff --git a/packages/frontend/core/src/atoms/history.ts b/packages/frontend/core/src/atoms/history.ts deleted file mode 100644 index 69364f8a2c..0000000000 --- a/packages/frontend/core/src/atoms/history.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { useAtom } from 'jotai'; -import { atomWithStorage, createJSONStorage } from 'jotai/utils'; -import { useCallback } from 'react'; -// eslint-disable-next-line @typescript-eslint/no-restricted-imports -import { useNavigate } from 'react-router-dom'; - -import { router } from '../router'; - -export type History = { - stack: string[]; - current: number; - skip: boolean; -}; - -export const MAX_HISTORY = 50; - -const historyBaseAtom = atomWithStorage( - 'router-history', - { - stack: [], - current: 0, - skip: false, - }, - createJSONStorage(() => sessionStorage) -); - -historyBaseAtom.onMount = set => { - const unsubscribe = router.subscribe(state => { - set(prev => { - const url = state.location.pathname; - - // if stack top is the same as current, skip - if (prev.stack[prev.current] === url) { - return prev; - } - - if (prev.skip) { - return { - stack: [...prev.stack], - current: prev.current, - skip: false, - }; - } else { - if (prev.current < prev.stack.length - 1) { - const newStack = prev.stack.slice(0, prev.current); - newStack.push(url); - if (newStack.length > MAX_HISTORY) { - newStack.shift(); - } - return { - stack: newStack, - current: newStack.length - 1, - skip: false, - }; - } else { - const newStack = [...prev.stack, url]; - if (newStack.length > MAX_HISTORY) { - newStack.shift(); - } - return { - stack: newStack, - current: newStack.length - 1, - skip: false, - }; - } - } - }); - }); - return () => { - unsubscribe(); - }; -}; - -export function useHistoryAtom() { - const navigate = useNavigate(); - const [base, setBase] = useAtom(historyBaseAtom); - return [ - base, - useCallback( - (forward: boolean) => { - setBase(prev => { - if (forward) { - const target = Math.min(prev.stack.length - 1, prev.current + 1); - const url = prev.stack[target]; - navigate(url); - return { - ...prev, - current: target, - skip: true, - }; - } else { - const target = Math.max(0, prev.current - 1); - const url = prev.stack[target]; - navigate(url); - return { - ...prev, - current: target, - skip: true, - }; - } - }); - }, - [setBase, navigate] - ), - ] as const; -} diff --git a/packages/frontend/core/src/commands/affine-layout.tsx b/packages/frontend/core/src/commands/affine-layout.tsx index 48a3887b1a..5ecf74037f 100644 --- a/packages/frontend/core/src/commands/affine-layout.tsx +++ b/packages/frontend/core/src/commands/affine-layout.tsx @@ -1,9 +1,10 @@ -import { appSidebarOpenAtom } from '@affine/component/app-sidebar'; import type { useAFFiNEI18N } from '@affine/i18n/hooks'; import { SidebarIcon } from '@blocksuite/icons'; import { registerAffineCommand } from '@toeverything/infra/command'; import type { createStore } from 'jotai'; +import { appSidebarOpenAtom } from '../components/app-sidebar'; + export function registerAffineLayoutCommands({ t, store, diff --git a/packages/frontend/core/src/components/affine/app-container.tsx b/packages/frontend/core/src/components/affine/app-container.tsx index a11152f37b..d680931ad9 100644 --- a/packages/frontend/core/src/components/affine/app-container.tsx +++ b/packages/frontend/core/src/components/affine/app-container.tsx @@ -1,9 +1,8 @@ +import { useAppSettingHelper } from '../../hooks/affine/use-app-setting-helper'; import { AppContainer as AppContainerWithoutSettings, type WorkspaceRootProps, -} from '@affine/component/workspace'; - -import { useAppSettingHelper } from '../../hooks/affine/use-app-setting-helper'; +} from '../workspace'; export const AppContainer = (props: WorkspaceRootProps) => { const { appSettings } = useAppSettingHelper(); diff --git a/packages/frontend/core/src/components/affine/hub-island/index.tsx b/packages/frontend/core/src/components/affine/hub-island/index.tsx index 732c220b82..f0eafb9615 100644 --- a/packages/frontend/core/src/components/affine/hub-island/index.tsx +++ b/packages/frontend/core/src/components/affine/hub-island/index.tsx @@ -1,6 +1,5 @@ -import { ToolContainer } from '@affine/component/workspace'; - import { HelpIsland } from '../../pure/help-island'; +import { ToolContainer } from '../../workspace'; export const HubIsland = () => { return ( diff --git a/packages/frontend/component/src/components/app-sidebar/add-page-button/index.css.ts b/packages/frontend/core/src/components/app-sidebar/add-page-button/index.css.ts similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/add-page-button/index.css.ts rename to packages/frontend/core/src/components/app-sidebar/add-page-button/index.css.ts diff --git a/packages/frontend/component/src/components/app-sidebar/add-page-button/index.stories.tsx b/packages/frontend/core/src/components/app-sidebar/add-page-button/index.stories.tsx similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/add-page-button/index.stories.tsx rename to packages/frontend/core/src/components/app-sidebar/add-page-button/index.stories.tsx diff --git a/packages/frontend/component/src/components/app-sidebar/add-page-button/index.tsx b/packages/frontend/core/src/components/app-sidebar/add-page-button/index.tsx similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/add-page-button/index.tsx rename to packages/frontend/core/src/components/app-sidebar/add-page-button/index.tsx diff --git a/packages/frontend/component/src/components/app-sidebar/app-download-button/index.css.ts b/packages/frontend/core/src/components/app-sidebar/app-download-button/index.css.ts similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/app-download-button/index.css.ts rename to packages/frontend/core/src/components/app-sidebar/app-download-button/index.css.ts diff --git a/packages/frontend/component/src/components/app-sidebar/app-download-button/index.tsx b/packages/frontend/core/src/components/app-sidebar/app-download-button/index.tsx similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/app-download-button/index.tsx rename to packages/frontend/core/src/components/app-sidebar/app-download-button/index.tsx diff --git a/packages/frontend/component/src/components/app-sidebar/app-updater-button/dot-animation.svg b/packages/frontend/core/src/components/app-sidebar/app-updater-button/dot-animation.svg similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/app-updater-button/dot-animation.svg rename to packages/frontend/core/src/components/app-sidebar/app-updater-button/dot-animation.svg diff --git a/packages/frontend/component/src/components/app-sidebar/app-updater-button/index.css.ts b/packages/frontend/core/src/components/app-sidebar/app-updater-button/index.css.ts similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/app-updater-button/index.css.ts rename to packages/frontend/core/src/components/app-sidebar/app-updater-button/index.css.ts diff --git a/packages/frontend/component/src/components/app-sidebar/app-updater-button/index.tsx b/packages/frontend/core/src/components/app-sidebar/app-updater-button/index.tsx similarity index 99% rename from packages/frontend/component/src/components/app-sidebar/app-updater-button/index.tsx rename to packages/frontend/core/src/components/app-sidebar/app-updater-button/index.tsx index d183c068c9..aeee9fc946 100644 --- a/packages/frontend/component/src/components/app-sidebar/app-updater-button/index.tsx +++ b/packages/frontend/core/src/components/app-sidebar/app-updater-button/index.tsx @@ -1,10 +1,10 @@ +import { Tooltip } from '@affine/component'; import { Unreachable } from '@affine/env/constant'; import { useAFFiNEI18N } from '@affine/i18n/hooks'; import { CloseIcon, NewIcon, ResetIcon } from '@blocksuite/icons'; import clsx from 'clsx'; import { useCallback, useMemo } from 'react'; -import { Tooltip } from '../../../ui/tooltip'; import * as styles from './index.css'; export interface AddPageButtonProps { diff --git a/packages/frontend/component/src/components/app-sidebar/category-divider/index.css.ts b/packages/frontend/core/src/components/app-sidebar/category-divider/index.css.ts similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/category-divider/index.css.ts rename to packages/frontend/core/src/components/app-sidebar/category-divider/index.css.ts diff --git a/packages/frontend/component/src/components/app-sidebar/category-divider/index.stories.tsx b/packages/frontend/core/src/components/app-sidebar/category-divider/index.stories.tsx similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/category-divider/index.stories.tsx rename to packages/frontend/core/src/components/app-sidebar/category-divider/index.stories.tsx diff --git a/packages/frontend/component/src/components/app-sidebar/category-divider/index.tsx b/packages/frontend/core/src/components/app-sidebar/category-divider/index.tsx similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/category-divider/index.tsx rename to packages/frontend/core/src/components/app-sidebar/category-divider/index.tsx diff --git a/packages/frontend/component/src/components/app-sidebar/fallback.css.ts b/packages/frontend/core/src/components/app-sidebar/fallback.css.ts similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/fallback.css.ts rename to packages/frontend/core/src/components/app-sidebar/fallback.css.ts diff --git a/packages/frontend/component/src/components/app-sidebar/index.css.ts b/packages/frontend/core/src/components/app-sidebar/index.css.ts similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/index.css.ts rename to packages/frontend/core/src/components/app-sidebar/index.css.ts diff --git a/packages/frontend/component/src/components/app-sidebar/index.jotai.ts b/packages/frontend/core/src/components/app-sidebar/index.jotai.ts similarity index 100% rename from packages/frontend/component/src/components/app-sidebar/index.jotai.ts rename to packages/frontend/core/src/components/app-sidebar/index.jotai.ts diff --git a/packages/frontend/component/src/components/app-sidebar/index.tsx b/packages/frontend/core/src/components/app-sidebar/index.tsx similarity index 91% rename from packages/frontend/component/src/components/app-sidebar/index.tsx rename to packages/frontend/core/src/components/app-sidebar/index.tsx index f10925c6cb..c51c6b6468 100644 --- a/packages/frontend/component/src/components/app-sidebar/index.tsx +++ b/packages/frontend/core/src/components/app-sidebar/index.tsx @@ -1,10 +1,10 @@ +import { Skeleton } from '@affine/component'; +import { ResizePanel } from '@affine/component/resize-panel'; import { useAtom, useAtomValue } from 'jotai'; import { debounce } from 'lodash-es'; import type { PropsWithChildren, ReactElement } from 'react'; import { useEffect } from 'react'; -import { Skeleton } from '../../ui/skeleton'; -import { ResizePanel } from '../resize-panel'; import { fallbackHeaderStyle, fallbackStyle } from './fallback.css'; import { floatingMaxWidth, @@ -21,14 +21,11 @@ import { appSidebarResizingAtom, appSidebarWidthAtom, } from './index.jotai'; -import type { SidebarHeaderProps } from './sidebar-header'; import { SidebarHeader } from './sidebar-header'; -export type AppSidebarProps = PropsWithChildren< - SidebarHeaderProps & { - hasBackground?: boolean; - } ->; +export type AppSidebarProps = PropsWithChildren<{ + hasBackground?: boolean; +}>; export type History = { stack: string[]; @@ -97,10 +94,7 @@ export function AppSidebar(props: AppSidebarProps): ReactElement { data-has-background={environment.isDesktop && props.hasBackground} >