Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7a30235

Browse files
committed
fix: display error message on delete workspace error
1 parent0f3a1e9 commit7a30235

File tree

3 files changed

+43
-4
lines changed

3 files changed

+43
-4
lines changed

‎site/src/modules/workspaces/ErrorDialog/WorkspaceErrorDialog.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ interface WorkspaceErrorDialogProps {
1919
workspaceOwner:string;
2020
workspaceName:string;
2121
templateVersionId:string;
22+
isDeleting:boolean;
2223
}
2324

2425
exportconstWorkspaceErrorDialog:FC<WorkspaceErrorDialogProps>=({
@@ -29,6 +30,7 @@ export const WorkspaceErrorDialog: FC<WorkspaceErrorDialogProps> = ({
2930
workspaceOwner,
3031
workspaceName,
3132
templateVersionId,
33+
isDeleting,
3234
})=>{
3335
constnavigate=useNavigate();
3436

@@ -52,7 +54,9 @@ export const WorkspaceErrorDialog: FC<WorkspaceErrorDialogProps> = ({
5254
<Dialogopen={open}onOpenChange={(isOpen)=>!isOpen&&onClose()}>
5355
<DialogContentvariant="destructive">
5456
<DialogHeader>
55-
<DialogTitle>Error building workspace</DialogTitle>
57+
<DialogTitle>
58+
Error{isDeleting ?"deleting" :"building"} workspace
59+
</DialogTitle>
5660
<DialogDescriptionclassName="flex flex-row gap-4">
5761
<strongclassName="text-content-primary">Message</strong>{" "}
5862
<span>{getErrorMessage(error,"Failed to build workspace.")}</span>

‎site/src/modules/workspaces/WorkspaceMoreActions/WorkspaceMoreActions.tsx

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import{MissingBuildParameters}from"api/api";
2+
import{isApiError}from"api/errors";
3+
import{typeApiError,getErrorMessage}from"api/errors";
24
import{
35
changeVersion,
46
deleteWorkspace,
@@ -13,6 +15,7 @@ import {
1315
DropdownMenuSeparator,
1416
DropdownMenuTrigger,
1517
}from"components/DropdownMenu/DropdownMenu";
18+
import{displayError}from"components/GlobalSnackbar/utils";
1619
import{
1720
CopyIcon,
1821
DownloadIcon,
@@ -24,6 +27,7 @@ import {
2427
import{typeFC,useEffect,useState}from"react";
2528
import{useMutation,useQuery,useQueryClient}from"react-query";
2629
import{LinkasRouterLink}from"react-router-dom";
30+
import{WorkspaceErrorDialog}from"../ErrorDialog/WorkspaceErrorDialog";
2731
import{ChangeWorkspaceVersionDialog}from"./ChangeWorkspaceVersionDialog";
2832
import{DownloadLogsDialog}from"./DownloadLogsDialog";
2933
import{UpdateBuildParametersDialog}from"./UpdateBuildParametersDialog";
@@ -42,6 +46,11 @@ export const WorkspaceMoreActions: FC<WorkspaceMoreActionsProps> = ({
4246
})=>{
4347
constqueryClient=useQueryClient();
4448

49+
const[workspaceErrorDialog,setWorkspaceErrorDialog]=useState<{
50+
open:boolean;
51+
error?:ApiError;
52+
}>({open:false});
53+
4554
// Permissions
4655
const{data:permissions}=useQuery(workspacePermissions(workspace));
4756

@@ -58,11 +67,25 @@ export const WorkspaceMoreActions: FC<WorkspaceMoreActionsProps> = ({
5867
),
5968
);
6069

70+
consthandleError=(error:unknown)=>{
71+
if(isApiError(error)&&error.code==="ERR_BAD_REQUEST"){
72+
setWorkspaceErrorDialog({
73+
open:true,
74+
error:error,
75+
});
76+
}else{
77+
displayError(getErrorMessage(error,"Failed to delete workspace."));
78+
}
79+
};
80+
6181
// Delete
6282
const[isConfirmingDelete,setIsConfirmingDelete]=useState(false);
63-
constdeleteWorkspaceMutation=useMutation(
64-
deleteWorkspace(workspace,queryClient),
65-
);
83+
constdeleteWorkspaceMutation=useMutation({
84+
...deleteWorkspace(workspace,queryClient),
85+
onError:(error:unknown)=>{
86+
handleError(error);
87+
},
88+
});
6689

6790
// Duplicate
6891
const{ duplicateWorkspace, isDuplicationReady}=
@@ -212,6 +235,17 @@ export const WorkspaceMoreActions: FC<WorkspaceMoreActionsProps> = ({
212235
setIsConfirmingDelete(false);
213236
}}
214237
/>
238+
239+
<WorkspaceErrorDialog
240+
open={workspaceErrorDialog.open}
241+
error={workspaceErrorDialog.error}
242+
onClose={()=>setWorkspaceErrorDialog({open:false})}
243+
showDetail={workspace.template_use_classic_parameter_flow}
244+
workspaceOwner={workspace.owner_name}
245+
workspaceName={workspace.name}
246+
templateVersionId={workspace.latest_build.template_version_id}
247+
isDeleting={true}
248+
/>
215249
</>
216250
);
217251
};

‎site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ export const WorkspaceReadyPage: FC<WorkspaceReadyPageProps> = ({
392392
workspaceOwner={workspace.owner_name}
393393
workspaceName={workspace.name}
394394
templateVersionId={workspace.latest_build.template_version_id}
395+
isDeleting={false}
395396
/>
396397
</>
397398
);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp