Skip to content

Commit 866d230

Browse files
Merge pull request #114 from priyankarpal/priyank
refactor: optimize sorting code #101
2 parents 7e0ea3d + d869f5c commit 866d230

File tree

1 file changed

+44
-51
lines changed

1 file changed

+44
-51
lines changed

components/Sort.tsx

Lines changed: 44 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { useRouter } from 'next/router';
22
import Link from 'next/link';
3-
import { motion } from 'framer-motion';
43
import languages from 'assets/languages.json';
54
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
65
import { faCode } from '@fortawesome/free-solid-svg-icons';
@@ -23,6 +22,43 @@ enum SortTypes {
2322

2423
export default function Sort() {
2524
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+
2662
const selectedSort = (): SortTypes => {
2763
if (router.query.o === 'asc') {
2864
if (router.query.s === 'stars') return SortTypes.FewestStars;
@@ -72,56 +108,13 @@ export default function Sort() {
72108
</Button>
73109
<div className="h-64 p-2 z-50 overflow-y-scroll shadow dropdown-content bg-base-100 rounded-box w-60">
74110
<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+
))}
125118
</ul>
126119
</div>
127120
</div>

0 commit comments

Comments
 (0)