@@ -12,6 +12,7 @@ interface AppointmentsDataManager {
1212 start: CalendarDate | undefined ;
1313 end: CalendarDate | undefined ;
1414 };
15+ animalTypes: string [] | undefined ;
1516 };
1617 pagination: {
1718 pageIndex: number ;
@@ -42,6 +43,7 @@ const dataManager = ref<AppointmentsDataManager>({
4243 start: params .start ? parseDate (params .start as string ) : undefined ,
4344 end: params .end ? parseDate (params .end as string ) : undefined ,
4445 },
46+ animalTypes: params ?.animalTypes ,
4547 },
4648 pagination: {
4749 pageIndex: parseInt (meta .value .current_page ),
@@ -58,11 +60,12 @@ watch(
5860);
5961
6062const urlFilters = computed (() => {
61- const preferredDate = dataManager .value .filters . preferredDate ;
63+ const { preferredDate, animalTypes } = dataManager .value .filters ;
6264
6365 return {
6466 start: preferredDate ?.start ?.toString (),
6567 end: preferredDate ?.end ?.toString (),
68+ animalTypes: animalTypes ,
6669 };
6770});
6871
@@ -95,10 +98,10 @@ function updateData() {
9598 <UCard >
9699 <div class =" space-y-4" >
97100 <!-- Filters -->
98- <div class =" flex items-center gap-2 " >
101+ <div class =" flex items-center gap-3 " >
99102 <!-- Date filter -->
100103 <UPopover >
101- <UButton variant =" subtle " icon =" i-lucide-calendar" size =" sm" >
104+ <UButton variant =" soft " icon =" i-lucide-calendar" size =" sm" >
102105 <template v-if =" datesFilter .start " >
103106 {{ formatDate(datesFilter.start) }}
104107
@@ -118,6 +121,16 @@ function updateData() {
118121 </div >
119122 </template >
120123 </UPopover >
124+
125+ <!-- Animal type list -->
126+ <UInputMenu
127+ v-model =" dataManager.filters.animalTypes"
128+ :items =" page.props.animalTypes as string[]"
129+ variant =" soft"
130+ size =" sm"
131+ multiple
132+ placeholder =" Select animal types"
133+ />
121134 </div >
122135
123136 <USeparator />
0 commit comments