@@ -30,7 +30,9 @@ export type configChangeParams = {
30
30
showDataLoadingIndicators ?: boolean ;
31
31
gridColumns ?: string ;
32
32
gridRowHeight ?: string ;
33
- gridPadding ?: string ;
33
+ gridRowCount ?: number ;
34
+ gridPaddingX ?: number ;
35
+ gridPaddingY ?: number ;
34
36
gridBgImage ?: string ;
35
37
gridBgImageRepeat ?: string ;
36
38
gridBgImageSize ?: string ;
@@ -58,7 +60,9 @@ type ColorConfigProps = {
58
60
showDataLoadingIndicators ?: boolean ;
59
61
gridColumns ?: string ;
60
62
gridRowHeight ?: string ;
61
- gridPadding ?: string ;
63
+ gridRowCount ?: number ;
64
+ gridPaddingX ?: number ;
65
+ gridPaddingY ?: number ;
62
66
gridBgImage ?: string ;
63
67
gridBgImageRepeat ?: string ;
64
68
gridBgImageSize ?: string ;
@@ -85,7 +89,9 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
85
89
showDataLoadingIndicators : defaultShowDataLoaders ,
86
90
gridColumns : defaultGridColumns ,
87
91
gridRowHeight : defaultGridRowHeight ,
88
- gridPadding : defaultGridPadding ,
92
+ gridRowCount : defaultGridRowCount ,
93
+ gridPaddingX : defaultGridPaddingX ,
94
+ gridPaddingY : defaultGridPaddingY ,
89
95
gridBgImage : defaultGridBgImage ,
90
96
gridBgImageRepeat : defaultGridBgImageRepeat ,
91
97
gridBgImageSize : defaultGridBgImageSize ,
@@ -106,7 +112,9 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
106
112
const [ showDataLoaders , setDataLoaders ] = useState ( defaultShowDataLoaders ) ;
107
113
const [ gridColumns , setGridColumns ] = useState ( defaultGridColumns ) ;
108
114
const [ gridRowHeight , setGridRowHeight ] = useState ( defaultGridRowHeight ) ;
109
- const [ gridPadding , setGridPadding ] = useState ( defaultGridPadding ) ;
115
+ const [ gridRowCount , setGridRowCount ] = useState ( defaultGridRowCount ) ;
116
+ const [ gridPaddingX , setGridPaddingX ] = useState ( defaultGridPaddingX ) ;
117
+ const [ gridPaddingY , setGridPaddingY ] = useState ( defaultGridPaddingY ) ;
110
118
const [ gridBgImage , setGridBgImage ] = useState ( defaultGridBgImage ) ;
111
119
const [ gridBgImageRepeat , setGridBgImageRepeat ] = useState ( defaultGridBgImageRepeat ) ;
112
120
const [ gridBgImageSize , setGridBgImageSize ] = useState ( defaultGridBgImageSize ) ;
@@ -166,11 +174,6 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
166
174
result = "3px" ;
167
175
}
168
176
169
- if ( themeSettingKey === 'gridPadding' ) {
170
- setGridPadding ( result ) ;
171
- configChange ( { themeSettingKey, gridPadding : result } ) ;
172
- return ;
173
- }
174
177
setPadding ( result ) ;
175
178
configChange ( { themeSettingKey, padding : result } ) ;
176
179
} ;
@@ -233,6 +236,34 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
233
236
configChange ( { themeSettingKey, gridColumns : result } ) ;
234
237
} ;
235
238
239
+ const gridRowCountInputBlur = ( value : number ) => {
240
+ let result = Infinity ;
241
+ if ( value > 0 ) {
242
+ result = value ;
243
+ }
244
+
245
+ setGridRowCount ( result ) ;
246
+ configChange ( { themeSettingKey, gridRowCount : result } ) ;
247
+ } ;
248
+
249
+ const gridPaddingInputBlur = ( padding : number ) => {
250
+ let result = 20 ;
251
+ if ( padding > 0 ) {
252
+ result = padding ;
253
+ }
254
+
255
+ if ( themeSettingKey === 'gridPaddingX' ) {
256
+ setGridPaddingX ( result ) ;
257
+ configChange ( { themeSettingKey, gridPaddingX : result } ) ;
258
+ return ;
259
+ }
260
+ if ( themeSettingKey === 'gridPaddingY' ) {
261
+ setGridPaddingY ( result ) ;
262
+ configChange ( { themeSettingKey, gridPaddingY : result } ) ;
263
+ return ;
264
+ }
265
+ } ;
266
+
236
267
const gridBackgroundInputBlur = ( value : string ) => {
237
268
switch ( themeSettingKey ) {
238
269
case 'gridBgImage' :
@@ -284,6 +315,10 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
284
315
setGridColumns ( defaultGridColumns ) ;
285
316
} , [ defaultGridColumns ] ) ;
286
317
318
+ useEffect ( ( ) => {
319
+ setGridRowCount ( defaultGridRowCount ) ;
320
+ } , [ defaultGridRowCount ] ) ;
321
+
287
322
useEffect ( ( ) => {
288
323
setBorderStyle ( defaultBorderStyle ) ;
289
324
} , [ defaultBorderStyle ] ) ;
@@ -331,7 +366,9 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
331
366
themeSettingKey !== "showDataLoadingIndicators" &&
332
367
themeSettingKey !== "gridColumns" &&
333
368
themeSettingKey !== "gridRowHeight" &&
334
- themeSettingKey !== "gridPadding" &&
369
+ themeSettingKey !== "gridRowCount" &&
370
+ themeSettingKey !== "gridPaddingX" &&
371
+ themeSettingKey !== "gridPaddingY" &&
335
372
themeSettingKey !== "gridBgImage" &&
336
373
themeSettingKey !== "gridBgImageRepeat" &&
337
374
themeSettingKey !== "gridBgImageSize" &&
@@ -508,9 +545,7 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
508
545
{ themeSettingKey === "gridColumns" && (
509
546
< div className = "config-input" >
510
547
< GridColumns $gridColumns = { defaultGridColumns || "24" } >
511
- < div >
512
- < TableCellsIcon title = "" />
513
- </ div >
548
+ < div > < TableCellsIcon title = "" /> </ div >
514
549
</ GridColumns >
515
550
516
551
< Slider
@@ -527,36 +562,75 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
527
562
{ themeSettingKey === "gridRowHeight" && (
528
563
< div className = "config-input" >
529
564
< GridColumns $gridColumns = { defaultGridColumns || "24" } >
530
- < div >
531
- < TableCellsIcon title = "" />
532
- </ div >
565
+ < div > < TableCellsIcon title = "" /> </ div >
533
566
</ GridColumns >
534
567
535
568
< Slider
536
569
style = { { width : "90%" , margin : "8px 5% 0 5%" } }
537
570
min = { 6 } // Define the minimum value for the slider
538
- max = { 16 } // Define the maximum value for the slider
571
+ max = { 20 } // Define the maximum value for the slider
539
572
value = { parseInt ( gridRowHeight || "8" ) }
540
573
onChange = { ( value ) => setGridRowHeight ( value . toString ( ) ) }
541
574
onChangeComplete = { ( value ) => gridSizeInputBlur ( value . toString ( ) ) }
542
575
/>
543
576
</ div >
544
577
) }
545
578
546
- { themeSettingKey === "gridPadding" && (
547
- < div className = "config-input" >
548
- < Padding $padding = { defaultGridPadding || "0px" } >
549
- < div > < CompressIcon title = "" /> </ div >
550
- </ Padding >
551
- < TacoInput
552
- value = { gridPadding }
553
- onChange = { ( e ) => setGridPadding ( e . target . value ) }
554
- onBlur = { ( e ) => paddingInputBlur ( e . target . value ) }
555
- onKeyUp = { ( e ) =>
556
- e . nativeEvent . key === "Enter" &&
557
- paddingInputBlur ( e . currentTarget . value )
558
- }
559
- />
579
+ { themeSettingKey === "gridRowCount" && (
580
+ < div className = "config-input" >
581
+ < GridColumns $gridColumns = { defaultGridColumns || "24" } >
582
+ < div > < TableCellsIcon title = "" /> </ div >
583
+ </ GridColumns >
584
+
585
+ < TacoInput
586
+ type = "number"
587
+ min = { 0 }
588
+ value = { gridRowCount }
589
+ onChange = { ( e ) => setGridRowCount ( Number ( e . target . value ) ) }
590
+ onBlur = { ( e ) => gridRowCountInputBlur ( Number ( e . target . value ) ) }
591
+ onKeyUp = { ( e ) =>
592
+ e . nativeEvent . key === "Enter" &&
593
+ gridRowCountInputBlur ( Number ( e . currentTarget . value ) )
594
+ }
595
+ />
596
+ </ div >
597
+ ) }
598
+
599
+ { themeSettingKey === "gridPaddingX" && (
600
+ < div className = "config-input" >
601
+ < Padding $padding = { "3px" } >
602
+ < div > < CompressIcon title = "" /> </ div >
603
+ </ Padding >
604
+ < TacoInput
605
+ type = "number"
606
+ min = { 0 }
607
+ value = { gridPaddingX }
608
+ onChange = { ( e ) => setGridPaddingX ( Number ( e . target . value ) ) }
609
+ onBlur = { ( e ) => gridPaddingInputBlur ( Number ( e . target . value ) ) }
610
+ onKeyUp = { ( e ) =>
611
+ e . nativeEvent . key === "Enter" &&
612
+ gridPaddingInputBlur ( Number ( e . currentTarget . value ) )
613
+ }
614
+ />
615
+ </ div >
616
+ ) }
617
+
618
+ { themeSettingKey === "gridPaddingY" && (
619
+ < div className = "config-input" >
620
+ < Padding $padding = { "3px" } >
621
+ < div > < CompressIcon title = "" /> </ div >
622
+ </ Padding >
623
+ < TacoInput
624
+ type = "number"
625
+ min = { 0 }
626
+ value = { gridPaddingY }
627
+ onChange = { ( e ) => setGridPaddingY ( Number ( e . target . value ) ) }
628
+ onBlur = { ( e ) => gridPaddingInputBlur ( Number ( e . target . value ) ) }
629
+ onKeyUp = { ( e ) =>
630
+ e . nativeEvent . key === "Enter" &&
631
+ gridPaddingInputBlur ( Number ( e . currentTarget . value ) )
632
+ }
633
+ />
560
634
</ div >
561
635
) }
562
636
0 commit comments