Files
crater/resources/scripts/components/base-select/composables/useSearch.js
Mohit Panjwani 082d5cacf2 v5.0.0 update
2021-11-30 18:58:19 +05:30

41 lines
766 B
JavaScript

import { ref, toRefs, computed, watch } from 'vue'
export default function useSearch (props, context, dep)
{
const { preserveSearch } = toRefs(props)
// ================ DATA ================
const search = ref(props.initialSearch) || ref(null)
const input = ref(null)
// =============== METHODS ==============
const clearSearch = () => {
if (!preserveSearch.value) search.value = ''
}
const handleSearchInput = (e) => {
search.value = e.target.value
}
const handlePaste = (e) => {
context.emit('paste', e)
}
// ============== WATCHERS ==============
watch(search, (val) => {
context.emit('search-change', val)
})
return {
search,
input,
clearSearch,
handleSearchInput,
handlePaste,
}
}