mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-04 02:49:57 +08:00
fix:delete workspace will jump to 404
This commit is contained in:
@@ -132,7 +132,6 @@ export const WorkspaceModal = ({ open, onClose }: WorkspaceModalProps) => {
|
|||||||
onClose={async wait => {
|
onClose={async wait => {
|
||||||
if (!wait) {
|
if (!wait) {
|
||||||
await logout();
|
await logout();
|
||||||
router.push(`/workspace`);
|
|
||||||
}
|
}
|
||||||
setLogoutOpen(false);
|
setLogoutOpen(false);
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import {
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { ModalCloseButton } from '@/ui/modal';
|
import { ModalCloseButton } from '@/ui/modal';
|
||||||
import { Button } from '@/ui/button';
|
import { Button } from '@/ui/button';
|
||||||
import { useRouter } from 'next/router';
|
|
||||||
|
|
||||||
import { WorkspaceUnit } from '@affine/datacenter';
|
import { WorkspaceUnit } from '@affine/datacenter';
|
||||||
import { Trans, useTranslation } from '@affine/i18n';
|
import { Trans, useTranslation } from '@affine/i18n';
|
||||||
@@ -30,7 +29,6 @@ export const WorkspaceDelete = ({
|
|||||||
}: WorkspaceDeleteProps) => {
|
}: WorkspaceDeleteProps) => {
|
||||||
const [deleteStr, setDeleteStr] = useState<string>('');
|
const [deleteStr, setDeleteStr] = useState<string>('');
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const router = useRouter();
|
|
||||||
const { deleteWorkSpace } = useWorkspaceHelper();
|
const { deleteWorkSpace } = useWorkspaceHelper();
|
||||||
const handlerInputChange = (workspaceName: string) => {
|
const handlerInputChange = (workspaceName: string) => {
|
||||||
setDeleteStr(workspaceName);
|
setDeleteStr(workspaceName);
|
||||||
@@ -39,7 +37,6 @@ export const WorkspaceDelete = ({
|
|||||||
const handleDelete = async () => {
|
const handleDelete = async () => {
|
||||||
await deleteWorkSpace();
|
await deleteWorkSpace();
|
||||||
onClose();
|
onClose();
|
||||||
router.push(`/workspace`);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { useRouter } from 'next/router';
|
|||||||
// Cause it not just ensure workspace loaded, but also have router change.
|
// Cause it not just ensure workspace loaded, but also have router change.
|
||||||
export const useEnsureWorkspace = () => {
|
export const useEnsureWorkspace = () => {
|
||||||
const [workspaceLoaded, setWorkspaceLoaded] = useState(false);
|
const [workspaceLoaded, setWorkspaceLoaded] = useState(false);
|
||||||
const { workspaceList, loadWorkspace, user } = useAppState();
|
const { dataCenter, loadWorkspace, user } = useAppState();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const [activeWorkspaceId, setActiveWorkspaceId] = useState(
|
const [activeWorkspaceId, setActiveWorkspaceId] = useState(
|
||||||
router.query.workspaceId as string
|
router.query.workspaceId as string
|
||||||
@@ -17,14 +17,14 @@ export const useEnsureWorkspace = () => {
|
|||||||
// If router.query.workspaceId is not in workspace list, jump to 404 page
|
// If router.query.workspaceId is not in workspace list, jump to 404 page
|
||||||
// If workspaceList is empty, we need to create a default workspace but not jump to 404
|
// If workspaceList is empty, we need to create a default workspace but not jump to 404
|
||||||
if (
|
if (
|
||||||
workspaceList.length &&
|
dataCenter.workspaces.length &&
|
||||||
// FIXME: router is not ready when this hook is called
|
// FIXME: router is not ready when this hook is called
|
||||||
location.pathname.startsWith(`/workspace/${router.query.workspaceId}`) &&
|
location.pathname.startsWith(`/workspace/${router.query.workspaceId}`) &&
|
||||||
workspaceList.findIndex(
|
dataCenter.workspaces.findIndex(
|
||||||
meta => meta.id.toString() === router.query.workspaceId
|
meta => meta.id.toString() === router.query.workspaceId
|
||||||
) === -1
|
) === -1
|
||||||
) {
|
) {
|
||||||
router.push('/404');
|
router.push(`/workspace/${dataCenter.workspaces[0].id}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// If user is not login and input a custom workspaceId, jump to 404 page
|
// If user is not login and input a custom workspaceId, jump to 404 page
|
||||||
@@ -37,12 +37,12 @@ export const useEnsureWorkspace = () => {
|
|||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
const workspaceId =
|
const workspaceId =
|
||||||
(router.query.workspaceId as string) || workspaceList[0]?.id;
|
(router.query.workspaceId as string) || dataCenter.workspaces[0]?.id;
|
||||||
loadWorkspace.current(workspaceId).finally(() => {
|
loadWorkspace.current(workspaceId).finally(() => {
|
||||||
setWorkspaceLoaded(true);
|
setWorkspaceLoaded(true);
|
||||||
setActiveWorkspaceId(activeWorkspaceId);
|
setActiveWorkspaceId(activeWorkspaceId);
|
||||||
});
|
});
|
||||||
}, [loadWorkspace, router, user, workspaceList, activeWorkspaceId]);
|
}, [loadWorkspace, router, user, dataCenter.workspaces, activeWorkspaceId]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
workspaceLoaded,
|
workspaceLoaded,
|
||||||
|
|||||||
Reference in New Issue
Block a user