fix: use push when switch workspace (#1049)

This commit is contained in:
Himself65
2023-02-16 00:23:49 -06:00
committed by GitHub
parent fe8831f7ae
commit f6378e8c3b
3 changed files with 10 additions and 10 deletions

View File

@@ -86,7 +86,7 @@ export const WorkspaceModal = ({ open, onClose }: WorkspaceModalProps) => {
<WorkspaceCard
workspaceData={item}
onClick={workspaceData => {
router.replace(`/workspace/${workspaceData.id}/all`);
router.push(`/workspace/${workspaceData.id}/all`);
onClose();
}}
key={index}

View File

@@ -23,7 +23,7 @@ import '@affine/i18n';
import { useTranslation } from '@affine/i18n';
import React from 'react';
import { GlobalAppProvider } from '@/store/app';
import { DataCenterLoader } from '@/store/app/datacenter';
import { DataCenterPreloader } from '@/store/app/datacenter';
const ThemeProvider = dynamic(() => import('@/providers/ThemeProvider'), {
ssr: false,
@@ -81,11 +81,11 @@ const App = ({ Component, pageProps }: AppPropsWithLayout) => {
getLayout(<Component {...pageProps} />)
) : (
<Suspense fallback={<PageLoading />}>
{/* we should put this before every component in case of they read a null value */}
<DataCenterLoader />
<AppDefender>
{getLayout(<Component {...pageProps} />)}
</AppDefender>
<DataCenterPreloader>
<AppDefender>
{getLayout(<Component {...pageProps} />)}
</AppDefender>
</DataCenterPreloader>
</Suspense>
)}
</ProviderComposer>

View File

@@ -7,7 +7,7 @@ import type { DataCenter } from '@affine/datacenter';
import { PageMeta } from '@/providers/app-state-provider';
import { getDataCenter, WorkspaceUnit } from '@affine/datacenter';
import { createDefaultWorkspace } from '@/providers/app-state-provider/utils';
import { useCallback, useEffect } from 'react';
import React, { useCallback, useEffect } from 'react';
import { DisposableGroup } from '@blocksuite/global/utils';
export type DataCenterState = {
@@ -80,7 +80,7 @@ export const createDataCenterActions: GlobalActionsCreator<
},
});
export function DataCenterLoader() {
export function DataCenterPreloader({ children }: React.PropsWithChildren) {
const dataCenter = useGlobalState(useCallback(store => store.dataCenter, []));
const dataCenterPromise = useGlobalState(
useCallback(store => store.dataCenterPromise, [])
@@ -135,5 +135,5 @@ export function DataCenterLoader() {
if (!dataCenter) {
throw dataCenterPromise;
}
return null;
return <>{children}</>;
}