1
1
"use client" ;
2
- import React from "react" ;
2
+ import React , { useState } from "react" ;
3
3
4
4
interface SelectPaddingProps {
5
- paddings : string [ ] ;
6
5
currentPadding : string ;
7
6
setCurrentPadding : ( padding : string ) => void ;
8
7
}
9
8
10
- function SelectPadding ( {
11
- paddings,
12
- currentPadding,
13
- setCurrentPadding,
14
- } : SelectPaddingProps ) {
15
- const changePadding = ( newPadding : string ) => {
16
- setCurrentPadding ( newPadding ) ;
9
+ function SelectPadding ( { currentPadding, setCurrentPadding } : SelectPaddingProps ) {
10
+ // Handler to update padding value
11
+ const changePadding = ( e : React . ChangeEvent < HTMLInputElement > ) => {
12
+ const value = e . target . value ;
13
+
14
+ // Ensure the padding stays within 0 and 4rem (40px)
15
+ if ( parseFloat ( value ) >= 0 && parseFloat ( value ) <= 4 ) {
16
+ setCurrentPadding ( `${ value } rem` ) ;
17
+ }
17
18
} ;
18
19
19
20
return (
20
21
< div >
21
- < p className = "py-[10px] text-sm font-medium" > Padding Selector</ p >
22
- < div className = "flex flex-wrap gap-2 pb-2" >
23
- { paddings . map ( ( padding , i ) => {
24
- return (
25
- < button
26
- key = { i }
27
- onClick = { ( ) => changePadding ( padding ) }
28
- className = { `h-[37px] flex flex-col justify-center text-sm px-2 cursor-pointer
29
- ${
30
- currentPadding === padding &&
31
- "bg-[#3C3C3C] text-white rounded-md"
32
- } hover:text-white ease-linear transition-all duration-300
33
- ` }
34
- >
35
- { padding }
36
- </ button >
37
- ) ;
38
- } ) }
22
+ < p className = "py-[10px] text-sm font-medium" > Padding (0 - 4 rem)</ p >
23
+ < div className = "flex items-center gap-2 pb-2" >
24
+ < input
25
+ type = "number"
26
+ step = "0.1" // Allow decimal steps like 0.5rem
27
+ min = "0"
28
+ max = "4"
29
+ value = { parseFloat ( currentPadding ) } // Convert 'rem' string to a number for the input value
30
+ onChange = { changePadding }
31
+ className = "h-[37px] w-[80px] px-2 text-sm bg-gray-200 rounded-md text-black focus:outline-none"
32
+ />
33
+ < span className = "text-sm" > rem</ span >
39
34
</ div >
40
35
</ div >
41
36
) ;
42
37
}
43
38
44
- export default SelectPadding ;
39
+ export default SelectPadding ;
0 commit comments