From a29519a9fc465d362a4b62ac9f0acf6e91eab9f6 Mon Sep 17 00:00:00 2001 From: CatsJuice Date: Wed, 25 Dec 2024 01:59:16 +0000 Subject: [PATCH] fix(mobile): workspace selector in app-fallback may crash (#9293) --- .../mobile/components/workspace-selector/menu.tsx | 12 ++++++++---- packages/frontend/core/src/mobile/router.tsx | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/frontend/core/src/mobile/components/workspace-selector/menu.tsx b/packages/frontend/core/src/mobile/components/workspace-selector/menu.tsx index 966fd390c3..bcc58ed3a3 100644 --- a/packages/frontend/core/src/mobile/components/workspace-selector/menu.tsx +++ b/packages/frontend/core/src/mobile/components/workspace-selector/menu.tsx @@ -8,7 +8,11 @@ import { WorkspacesService, } from '@affine/core/modules/workspace'; import { CloseIcon, CollaborationIcon } from '@blocksuite/icons/rc'; -import { useLiveData, useService } from '@toeverything/infra'; +import { + useLiveData, + useService, + useServiceOptional, +} from '@toeverything/infra'; import clsx from 'clsx'; import { type HTMLAttributes, useCallback, useMemo } from 'react'; @@ -54,17 +58,17 @@ const WorkspaceList = ({ list: WorkspaceMetadata[]; onClose?: () => void; }) => { - const currentWorkspace = useService(WorkspaceService).workspace; + const currentWorkspace = useServiceOptional(WorkspaceService)?.workspace; const { jumpToPage } = useNavigateHelper(); const toggleWorkspace = useCallback( (id: string) => { - if (id !== currentWorkspace.id) { + if (id !== currentWorkspace?.id) { jumpToPage(id, 'home'); } onClose?.(); }, - [currentWorkspace.id, jumpToPage, onClose] + [currentWorkspace?.id, jumpToPage, onClose] ); if (!list.length) return null; diff --git a/packages/frontend/core/src/mobile/router.tsx b/packages/frontend/core/src/mobile/router.tsx index 83842e6ad7..0993519166 100644 --- a/packages/frontend/core/src/mobile/router.tsx +++ b/packages/frontend/core/src/mobile/router.tsx @@ -5,7 +5,7 @@ import type { RouteObject } from 'react-router-dom'; import { createBrowserRouter as reactRouterCreateBrowserRouter, redirect, - // eslint-disable-next-line @typescript-eslint/no-restricted-imports + // oxlint-disable-next-line @typescript-eslint/no-restricted-imports useNavigate, } from 'react-router-dom';