diff --git a/optuna_dashboard/ts/components/DeleteStudyDialog.tsx b/optuna_dashboard/ts/components/DeleteStudyDialog.tsx index 14312e06..d4e4dc9b 100644 --- a/optuna_dashboard/ts/components/DeleteStudyDialog.tsx +++ b/optuna_dashboard/ts/components/DeleteStudyDialog.tsx @@ -1,10 +1,13 @@ import { + Alert, Button, + Checkbox, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, + FormControlLabel, } from "@mui/material" import React, { ReactNode, useState } from "react" import { actionCreator } from "../action" @@ -17,16 +20,18 @@ export const useDeleteStudyDialog = (): [ const [openDeleteStudyDialog, setOpenDeleteStudyDialog] = useState(false) const [deleteStudyID, setDeleteStudyID] = useState(-1) + const [removeAssociatedArtifacts, setRemoveAssociatedArtifacts] = + useState(false) const handleCloseDeleteStudyDialog = () => { setOpenDeleteStudyDialog(false) setDeleteStudyID(-1) + setRemoveAssociatedArtifacts(false) } const handleDeleteStudy = () => { - action.deleteStudy(deleteStudyID) - setOpenDeleteStudyDialog(false) - setDeleteStudyID(-1) + action.deleteStudy(deleteStudyID, removeAssociatedArtifacts) + handleCloseDeleteStudyDialog() } const openDialog = (studyId: number) => { @@ -42,12 +47,29 @@ export const useDeleteStudyDialog = (): [ handleCloseDeleteStudyDialog() }} aria-labelledby="delete-study-dialog-title" + fullWidth + maxWidth="xs" > Delete study Are you sure you want to delete a study (id={deleteStudyID})? + setRemoveAssociatedArtifacts((cur) => !cur)} + /> + } + /> + {removeAssociatedArtifacts && ( + + If articles are linked to another study or trial, they will no + longer be accessible from that study or trial as well. + + )}