@@ -136,72 +136,84 @@ export default function TableField({ data, tid, index }) {
136136 < Button
137137 type = { data . notNull || data . primary ? "primary" : "tertiary" }
138138 title = { t ( "not_null" ) }
139- theme = { data . notNull || data . primary ? "solid" : "light" }
140- disabled = { data . primary ? true : false }
139+ theme = { data . notNull ? "solid" : "light" }
140+
141+
141142 onClick = { ( ) => {
143+ if ( data . primary ) {
144+
145+ return } ;
146+
142147 setUndoStack ( ( prev ) => [
143148 ...prev ,
144149 {
150+
145151 action : Action . EDIT ,
146152 element : ObjectType . TABLE ,
147153 component : "field" ,
148154 tid : tid ,
149155 fid : index ,
150156 undo : { notNull : data . notNull } ,
157+
151158 redo : { notNull : ! data . notNull } ,
159+
152160 message : t ( "edit_table" , {
153161 tableName : tables [ tid ] . name ,
154162 extra : "[field]" ,
155163 } ) ,
156164 } ,
157165 ] ) ;
158166 setRedoStack ( [ ] ) ;
167+
159168 updateField ( tid , index , { notNull : ! data . notNull } ) ;
169+
170+ //}
171+
160172 } }
161173 >
162174 ?
163175 </ Button >
164176 </ Col >
165177 < Col span = { 3 } >
166- < Button
167- type = { data . primary ? "primary" : "tertiary" }
168- title = { t ( "primary" ) }
169- theme = { data . primary ? "solid" : "light" }
170- onClick = { ( ) => {
171- const mustSetNotNull = ! data . primary && ! data . notNull ;
172-
173- const undo = { primary : data . primary } ;
174- const redo = { primary : ! data . primary } ;
175- const changes = { primary : ! data . primary } ;
178+ < Button
179+ type = { data . primary ? "primary" : "tertiary" }
180+ title = { t ( "primary" ) }
181+ theme = { data . primary ? "solid" : "light" }
182+ onClick = { ( ) => {
176183
184+ const newStatePK = ! data . primary ;
185+ const stateNull = newStatePK ?true : ! data . notNull ;
186+ const mustSetNotNull = ! data . primary && ! data . notNull ;
187+ const changes = { primary : ! data . primary } ;
188+
189+ const undo = { primary : data . primary , notNull : data . notNull } ;
190+ const redo = { primary : newStatePK , notNull :stateNull } ;
177191 if ( mustSetNotNull ) {
178192 undo . notNull = data . notNull ;
179193 redo . notNull = true ;
180194 changes . notNull = true ;
181- }
182-
183- setUndoStack ( ( prev ) => [
184- ...prev ,
185- {
186- action : Action . EDIT ,
187- element : ObjectType . TABLE ,
188- component : "field" ,
189- tid,
190- fid : index ,
191- undo,
192- redo,
193- message : t ( "edit_table" , {
194- tableName : tables [ tid ] . name ,
195- extra : "[field]" ,
196- } ) ,
197- } ,
198- ] ) ;
199-
200- setRedoStack ( [ ] ) ;
201- updateField ( tid , index , changes ) ;
202- } }
203- icon = { < IconKeyStroked /> }
204- />
195+ }
196+ setUndoStack ( ( prev ) => [
197+ ...prev ,
198+ {
199+ action : Action . EDIT ,
200+ element : ObjectType . TABLE ,
201+ component : "field" ,
202+ tid : tid ,
203+ fid : index ,
204+
205+ message : t ( "edit_table" , {
206+ tableName : tables [ tid ] . name ,
207+ extra : "[field]" ,
208+ } ) ,
209+ } ,
210+ ] ) ;
211+ setRedoStack ( [ ] ) ;
212+ updateField ( tid , index , { primary : newStatePK , notNull :stateNull } ) ;
213+ } }
214+ icon = { < IconKeyStroked /> }
215+ />
216+
205217
206218 </ Col >
207219 < Col span = { 3 } >
0 commit comments