From 79fdb64d7a30c0ec542c371f5138b2e88b8658a4 Mon Sep 17 00:00:00 2001 From: Dan Popescu Date: Tue, 21 Nov 2023 18:55:22 +0200 Subject: [PATCH] feat(post 003): add post about QSelect useFileteredSelect --- pages/posts/post_003.md | 131 +++++++++++++++++++++++++++++++++++++++ pages/posts/post_003.png | Bin 0 -> 42546 bytes 2 files changed, 131 insertions(+) create mode 100644 pages/posts/post_003.md create mode 100644 pages/posts/post_003.png diff --git a/pages/posts/post_003.md b/pages/posts/post_003.md new file mode 100644 index 0000000..0ca32f2 --- /dev/null +++ b/pages/posts/post_003.md @@ -0,0 +1,131 @@ +--- +title: Generic composable function for Quasar QSelect with filtering +description: A Vue composable for simplifying the usage of QSelect with filtering in Quasar. +date: 2023-11-21 +tags: [quasar, javascript] +outline: deep +--- + + + + + +## Problem description + +In order to make a Quasar QSelect filterable you need a `@filter` function that updates a destination variable that is used for `:options`. + +Most of the time this requires an original (complete) list of options, a filtering function and a filtered list of options. + +## Solution + +You can create a composable `useFilteredSelect` that encapsulates and hides all the complexity. + +This composable: +- receives as parameters: + - a list (or ref or computed of a list) of options OR a function returning a list (or ref or computed of a list) of options or a promise of a list + - an optional filtering function (you can skip this if you want to search the list options as string) + - an optional object of QSelect `props` (so that you don't need to repeat them for multiple QSelects) + - a callback function to be called after the QSelect list is updated (it is called with a ref to QSelect) + +- returns a reactive object that can be directly use with `v-bind` on QSelect - the returned object has: + - the optional `props` + - an `options` key with the filtered list of options + - an `onFilter` event handler for QSelect + +This composable will be combined with a filtering function. There are three pre-defined functions: +- one that filters the options as string, case insensitive, match anywhere +- one that receives the name of a key and returns a function that filters the list by the content of that key as string, case insensitive, match anywhere +- one that returns the whole list (for server side filtering) + +```ts +import { ref, unref, reactive, type Ref, type MaybeRefOrGetter } from 'vue'; + +type MaybePromise = T | Promise | PromiseLike; + +export function createMappedFilterFn(prop?: string | null) { + return function (search: string, list: Array) { + if ([null, undefined, ''].includes(search)) { + return list; + } + + const needle = String(search).toLocaleLowerCase(); + return [null, undefined, ''].includes(prop) + ? list.filter((item) => String(item).toLocaleLowerCase().includes(needle)) + : list.filter((item) => + String(item[prop]).toLocaleLowerCase().includes(needle), + ); + }; +} + +export const stringFilterFn = createMappedFilterFn(); +export const noFilterFn = (_, items: Array) => items; + +export function useFilteredSelect, Af>( + optionsOrFn: + | MaybeRefOrGetter> + | ((search: string) => MaybePromise>>), + filterFn: (search: string, list: Array) => Array = stringFilterFn, + props: P = {} as P, + afterFn?: Af, +) { + const getOptions = + typeof optionsOrFn === 'function' ? optionsOrFn : () => optionsOrFn; + const filteredOpts = ref( + typeof optionsOrFn === 'function' ? [] : optionsOrFn, + ); + return reactive({ + ...props, + options: filteredOpts, + async onFilter( + search: string, + doneFn: (callbackFn: () => void, afterFn: Af) => void, + abortFn: () => void, + ) { + try { + const options = (await getOptions(search)) as Array; + const newOpts = filterFn(search, unref(options)); + doneFn(() => { + filteredOpts.value = newOpts; + }, afterFn); + } catch (e) { + abortFn(); + } + }, + }); +} +``` + +Usage: + +```ts +const filteredSelectProps1 = useFilteredSelect( + ['Google', 'Facebook', 'Twitter', 'Apple', 'Oracle'], + undefined /* same as stringFunctionFn */, + { outlined: true, useInput: true, inputDebounce: 0 }, +); +``` + + +```html + + + + +``` + +## Demo + +The Vue REPL does not support processing SASS syntax yet, so the styles are converted to CSS. + + diff --git a/pages/posts/post_003.png b/pages/posts/post_003.png new file mode 100644 index 0000000000000000000000000000000000000000..f06971b16212e6478c18a6c7e80c582edb5ca835 GIT binary patch literal 42546 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 literal 0 HcmV?d00001