refactor: emit search

This commit is contained in:
Thanaphon Frappet 2024-10-15 18:00:04 +07:00
parent 8d32765cce
commit 7510928e66

View file

@ -1,4 +1,6 @@
<script setup lang="ts">
import { watch } from 'vue';
const search = defineModel<string>('search');
const selectedItem = defineModel<unknown[]>('selectedItem', { default: [] });
@ -23,8 +25,16 @@ const props = withDefaults(
},
);
const emit = defineEmits<{
(e: 'search', v: string): void;
}>();
defineExpose({ select, assignSelect });
watch(search, () => {
emit('search', search.value || '');
});
function select(item?: unknown, all?: boolean) {
if (all) {
if (props.items.every((item) => selectedItem.value.includes(item))) {
@ -76,7 +86,7 @@ function assignSelect(to: unknown[], from: unknown[]) {
class="q-ml-auto"
:bg-color="$q.dark.isActive ? 'dark' : 'white'"
v-model="search"
debounce="200"
debounce="300"
>
<template #prepend>
<q-icon name="mdi-magnify" />