fix(mobile): workspace selector in app-fallback may crash (#9293)
This commit is contained in:
@@ -8,7 +8,11 @@ import {
|
|||||||
WorkspacesService,
|
WorkspacesService,
|
||||||
} from '@affine/core/modules/workspace';
|
} from '@affine/core/modules/workspace';
|
||||||
import { CloseIcon, CollaborationIcon } from '@blocksuite/icons/rc';
|
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 clsx from 'clsx';
|
||||||
import { type HTMLAttributes, useCallback, useMemo } from 'react';
|
import { type HTMLAttributes, useCallback, useMemo } from 'react';
|
||||||
|
|
||||||
@@ -54,17 +58,17 @@ const WorkspaceList = ({
|
|||||||
list: WorkspaceMetadata[];
|
list: WorkspaceMetadata[];
|
||||||
onClose?: () => void;
|
onClose?: () => void;
|
||||||
}) => {
|
}) => {
|
||||||
const currentWorkspace = useService(WorkspaceService).workspace;
|
const currentWorkspace = useServiceOptional(WorkspaceService)?.workspace;
|
||||||
|
|
||||||
const { jumpToPage } = useNavigateHelper();
|
const { jumpToPage } = useNavigateHelper();
|
||||||
const toggleWorkspace = useCallback(
|
const toggleWorkspace = useCallback(
|
||||||
(id: string) => {
|
(id: string) => {
|
||||||
if (id !== currentWorkspace.id) {
|
if (id !== currentWorkspace?.id) {
|
||||||
jumpToPage(id, 'home');
|
jumpToPage(id, 'home');
|
||||||
}
|
}
|
||||||
onClose?.();
|
onClose?.();
|
||||||
},
|
},
|
||||||
[currentWorkspace.id, jumpToPage, onClose]
|
[currentWorkspace?.id, jumpToPage, onClose]
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!list.length) return null;
|
if (!list.length) return null;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import type { RouteObject } from 'react-router-dom';
|
|||||||
import {
|
import {
|
||||||
createBrowserRouter as reactRouterCreateBrowserRouter,
|
createBrowserRouter as reactRouterCreateBrowserRouter,
|
||||||
redirect,
|
redirect,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
// oxlint-disable-next-line @typescript-eslint/no-restricted-imports
|
||||||
useNavigate,
|
useNavigate,
|
||||||
} from 'react-router-dom';
|
} from 'react-router-dom';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user