@@ -6,6 +6,7 @@ import { faCode } from '@fortawesome/free-solid-svg-icons';
6
6
import { faArrowUpAZ } from '@fortawesome/free-solid-svg-icons' ;
7
7
import sortByName from 'utils/sortByName' ;
8
8
import Button from './Button' ;
9
+ import { useState } from 'react' ;
9
10
10
11
const { mainLanguages } = languages ;
11
12
@@ -22,6 +23,7 @@ enum SortTypes {
22
23
23
24
export default function Sort ( ) {
24
25
const router = useRouter ( ) ;
26
+ const [ isDisplay , setIsDisplay ] = useState < boolean > ( false ) ;
25
27
26
28
const navigationItems = [
27
29
{
@@ -75,27 +77,26 @@ export default function Sort() {
75
77
return SortTypes . BestMatch ;
76
78
}
77
79
} ;
78
-
79
- const handleClick = ( ) => {
80
- const elem = document . activeElement as HTMLElement ;
81
- if ( elem ) {
82
- elem ?. blur ( ) ;
83
- }
84
- } ;
85
80
return (
86
81
< div className = "flex justify-center items-center mb-8 flex-col gap-2" >
87
82
< div className = "dropdown dropdown-hover" >
88
- < Button tabIndex = { 0 } className = "m-1 py-2" >
89
- < FontAwesomeIcon
90
- icon = { faCode }
91
- className = " w-6 h-6 mr-3"
92
- > </ FontAwesomeIcon >
93
- Language
94
- </ Button >
95
- < div className = "h-64 p-2 overflow-y-scroll shadow dropdown-content z-50 bg-base-100 rounded-box w-60" >
83
+ < div onClick = { ( ) => setIsDisplay ( true ) } >
84
+ < Button tabIndex = { 0 } className = "m-1 py-2" >
85
+ < FontAwesomeIcon
86
+ icon = { faCode }
87
+ className = " w-6 h-6 mr-3"
88
+ > </ FontAwesomeIcon >
89
+ Language
90
+ </ Button >
91
+ </ div >
92
+ < div
93
+ className = { `h-64 p-2 overflow-y-scroll shadow dropdown-content z-50 bg-base-100 rounded-box w-60 ${
94
+ ! isDisplay && 'hidden'
95
+ } `}
96
+ >
96
97
< ul tabIndex = { 0 } className = "menu menu-vertical" >
97
98
{ mainLanguages . sort ( sortByName ) . map ( language => (
98
- < li key = { language } onClick = { handleClick } >
99
+ < li key = { language } onClick = { ( ) => setIsDisplay ( false ) } >
99
100
< Link href = { `/repos/${ language . toLowerCase ( ) } ` } >
100
101
{ language }
101
102
</ Link >
@@ -105,17 +106,23 @@ export default function Sort() {
105
106
</ div >
106
107
</ div >
107
108
< div className = "dropdown dropdown-hover" >
108
- < Button tabIndex = { 0 } className = "py-2" >
109
- < FontAwesomeIcon
110
- icon = { faArrowUpAZ }
111
- className = " w-6 h-6 mr-3"
112
- > </ FontAwesomeIcon >
113
- { selectedSort ( ) }
114
- </ Button >
115
- < div className = "h-64 p-2 z-50 overflow-y-scroll shadow dropdown-content bg-base-100 rounded-box w-60" >
109
+ < div onClick = { ( ) => setIsDisplay ( true ) } >
110
+ < Button tabIndex = { 0 } className = "py-2" >
111
+ < FontAwesomeIcon
112
+ icon = { faArrowUpAZ }
113
+ className = " w-6 h-6 mr-3"
114
+ > </ FontAwesomeIcon >
115
+ { selectedSort ( ) }
116
+ </ Button >
117
+ </ div >
118
+ < div
119
+ className = { `h-64 p-2 z-50 overflow-y-scroll shadow dropdown-content bg-base-100 rounded-box w-60 ${
120
+ ! isDisplay && 'hidden'
121
+ } `}
122
+ >
116
123
< ul tabIndex = { 0 } className = "menu menu-vertical" >
117
124
{ navigationItems . map ( ( item , index ) => (
118
- < li key = { index } onClick = { handleClick } >
125
+ < li key = { index } onClick = { ( ) => setIsDisplay ( false ) } >
119
126
< Link href = { { query : item . href . query } } > { item . name } </ Link >
120
127
</ li >
121
128
) ) }
0 commit comments