@@ -3,6 +3,8 @@ import { Cardinality, ObjectType, Tab } from "../../data/constants";
3
3
import { calcPath } from "../../utils/calcPath" ;
4
4
import { useDiagram , useSettings , useLayout , useSelect } from "../../hooks" ;
5
5
import { useTranslation } from "react-i18next" ;
6
+ import { SideSheet } from "@douyinfe/semi-ui" ;
7
+ import RelationshipInfo from "../EditorSidePanel/RelationshipsTab/RelationshipInfo" ;
6
8
7
9
export default function Relationship ( { data } ) {
8
10
const { settings } = useSettings ( ) ;
@@ -79,67 +81,90 @@ export default function Relationship({ data }) {
79
81
} ;
80
82
81
83
return (
82
- < g className = "select-none group" onDoubleClick = { edit } >
83
- < path
84
- ref = { pathRef }
85
- d = { calcPath (
86
- {
87
- ...data ,
88
- startTable : {
89
- x : tables [ data . startTableId ] . x ,
90
- y : tables [ data . startTableId ] . y ,
84
+ < >
85
+ < g className = "select-none group" onDoubleClick = { edit } >
86
+ < path
87
+ ref = { pathRef }
88
+ d = { calcPath (
89
+ {
90
+ ...data ,
91
+ startTable : {
92
+ x : tables [ data . startTableId ] . x ,
93
+ y : tables [ data . startTableId ] . y ,
94
+ } ,
95
+ endTable : {
96
+ x : tables [ data . endTableId ] . x ,
97
+ y : tables [ data . endTableId ] . y ,
98
+ } ,
91
99
} ,
92
- endTable : {
93
- x : tables [ data . endTableId ] . x ,
94
- y : tables [ data . endTableId ] . y ,
95
- } ,
96
- } ,
97
- settings . tableWidth ,
100
+ settings . tableWidth ,
101
+ ) }
102
+ stroke = "gray"
103
+ className = "group-hover:stroke-sky-700"
104
+ fill = "none"
105
+ strokeWidth = { 2 }
106
+ cursor = "pointer"
107
+ />
108
+ { pathRef . current && settings . showCardinality && (
109
+ < >
110
+ < circle
111
+ cx = { cardinalityStartX }
112
+ cy = { cardinalityStartY }
113
+ r = "12"
114
+ fill = "grey"
115
+ className = "group-hover:fill-sky-700"
116
+ />
117
+ < text
118
+ x = { cardinalityStartX }
119
+ y = { cardinalityStartY }
120
+ fill = "white"
121
+ strokeWidth = "0.5"
122
+ textAnchor = "middle"
123
+ alignmentBaseline = "middle"
124
+ >
125
+ { cardinalityStart }
126
+ </ text >
127
+ < circle
128
+ cx = { cardinalityEndX }
129
+ cy = { cardinalityEndY }
130
+ r = "12"
131
+ fill = "grey"
132
+ className = "group-hover:fill-sky-700"
133
+ />
134
+ < text
135
+ x = { cardinalityEndX }
136
+ y = { cardinalityEndY }
137
+ fill = "white"
138
+ strokeWidth = "0.5"
139
+ textAnchor = "middle"
140
+ alignmentBaseline = "middle"
141
+ >
142
+ { cardinalityEnd }
143
+ </ text >
144
+ </ >
98
145
) }
99
- stroke = "gray"
100
- className = "group-hover:stroke-sky-700"
101
- fill = "none"
102
- strokeWidth = { 2 }
103
- cursor = "pointer"
104
- />
105
- { pathRef . current && settings . showCardinality && (
106
- < >
107
- < circle
108
- cx = { cardinalityStartX }
109
- cy = { cardinalityStartY }
110
- r = "12"
111
- fill = "grey"
112
- className = "group-hover:fill-sky-700"
113
- />
114
- < text
115
- x = { cardinalityStartX }
116
- y = { cardinalityStartY }
117
- fill = "white"
118
- strokeWidth = "0.5"
119
- textAnchor = "middle"
120
- alignmentBaseline = "middle"
121
- >
122
- { cardinalityStart }
123
- </ text >
124
- < circle
125
- cx = { cardinalityEndX }
126
- cy = { cardinalityEndY }
127
- r = "12"
128
- fill = "grey"
129
- className = "group-hover:fill-sky-700"
130
- />
131
- < text
132
- x = { cardinalityEndX }
133
- y = { cardinalityEndY }
134
- fill = "white"
135
- strokeWidth = "0.5"
136
- textAnchor = "middle"
137
- alignmentBaseline = "middle"
138
- >
139
- { cardinalityEnd }
140
- </ text >
141
- </ >
142
- ) }
143
- </ g >
146
+ </ g >
147
+ < SideSheet
148
+ title = { t ( "edit" ) }
149
+ size = "small"
150
+ visible = {
151
+ selectedElement . element === ObjectType . RELATIONSHIP &&
152
+ selectedElement . id === data . id &&
153
+ selectedElement . open &&
154
+ ! layout . sidebar
155
+ }
156
+ onCancel = { ( ) => {
157
+ setSelectedElement ( ( prev ) => ( {
158
+ ...prev ,
159
+ open : false ,
160
+ } ) ) ;
161
+ } }
162
+ style = { { paddingBottom : "16px" } }
163
+ >
164
+ < div className = "sidesheet-theme" >
165
+ < RelationshipInfo data = { data } />
166
+ </ div >
167
+ </ SideSheet >
168
+ </ >
144
169
) ;
145
170
}
0 commit comments