@@ -522,9 +532,10 @@
on:change={handleToggleVisibility}
bind:showLoadingSpinner
bind:toggleVisibility
+ {countTotalPeople}
screenHeight={innerHeight}
>
-
+
{#each people as person, index (person.id)}
-
+
diff --git a/web/src/lib/components/shared-components/combobox.svelte b/web/src/lib/components/shared-components/combobox.svelte
index d0ce0e25a9..44994c2955 100644
--- a/web/src/lib/components/shared-components/combobox.svelte
+++ b/web/src/lib/components/shared-components/combobox.svelte
@@ -1,12 +1,7 @@
@@ -15,34 +10,32 @@
import Icon from '$lib/components/elements/icon.svelte';
import { clickOutside } from '$lib/utils/click-outside';
- import { mdiMagnify, mdiUnfoldMoreHorizontal } from '@mdi/js';
+ import { mdiMagnify, mdiUnfoldMoreHorizontal, mdiClose } from '@mdi/js';
import { createEventDispatcher } from 'svelte';
+ import IconButton from '../elements/buttons/icon-button.svelte';
- export let type: Type = 'button';
+ export let id: string | undefined = undefined;
export let options: ComboBoxOption[] = [];
- export let selectedOption: ComboBoxOption | undefined = undefined;
+ export let selectedOption: ComboBoxOption | undefined;
export let placeholder = '';
- export const label = '';
- export let noLabel = false;
let isOpen = false;
- let searchQuery = '';
+ let searchQuery = selectedOption?.label || '';
$: filteredOptions = options.filter((option) => option.label.toLowerCase().includes(searchQuery.toLowerCase()));
const dispatch = createEventDispatcher<{
- select: ComboBoxOption;
+ select: ComboBoxOption | undefined;
click: void;
}>();
- let handleClick = () => {
+ const handleClick = () => {
searchQuery = '';
- isOpen = !isOpen;
+ isOpen = true;
dispatch('click');
};
let handleOutClick = () => {
- searchQuery = '';
isOpen = false;
};
@@ -51,49 +44,77 @@
dispatch('select', option);
isOpen = false;
};
+
+ const onClear = () => {
+ selectedOption = undefined;
+ searchQuery = '';
+ dispatch('select', selectedOption);
+ };