Vokturz commited on
Commit
ce51997
·
1 Parent(s): 673d22a

Refactor sorting icons in ModelSelector to use SortIcon component for consistency

Browse files
Files changed (1) hide show
  1. src/components/ModelSelector.tsx +13 -5
src/components/ModelSelector.tsx CHANGED
@@ -8,7 +8,7 @@ import {
8
  } from '@headlessui/react'
9
  import { useModel } from '../contexts/ModelContext'
10
  import { getModelInfo } from '../lib/huggingface'
11
- import { Heart, Download, ChevronDown, Check, ArrowUpDown } from 'lucide-react'
12
 
13
  type SortOption = 'likes' | 'downloads' | 'createdAt' | 'name'
14
 
@@ -121,6 +121,14 @@ const ModelSelector: React.FC = () => {
121
  const selectedModel =
122
  models.find((model) => model.id === modelInfo?.id) || models[0]
123
 
 
 
 
 
 
 
 
 
124
  return (
125
  <div className="relative">
126
  <Listbox
@@ -181,7 +189,7 @@ const ModelSelector: React.FC = () => {
181
  }`}
182
  >
183
  <span>Name</span>
184
- {sortBy === 'name' && <ArrowUpDown className="w-3 h-3" />}
185
  </button>
186
  <button
187
  onClick={() => handleSortChange('likes')}
@@ -193,7 +201,7 @@ const ModelSelector: React.FC = () => {
193
  >
194
  <Heart className="w-3 h-3" />
195
  <span>Likes</span>
196
- {sortBy === 'likes' && <ArrowUpDown className="w-3 h-3" />}
197
  </button>
198
  <button
199
  onClick={() => handleSortChange('downloads')}
@@ -206,7 +214,7 @@ const ModelSelector: React.FC = () => {
206
  <Download className="w-3 h-3" />
207
  <span>Downloads</span>
208
  {sortBy === 'downloads' && (
209
- <ArrowUpDown className="w-3 h-3" />
210
  )}
211
  </button>
212
  <button
@@ -219,7 +227,7 @@ const ModelSelector: React.FC = () => {
219
  >
220
  <span>Date</span>
221
  {sortBy === 'createdAt' && (
222
- <ArrowUpDown className="w-3 h-3" />
223
  )}
224
  </button>
225
  </div>
 
8
  } from '@headlessui/react'
9
  import { useModel } from '../contexts/ModelContext'
10
  import { getModelInfo } from '../lib/huggingface'
11
+ import { Heart, Download, ChevronDown, Check, ArrowDown, ArrowUp } from 'lucide-react'
12
 
13
  type SortOption = 'likes' | 'downloads' | 'createdAt' | 'name'
14
 
 
121
  const selectedModel =
122
  models.find((model) => model.id === modelInfo?.id) || models[0]
123
 
124
+ const SortIcon = ({ sortOrder }: { sortOrder: 'asc' | 'desc' }) => {
125
+ return sortOrder === 'asc' ? (
126
+ <ArrowUp className="w-3 h-3 ml-1" />
127
+ ) : (
128
+ <ArrowDown className="w-3 h-3 ml-1" />
129
+ )
130
+ }
131
+
132
  return (
133
  <div className="relative">
134
  <Listbox
 
189
  }`}
190
  >
191
  <span>Name</span>
192
+ {sortBy === 'name' && <SortIcon sortOrder={sortOrder} />}
193
  </button>
194
  <button
195
  onClick={() => handleSortChange('likes')}
 
201
  >
202
  <Heart className="w-3 h-3" />
203
  <span>Likes</span>
204
+ {sortBy === 'likes' && <SortIcon sortOrder={sortOrder} />}
205
  </button>
206
  <button
207
  onClick={() => handleSortChange('downloads')}
 
214
  <Download className="w-3 h-3" />
215
  <span>Downloads</span>
216
  {sortBy === 'downloads' && (
217
+ <SortIcon sortOrder={sortOrder} />
218
  )}
219
  </button>
220
  <button
 
227
  >
228
  <span>Date</span>
229
  {sortBy === 'createdAt' && (
230
+ <SortIcon sortOrder={sortOrder} />
231
  )}
232
  </button>
233
  </div>