diff --git a/app/components/app/encounter/filter-form-prev.vue b/app/components/app/encounter/filter-form-prev.vue new file mode 100644 index 00000000..31ec4476 --- /dev/null +++ b/app/components/app/encounter/filter-form-prev.vue @@ -0,0 +1,114 @@ + + + diff --git a/app/components/app/encounter/filter-form.vue b/app/components/app/encounter/filter-form.vue index 31ec4476..9ae0123b 100644 --- a/app/components/app/encounter/filter-form.vue +++ b/app/components/app/encounter/filter-form.vue @@ -1,114 +1,107 @@ diff --git a/app/components/app/encounter/filter-nav.vue b/app/components/app/encounter/filter-nav.vue index 8f4c850e..30b95b96 100644 --- a/app/components/app/encounter/filter-nav.vue +++ b/app/components/app/encounter/filter-nav.vue @@ -20,11 +20,13 @@ const props = defineProps<{ const emit = defineEmits<{ apply: [filters: { personName: string; startDate: string; endDate: string }] + click: [] }>() const searchQuery = ref('') const isRoleRegistration = props.activePositon === 'registration' const isRoleMedical = props.activePositon === 'medical' +const debouncedSearchQuery = refDebounced(searchQuery, 500) const df = new DateFormatter('en-US', { dateStyle: 'medium', @@ -43,14 +45,18 @@ const oneMonthAgoCalendar = new CalendarDate( oneMonthAgo.getDate(), ) -const value = ref({ +const dateRange = ref({ start: oneMonthAgoCalendar, end: todayCalendar, }) as Ref function onFilterClick() { - const startDate = value.value.start ? value.value.start.toString() : '' - const endDate = value.value.end ? value.value.end.toString() : startDate + emit('click') +} + +function onFilterApply() { + const startDate = dateRange.value.start ? dateRange.value.start.toString() : '' + const endDate = dateRange.value.end ? dateRange.value.end.toString() : startDate emit('apply', { personName: searchQuery.value, @@ -58,6 +64,18 @@ function onFilterClick() { endDate, }) } + +watch(debouncedSearchQuery, () => { + onFilterApply() +}) + +watch( + dateRange, + () => { + onFilterApply() + }, + { deep: true }, +)