feat: refresh workspaces after create and delete

This commit is contained in:
MingLiang Wang
2022-12-22 22:44:22 +08:00
parent a55dd77541
commit d89f19e542
6 changed files with 18 additions and 5 deletions
@@ -13,6 +13,7 @@ import { ModalCloseButton } from '@/ui/modal';
import { Button } from '@/ui/button';
import { deleteWorkspace } from '@pathfinder/data-services';
import { useRouter } from 'next/router';
import { useAppState } from '@/providers/app-state-provider';
interface WorkspaceDeleteProps {
open: boolean;
@@ -31,6 +32,7 @@ export const WorkspaceDelete = ({
}: WorkspaceDeleteProps) => {
const [deleteStr, setDeleteStr] = useState<string>('');
const router = useRouter();
const { refreshWorkspacesMeta } = useAppState();
const handlerInputChange = (workspaceName: string) => {
setDeleteStr(workspaceName);
@@ -39,6 +41,7 @@ export const WorkspaceDelete = ({
const handleDelete = async () => {
await deleteWorkspace({ id: workspaceId });
router.push(`/workspace/${nextWorkSpaceId}`);
refreshWorkspacesMeta();
onClose();
};
@@ -103,10 +103,8 @@ export const SelectorPopperContent = ({
workspaces[id] = workspace;
});
console.log('workspaces', workspaces);
setWorkspaces(workspaces);
}, []);
}, [workspacesMeta]);
useEffect(() => {
if (isShow) {
@@ -17,6 +17,7 @@ import {
import { useState } from 'react';
import { ModalCloseButton } from '@/ui/modal';
import router from 'next/router';
import { useAppState } from '@/providers/app-state-provider';
interface WorkspaceCreateProps {
open: boolean;
@@ -34,6 +35,7 @@ const DefaultHeadImgColors = [
export const WorkspaceCreate = ({ open, onClose }: WorkspaceCreateProps) => {
const [workspaceName, setWorkspaceId] = useState<string>('');
const [canCreate, setCanCreate] = useState<boolean>(false);
const { refreshWorkspacesMeta } = useAppState();
const handlerInputChange = (workspaceName: string) => {
setWorkspaceId(workspaceName);
};
@@ -74,6 +76,7 @@ export const WorkspaceCreate = ({ open, onClose }: WorkspaceCreateProps) => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
router.push(`/workspace/${data.created_at}`);
refreshWorkspacesMeta();
onClose();
})
.catch(err => {