@@ -30,7 +30,9 @@ export type configChangeParams = {
3030 showDataLoadingIndicators ?: boolean ;
3131 gridColumns ?: string ;
3232 gridRowHeight ?: string ;
33- gridPadding ?: string ;
33+ gridRowCount ?: number ;
34+ gridPaddingX ?: number ;
35+ gridPaddingY ?: number ;
3436 gridBgImage ?: string ;
3537 gridBgImageRepeat ?: string ;
3638 gridBgImageSize ?: string ;
@@ -58,7 +60,9 @@ type ColorConfigProps = {
5860 showDataLoadingIndicators ?: boolean ;
5961 gridColumns ?: string ;
6062 gridRowHeight ?: string ;
61- gridPadding ?: string ;
63+ gridRowCount ?: number ;
64+ gridPaddingX ?: number ;
65+ gridPaddingY ?: number ;
6266 gridBgImage ?: string ;
6367 gridBgImageRepeat ?: string ;
6468 gridBgImageSize ?: string ;
@@ -85,7 +89,9 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
8589 showDataLoadingIndicators : defaultShowDataLoaders ,
8690 gridColumns : defaultGridColumns ,
8791 gridRowHeight : defaultGridRowHeight ,
88- gridPadding : defaultGridPadding ,
92+ gridRowCount : defaultGridRowCount ,
93+ gridPaddingX : defaultGridPaddingX ,
94+ gridPaddingY : defaultGridPaddingY ,
8995 gridBgImage : defaultGridBgImage ,
9096 gridBgImageRepeat : defaultGridBgImageRepeat ,
9197 gridBgImageSize : defaultGridBgImageSize ,
@@ -106,7 +112,9 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
106112 const [ showDataLoaders , setDataLoaders ] = useState ( defaultShowDataLoaders ) ;
107113 const [ gridColumns , setGridColumns ] = useState ( defaultGridColumns ) ;
108114 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 ) ;
110118 const [ gridBgImage , setGridBgImage ] = useState ( defaultGridBgImage ) ;
111119 const [ gridBgImageRepeat , setGridBgImageRepeat ] = useState ( defaultGridBgImageRepeat ) ;
112120 const [ gridBgImageSize , setGridBgImageSize ] = useState ( defaultGridBgImageSize ) ;
@@ -166,11 +174,6 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
166174 result = "3px" ;
167175 }
168176
169- if ( themeSettingKey === 'gridPadding' ) {
170- setGridPadding ( result ) ;
171- configChange ( { themeSettingKey, gridPadding : result } ) ;
172- return ;
173- }
174177 setPadding ( result ) ;
175178 configChange ( { themeSettingKey, padding : result } ) ;
176179 } ;
@@ -233,6 +236,34 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
233236 configChange ( { themeSettingKey, gridColumns : result } ) ;
234237 } ;
235238
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+
236267 const gridBackgroundInputBlur = ( value : string ) => {
237268 switch ( themeSettingKey ) {
238269 case 'gridBgImage' :
@@ -284,6 +315,10 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
284315 setGridColumns ( defaultGridColumns ) ;
285316 } , [ defaultGridColumns ] ) ;
286317
318+ useEffect ( ( ) => {
319+ setGridRowCount ( defaultGridRowCount ) ;
320+ } , [ defaultGridRowCount ] ) ;
321+
287322 useEffect ( ( ) => {
288323 setBorderStyle ( defaultBorderStyle ) ;
289324 } , [ defaultBorderStyle ] ) ;
@@ -331,7 +366,9 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
331366 themeSettingKey !== "showDataLoadingIndicators" &&
332367 themeSettingKey !== "gridColumns" &&
333368 themeSettingKey !== "gridRowHeight" &&
334- themeSettingKey !== "gridPadding" &&
369+ themeSettingKey !== "gridRowCount" &&
370+ themeSettingKey !== "gridPaddingX" &&
371+ themeSettingKey !== "gridPaddingY" &&
335372 themeSettingKey !== "gridBgImage" &&
336373 themeSettingKey !== "gridBgImageRepeat" &&
337374 themeSettingKey !== "gridBgImageSize" &&
@@ -508,9 +545,7 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
508545 { themeSettingKey === "gridColumns" && (
509546 < div className = "config-input" >
510547 < GridColumns $gridColumns = { defaultGridColumns || "24" } >
511- < div >
512- < TableCellsIcon title = "" />
513- </ div >
548+ < div > < TableCellsIcon title = "" /> </ div >
514549 </ GridColumns >
515550
516551 < Slider
@@ -527,36 +562,75 @@ export default function ThemeSettingsSelector(props: ColorConfigProps) {
527562 { themeSettingKey === "gridRowHeight" && (
528563 < div className = "config-input" >
529564 < GridColumns $gridColumns = { defaultGridColumns || "24" } >
530- < div >
531- < TableCellsIcon title = "" />
532- </ div >
565+ < div > < TableCellsIcon title = "" /> </ div >
533566 </ GridColumns >
534567
535568 < Slider
536569 style = { { width : "90%" , margin : "8px 5% 0 5%" } }
537570 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
539572 value = { parseInt ( gridRowHeight || "8" ) }
540573 onChange = { ( value ) => setGridRowHeight ( value . toString ( ) ) }
541574 onChangeComplete = { ( value ) => gridSizeInputBlur ( value . toString ( ) ) }
542575 />
543576 </ div >
544577 ) }
545578
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+ />
560634 </ div >
561635 ) }
562636
0 commit comments