1
1
import { useRouter } from 'next/router' ;
2
2
import Link from 'next/link' ;
3
- import { motion } from 'framer-motion' ;
4
3
import languages from 'assets/languages.json' ;
5
4
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' ;
6
5
import { faCode } from '@fortawesome/free-solid-svg-icons' ;
@@ -23,6 +22,43 @@ enum SortTypes {
23
22
24
23
export default function Sort ( ) {
25
24
const router = useRouter ( ) ;
25
+
26
+ const navigationItems = [
27
+ {
28
+ name : "Best match" ,
29
+ href : { query : { ...router . query } }
30
+ } ,
31
+ {
32
+ name : "Most stars" ,
33
+ href : { query : { ...router . query , s : 'stars' , o : 'desc' } }
34
+ } ,
35
+ {
36
+ name : "Fewest stars" ,
37
+ href : { query : { ...router . query , s : 'stars' , o : 'asc' } }
38
+ } ,
39
+ {
40
+ name : "Most forks" ,
41
+ href : { query : { ...router . query , s : 'forks' , o : 'desc' } }
42
+ } ,
43
+ {
44
+ name : "Fewest forks" ,
45
+ href : { query : { ...router . query , s : 'forks' , o : 'asc' } }
46
+ } ,
47
+ {
48
+ name : "Most help wanted issues" ,
49
+ href : { query : { ...router . query , s : 'help-wanted-issues' , o : 'desc' } }
50
+ } ,
51
+ {
52
+ name : "Recently updated" ,
53
+ href : { query : { ...router . query , s : 'updated' , o : 'desc' } }
54
+ } ,
55
+ {
56
+ name : "Least recently updated" ,
57
+ href : { query : { ...router . query , s : 'updated' , o : 'asc' } }
58
+ } ,
59
+
60
+ ] ;
61
+
26
62
const selectedSort = ( ) : SortTypes => {
27
63
if ( router . query . o === 'asc' ) {
28
64
if ( router . query . s === 'stars' ) return SortTypes . FewestStars ;
@@ -72,56 +108,13 @@ export default function Sort() {
72
108
</ Button >
73
109
< div className = "h-64 p-2 z-50 overflow-y-scroll shadow dropdown-content bg-base-100 rounded-box w-60" >
74
110
< ul tabIndex = { 0 } className = "menu menu-vertical" >
75
- < li >
76
- < Link href = { { query : { ...router . query } } } > Best match</ Link >
77
- </ li >
78
- < li >
79
- < Link
80
- href = { { query : { ...router . query , s : 'stars' , o : 'desc' } } }
81
- >
82
- Most stars
83
- </ Link >
84
- </ li >
85
- < li >
86
- < Link href = { { query : { ...router . query , s : 'stars' , o : 'asc' } } } >
87
- Fewest stars
88
- </ Link >
89
- </ li >
90
- < li >
91
- < Link
92
- href = { { query : { ...router . query , s : 'forks' , o : 'desc' } } }
93
- >
94
- Most forks
95
- </ Link >
96
- </ li >
97
- < li >
98
- < Link href = { { query : { ...router . query , s : 'forks' , o : 'asc' } } } >
99
- Fewest forks
100
- </ Link >
101
- </ li >
102
- < li >
103
- < Link
104
- href = { {
105
- query : { ...router . query , s : 'help-wanted-issues' , o : 'desc' }
106
- } }
107
- >
108
- Most help wanted issues
109
- </ Link >
110
- </ li >
111
- < li >
112
- < Link
113
- href = { { query : { ...router . query , s : 'updated' , o : 'desc' } } }
114
- >
115
- Recently updated
116
- </ Link >
117
- </ li >
118
- < li >
119
- < Link
120
- href = { { query : { ...router . query , s : 'updated' , o : 'asc' } } }
121
- >
122
- Least recently updated
123
- </ Link >
124
- </ li >
111
+ { navigationItems . map ( ( item , index ) => (
112
+ < li key = { index } >
113
+ < Link href = { { query : item . href . query } } >
114
+ { item . name }
115
+ </ Link >
116
+ </ li >
117
+ ) ) }
125
118
</ ul >
126
119
</ div >
127
120
</ div >
0 commit comments