@@ -274,14 +274,18 @@ const EditTableForm: React.FC<{
274
274
return Object . assign ( result , current ) ;
275
275
} , { } ) ;
276
276
277
- return Object . keys ( mergedItem ) . map ( title => ( {
278
- '@type' : '' ,
279
- name : title ,
280
- format : '' ,
281
- enableSearch : false ,
282
- enableSort : false ,
283
- enableFilter : false ,
284
- } ) ) ;
277
+ return Object . keys ( mergedItem ) . map ( title => {
278
+ const currentItemConfig = findCurrentColumnConfig ( title ) ;
279
+ return {
280
+ '@type' : '' ,
281
+ name : title ,
282
+ format : '' ,
283
+ enableSearch : false ,
284
+ enableSort : false ,
285
+ enableFilter : false ,
286
+ ...currentItemConfig ,
287
+ } ;
288
+ } ) ;
285
289
}
286
290
287
291
const result = await querySparql (
@@ -296,14 +300,19 @@ const EditTableForm: React.FC<{
296
300
. sort ( ( a , b ) => {
297
301
return a . title > b . title ? 1 : - 1 ;
298
302
} )
299
- . map ( x => ( {
300
- '@type' : 'text' ,
301
- name : x . dataIndex ,
302
- format : '' ,
303
- enableSearch : false ,
304
- enableSort : false ,
305
- enableFilter : false ,
306
- } ) ) ;
303
+ . map ( header => {
304
+ const currentHeaderConfig =
305
+ findCurrentColumnConfig ( header . dataIndex ) ?? { } ;
306
+ return {
307
+ '@type' : 'text' ,
308
+ name : header . dataIndex ,
309
+ format : '' ,
310
+ enableSearch : false ,
311
+ enableSort : false ,
312
+ enableFilter : false ,
313
+ ...currentHeaderConfig ,
314
+ } ;
315
+ } ) ;
307
316
} )
308
317
. catch ( error => {
309
318
// Sometimes delta's error message can be in `name` or `reason` field.
@@ -323,12 +332,7 @@ const EditTableForm: React.FC<{
323
332
{
324
333
onSuccess : data => {
325
334
updateTableDataError ( null ) ;
326
- if (
327
- isNil ( configuration ) ||
328
- ( configuration as TableColumn [ ] ) . length === 0
329
- ) {
330
- setConfiguration ( data ) ;
331
- }
335
+ setConfiguration ( data ) ;
332
336
} ,
333
337
onError : ( error : Error ) => {
334
338
updateTableDataError ( error ) ;
@@ -340,6 +344,16 @@ const EditTableForm: React.FC<{
340
344
}
341
345
) ;
342
346
347
+ const findCurrentColumnConfig = ( name : string ) => {
348
+ if ( Array . isArray ( configuration ) ) {
349
+ return configuration . find ( column => column . name === name ) ;
350
+ }
351
+ if ( configuration ?. name === name ) {
352
+ return { ...configuration } ;
353
+ }
354
+ return undefined ;
355
+ } ;
356
+
343
357
const onChangeName = ( event : any ) => {
344
358
setName ( event . target . value ) ;
345
359
setNameError ( false ) ;
0 commit comments