@@ -30,29 +30,56 @@ const GoogleFonts_Icons_ArrowDropUp = (props) => (
30
30
< svg xmlns = "http://www.w3.org/2000/svg" height = "24px" viewBox = "0 -960 960 960" width = "24px" fill = "#e3e3e3" { ...props } >
31
31
< path d = "M328-400q-9 0-14.5-6t-5.5-14q0-2 6-14l145-145q5-5 10-7t11-2q6 0 11 2t10 7l145 145q3 3 4.5 6.5t1.5 7.5q0 8-5.5 14t-14.5 6H328Z" />
32
32
</ svg >
33
- )
33
+ ) ;
34
+ const Img = ( item ) => ( < img src = { item [ 1 ] } title = { item [ 0 ] } alt = "" className = 'fi r2px ow' /> ) ;
35
+
36
+ let selectID = 0 ;
34
37
35
38
const Select = ( {
36
39
titles,
37
40
items,
38
41
variable
39
42
} ) => {
40
- let id = 0 ;
43
+ const [ id , setID ] = useState ( 0 ) ;
41
44
const [ switch_ , setSwitch ] = useState ( false ) ;
45
+ const [ hover , setHover ] = useState ( false ) ;
46
+
47
+ selectID ++ ;
42
48
43
49
return (
44
50
< >
45
51
< button
46
52
title = { switch_ ? titles [ 1 ] : titles [ 0 ] }
47
53
type = 'button'
48
- className = 'bb cw sb scp'
54
+ className = 'bb cw sb scp cp '
49
55
onClick = { ( ) => setSwitch ( ! switch_ ) }
56
+ onMouseEnter = { ( ) => setHover ( true ) }
57
+ onMouseLeave = { ( ) => setHover ( false ) }
50
58
>
51
- < GoogleFonts_Icons_ArrowDropUp id = "arw" />
52
- < img src = { items [ id ] [ 1 ] } title = { items [ id ] [ 0 ] } alt = "" className = 'fi r2px ow' />
59
+ < GoogleFonts_Icons_ArrowDropUp id = "arw" className = "t" style = {
60
+ hover ? 'translate:0px 10px;-webkit-translate:0px 10px' : 'translate:none;-webkit-translate:none'
61
+ } />
62
+ < Img item = { items [ id ] } />
53
63
{ items [ id ] [ 0 ] }
54
64
</ button >
55
- { switch_ ? < div className = 'du' > items</ div > : < div /> }
65
+ { switch_ ? < div className = 'du' > {
66
+ items . forEach ( ( item , iid ) => (
67
+ < button
68
+ title = { titles [ 2 ] ? titles [ 2 ] : '' }
69
+ type = 'button'
70
+ className = 'bb cw sb scp cp'
71
+ onClick = { ( ) => {
72
+ setID ( iid ) ;
73
+ useEffect ( ( ) => {
74
+ document . body . style . setProperty ( `--${ variable || 'select' + selectID } ` , item [ 2 ] ) ;
75
+ } ) ;
76
+ } }
77
+ >
78
+ < Img item = { items [ iid ] } />
79
+ { item [ 0 ] }
80
+ </ button >
81
+ ) )
82
+ } </ div > : < > </ > }
56
83
</ >
57
84
)
58
85
}
0 commit comments