11<template >
2- <div class =" flex flex-col max-w-md gap-2 mx-auto" >
3- <div class =" flex flex-col gap-2" >
4- <div class =" pl-0.5 flex flex-wrap gap-2" >
5- <input
6- v-model =" searchQuery"
7- name =" search"
8- type =" text"
9- class =" h-8 border-2 input input-bordered rounded-2xl placeholder-neutral-content"
10- :placeholder =" `Filter by username`"
11- >
12- <TorrustSelect v-model:selected =" selectedSorting" class =" ml-auto" :options =" sortingOptions" label =" Sort by" />
2+ <div class =" flex flex-col gap-6" >
3+ <div class =" flex w-full" >
4+ <div class =" flex flex-wrap justify-between gap-2" >
5+ <div class =" pl-0.5 flex flex-wrap gap-2" >
6+ <input
7+ v-model =" searchQuery"
8+ name =" search"
9+ type =" text"
10+ class =" h-8 border-2 input input-bordered rounded-2xl placeholder-neutral-content"
11+ :placeholder =" `Filter by username`"
12+ >
13+ <div class =" flex flex-wrap gap-1" >
14+ <TorrustSelect
15+ v-model:selected =" selectedFilters"
16+ class =" ml-auto"
17+ :options =" filteringOptions"
18+ label =" Filter by"
19+ />
20+ <TorrustSelect
21+ v-model:selected =" selectedSorting"
22+ class =" ml-auto"
23+ :options =" sortingOptions"
24+ label =" Sort by"
25+ />
26+ </div >
27+ <UserTable :user-profiles =" userProfiles" />
28+ <Pagination
29+ v-model:current-page =" currentPage"
30+ v-model:page-size =" pageSize"
31+ :total-results =" userProfilesTotal"
32+ />
33+ </div >
1334 </div >
14- <UserTable :user-profiles =" userProfiles" />
15- <Pagination v-model:current-page =" currentPage" v-model:page-size =" pageSize" :total-results =" userProfilesTotal" />
1635 </div >
1736 </div >
1837</template >
@@ -25,6 +44,12 @@ import { onMounted, ref, watch } from "#imports";
2544import { useRestApi } from " ~/composables/states" ;
2645import type { TorrustSelectOption } from " components/TorrustSelect.vue" ;
2746
47+ const filteringOptions: Array <TorrustSelectOption > = [
48+ { name: " Email verified" , value: " EmailVerified" },
49+ { name: " Email not verified" , value: " EmailNotVerified" },
50+ { name: " Torrent uploader" , value: " TorrentUploader" }
51+ ];
52+
2853const sortingOptions: Array <TorrustSelectOption > = [
2954 { name: " Registration date (Newest first)" , value: " DateRegisteredNewest" },
3055 { name: " Registration date (Oldest first)" , value: " DateRegisteredOldest" },
@@ -35,6 +60,7 @@ const sortingOptions: Array<TorrustSelectOption> = [
3560const route = useRoute ();
3661const router = useRouter ();
3762const rest = useRestApi ();
63+ // const filters = useFilters();
3864
3965const defaultPageSize = 50 ;
4066const queryPageSize = isNaN (route .query ?.pageSize ) ? defaultPageSize : parseInt (route .query ?.pageSize as string , 10 );
0 commit comments