Skip to content

Commit e34eea7

Browse files
committed
chore: add back sort on modules
1 parent 84bc6a9 commit e34eea7

File tree

2 files changed

+42
-8
lines changed

2 files changed

+42
-8
lines changed

composables/useModules.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,11 @@ export const useModules = () => {
246246
filteredModules = filteredModules.reverse()
247247
}
248248

249-
// sponsored & official modules in first place
250-
return filteredModules.sort(isSponsorOrOfficial)
249+
// sponsored & official modules in first place if no sort or order by
250+
if (!route.query.sortBy && !route.query.orderBy) {
251+
return filteredModules.sort(isSponsorOrOfficial)
252+
}
253+
return filteredModules
251254
})
252255

253256
return {

pages/modules/index.vue

+37-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const inputRef = ref()
77
88
const route = useRoute()
99
const { replaceRoute } = useFilters('modules')
10-
const { fetchList, filteredModules, q, categories, stats } = useModules()
10+
const { fetchList, filteredModules, q, categories, stats, selectedOrder, sorts, selectedSort } = useModules()
1111
1212
const { data: page } = await useAsyncData(route.path, () => queryContent(route.path).findOne())
1313
@@ -64,7 +64,7 @@ const { copy } = useCopyToClipboard()
6464
name="q"
6565
icon="i-ph-magnifying-glass"
6666
placeholder="Search..."
67-
class="w-full mb-4"
67+
class="w-full mb-2"
6868
size="md"
6969
autocomplete="off"
7070
:ui="{ icon: { trailing: { pointer: '' } } }"
@@ -85,25 +85,56 @@ const { copy } = useCopyToClipboard()
8585
</UKbd>
8686
</template>
8787
</UInput>
88+
<UButtonGroup class="mb-4 w-full">
89+
<USelectMenu
90+
:model-value="selectedSort"
91+
:options="sorts"
92+
size="md"
93+
color="white"
94+
class="w-full"
95+
@update:model-value="replaceRoute('sortBy', $event)"
96+
/>
97+
<UButton
98+
:icon="selectedOrder.icon"
99+
size="md"
100+
color="gray"
101+
@click="replaceRoute('orderBy', selectedOrder.key === 'desc' ? 'asc' : 'desc')"
102+
/>
103+
</UButtonGroup>
88104
<UNavigationTree :links="[{ label: 'Categories', disabled: true, children: categories }]" />
89105
</UAside>
90106
</template>
91107

92-
<UPageBody class="lg:pl-12">
93-
<div class="lg:hidden mb-6">
108+
<UPageBody class="lg:pl-8">
109+
<div class="lg:hidden mb-6 flex items-center gap-2">
94110
<UInput
95111
ref="inputRef"
96112
type="search"
97113
:model-value="q"
98114
name="q"
99115
icon="i-ph-magnifying-glass"
100116
placeholder="Search a module..."
101-
class="w-full mb-4"
102-
size="md"
117+
class="w-full"
118+
size="sm"
103119
autocomplete="off"
104120
:ui="{ icon: { trailing: { pointer: '' } } }"
105121
@update:model-value="replaceRoute('q', $event)"
106122
/>
123+
<UButtonGroup>
124+
<USelectMenu
125+
:model-value="selectedSort"
126+
:options="sorts"
127+
size="md"
128+
color="white"
129+
@update:model-value="replaceRoute('sortBy', $event)"
130+
/>
131+
<UButton
132+
:icon="selectedOrder.icon"
133+
size="md"
134+
color="gray"
135+
@click="replaceRoute('orderBy', selectedOrder.key === 'desc' ? 'asc' : 'desc')"
136+
/>
137+
</UButtonGroup>
107138
</div>
108139
<UPageGrid v-if="filteredModules?.length">
109140
<UPageCard

0 commit comments

Comments
 (0)