@@ -65,6 +65,7 @@ const CreateProjectDatasetTypeControl = function (
6565 setPrebuildDataset,
6666 listPrebuildDataset,
6767 isLoadingPrebuildDataset,
68+ isCreatingProject,
6869 } = props ;
6970
7071 const onChangeNumberOfDatasetImagesSlider = (
@@ -98,7 +99,7 @@ const CreateProjectDatasetTypeControl = function (
9899 < Box >
99100 < FormControlLabel
100101 value = { value }
101- control = { < Radio /> }
102+ control = { < Radio disabled = { isCreatingProject } /> }
102103 label = { label }
103104 onClick = { ( ) => setDatasetProjectType ( value ) }
104105 />
@@ -114,6 +115,7 @@ const CreateProjectDatasetTypeControl = function (
114115 value = { prebuildDataset }
115116 disablePortal
116117 loading = { isLoadingPrebuildDataset }
118+ disabled = { isCreatingProject }
117119 options = { listPrebuildDataset }
118120 getOptionLabel = { ( option ) => option . name }
119121 onChange = { ( _ , selectedPrebuildDataset ) => {
@@ -150,6 +152,7 @@ const CreateProjectDatasetTypeControl = function (
150152 prebuildDataset ?. totalImage ||
151153 MIN_DATASET_IMAGES_CREATE_PROJECT
152154 }
155+ disabled = { isCreatingProject }
153156 />
154157 < Input
155158 value = { numberOfDatasetImages }
@@ -164,6 +167,7 @@ const CreateProjectDatasetTypeControl = function (
164167 type : "number" ,
165168 "aria-labelledby" : "input-number-of-dataset-images-slider" ,
166169 } }
170+ disabled = { isCreatingProject }
167171 />
168172 </ Box >
169173 </ Box >
@@ -179,6 +183,7 @@ const CreateProjectModal = function (props: CreateProjectModalProps) {
179183 register,
180184 handleSubmit,
181185 formState : { errors } ,
186+ reset,
182187 } = useForm < CreateProjectFields > ( {
183188 mode : "onChange" ,
184189 defaultValues : {
@@ -229,6 +234,13 @@ const CreateProjectModal = function (props: CreateProjectModalProps) {
229234 ( state : RootState ) => state . projectReducer . isCreatingProject
230235 ) ;
231236
237+ const resetFormData = ( ) => {
238+ reset ( ) ;
239+ setPrebuildDataset ( null ) ;
240+ setDatasetProjectType ( EMPTY_DATASET_CREATE_PROJECT_DATASET_TYPE_VALUE ) ;
241+ setNumberOfDatasetImages ( 1 ) ;
242+ } ;
243+
232244 const onSubmitCreateProject = ( fields : CreateProjectFields ) => {
233245 if (
234246 datasetProjectType === EXISTING_DATASET_CREATE_PROJECT_DATASET_TYPE_VALUE
@@ -239,24 +251,34 @@ const CreateProjectModal = function (props: CreateProjectModalProps) {
239251 numberRadom : numberOfDatasetImages ,
240252 } ;
241253 } else {
242- toast . error ( "Please select one prebuild dataset" ) ;
254+ toast . error ( "Please select one prebuild dataset. " ) ;
243255 return ;
244256 }
245257 }
246258
247259 dispatch ( { type : CREATE_PROJECT . REQUESTED , payload : fields } ) ;
260+ resetFormData ( ) ;
261+ } ;
262+
263+ const onCloseModal = ( ) => {
264+ if ( ! isLoading ) {
265+ if ( handleClose ) {
266+ handleClose ( ) ;
267+ }
268+ resetFormData ( ) ;
269+ }
248270 } ;
249271
250272 return (
251273 < Modal
252274 open = { isOpen }
253- onClose = { ! isLoading ? handleClose : undefined }
275+ onClose = { ! isLoading ? onCloseModal : undefined }
254276 disableEscapeKeyDown
255277 >
256278 < Box sx = { { ...modalStyle , width : 700 } } >
257279 < IconButton
258280 sx = { modalCloseStyle }
259- onClick = { ! isLoading ? handleClose : undefined }
281+ onClick = { ! isLoading ? onCloseModal : undefined }
260282 >
261283 < CancelIcon fontSize = "large" />
262284 </ IconButton >
@@ -343,6 +365,7 @@ const CreateProjectModal = function (props: CreateProjectModalProps) {
343365 setPrebuildDataset = { setPrebuildDataset }
344366 listPrebuildDataset = { listPrebuildDataset }
345367 isLoadingPrebuildDataset = { isLoadingPrebuildDataset }
368+ isCreatingProject = { isLoading }
346369 />
347370 </ Box >
348371 ) ;
0 commit comments