6
6
Modal as SemiUIModal ,
7
7
} from "@douyinfe/semi-ui" ;
8
8
import { DB , MODAL , STATUS } from "../../../data/constants" ;
9
- import { useState } from "react" ;
9
+ import { useEffect , useState } from "react" ;
10
10
import { db } from "../../../data/db" ;
11
11
import {
12
12
useAreas ,
@@ -48,8 +48,6 @@ export default function Modal({
48
48
setModal,
49
49
title,
50
50
setTitle,
51
- prevTitle,
52
- setPrevTitle,
53
51
setDiagramId,
54
52
exportData,
55
53
setExportData,
@@ -65,6 +63,7 @@ export default function Modal({
65
63
const { setTasks } = useTasks ( ) ;
66
64
const { setTransform } = useTransform ( ) ;
67
65
const { setUndoStack, setRedoStack } = useUndoRedo ( ) ;
66
+ const [ uncontrolledTitle , setUncontrolledTitle ] = useStateCallback ( title ) ;
68
67
const [ importSource , setImportSource ] = useState ( {
69
68
src : "" ,
70
69
overwrite : true ,
@@ -78,6 +77,12 @@ export default function Modal({
78
77
const [ selectedDiagramId , setSelectedDiagramId ] = useState ( 0 ) ;
79
78
const [ saveAsTitle , setSaveAsTitle ] = useState ( title ) ;
80
79
80
+ useEffect ( ( ) => {
81
+ if ( title !== uncontrolledTitle ) {
82
+ setUncontrolledTitle ( title ) ;
83
+ }
84
+ } , [ title ] ) ;
85
+
81
86
const overwriteDiagram = ( ) => {
82
87
setTables ( importData . tables ) ;
83
88
setRelationships ( importData . relationships ) ;
@@ -212,7 +217,7 @@ export default function Modal({
212
217
setModal ( MODAL . NONE ) ;
213
218
return ;
214
219
case MODAL . RENAME :
215
- setPrevTitle ( title ) ;
220
+ setTitle ( uncontrolledTitle ) ;
216
221
setModal ( MODAL . NONE ) ;
217
222
return ;
218
223
case MODAL . SAVEAS :
@@ -256,7 +261,9 @@ export default function Modal({
256
261
/>
257
262
) ;
258
263
case MODAL . RENAME :
259
- return < Rename title = { title } setTitle = { setTitle } /> ;
264
+ return (
265
+ < Rename title = { uncontrolledTitle } setTitle = { setUncontrolledTitle } />
266
+ ) ;
260
267
case MODAL . OPEN :
261
268
return (
262
269
< Open
@@ -339,7 +346,7 @@ export default function Modal({
339
346
} ) ;
340
347
} }
341
348
onCancel = { ( ) => {
342
- if ( modal === MODAL . RENAME ) setTitle ( prevTitle ) ;
349
+ if ( modal === MODAL . RENAME ) setUncontrolledTitle ( title ) ;
343
350
setModal ( MODAL . NONE ) ;
344
351
} }
345
352
centered
0 commit comments