@@ -10,12 +10,13 @@ import {
10
10
Card ,
11
11
} from "@douyinfe/semi-ui" ;
12
12
import { IconDeleteStroked , IconPlus } from "@douyinfe/semi-icons" ;
13
- import { useUndoRedo , useTypes } from "../../../hooks" ;
13
+ import { useUndoRedo , useTypes , useDiagram } from "../../../hooks" ;
14
14
import TypeField from "./TypeField" ;
15
15
import { useTranslation } from "react-i18next" ;
16
16
17
17
export default function TypeInfo ( { index, data } ) {
18
18
const { deleteType, updateType } = useTypes ( ) ;
19
+ const { tables, updateField } = useDiagram ( ) ;
19
20
const { setUndoStack, setRedoStack } = useUndoRedo ( ) ;
20
21
const [ editField , setEditField ] = useState ( { } ) ;
21
22
const { t } = useTranslation ( ) ;
@@ -37,10 +38,27 @@ export default function TypeInfo({ index, data }) {
37
38
validateStatus = { data . name === "" ? "error" : "default" }
38
39
placeholder = { t ( "name" ) }
39
40
className = "ms-2"
40
- onChange = { ( value ) => updateType ( index , { name : value } ) }
41
+ onChange = { ( value ) => {
42
+ updateType ( index , { name : value } ) ;
43
+ tables . forEach ( ( table , i ) => {
44
+ table . fields . forEach ( ( field , j ) => {
45
+ if ( field . type . toLowerCase ( ) === data . name . toLowerCase ( ) ) {
46
+ updateField ( i , j , { type : value . toUpperCase ( ) } ) ;
47
+ }
48
+ } ) ;
49
+ } ) ;
50
+ } }
41
51
onFocus = { ( e ) => setEditField ( { name : e . target . value } ) }
42
52
onBlur = { ( e ) => {
43
53
if ( e . target . value === editField . name ) return ;
54
+
55
+ const updatedFields = tables . reduce ( ( acc , table ) => {
56
+ table . fields . forEach ( ( _ , i ) => {
57
+ acc . push ( { tid : table . id , fid : i } ) ;
58
+ } ) ;
59
+ return acc ;
60
+ } , [ ] ) ;
61
+
44
62
setUndoStack ( ( prev ) => [
45
63
...prev ,
46
64
{
@@ -50,6 +68,7 @@ export default function TypeInfo({ index, data }) {
50
68
tid : index ,
51
69
undo : editField ,
52
70
redo : { name : e . target . value } ,
71
+ updatedFields,
53
72
message : t ( "edit_type" , {
54
73
typeName : data . name ,
55
74
extra : "[name]" ,
0 commit comments