From 0e43bff3672e6923eb10ad6c8ac4d8df5436dc73 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Mon, 13 Oct 2025 16:38:23 +0700 Subject: [PATCH] dev: hotfix, added userQueryCRUD --- app/composables/useQueryCRUD.ts | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 app/composables/useQueryCRUD.ts diff --git a/app/composables/useQueryCRUD.ts b/app/composables/useQueryCRUD.ts new file mode 100644 index 00000000..a48e9a2b --- /dev/null +++ b/app/composables/useQueryCRUD.ts @@ -0,0 +1,46 @@ +import { computed } from 'vue' +import { useRoute, useRouter } from 'vue-router' + +export function useQueryCRUDMode(key: string = 'mode') { + const route = useRoute() + const router = useRouter() + + const mode = computed<'list' | 'entry'>({ + get: () => (route.query[key] && route.query[key] === 'entry' ? 'entry' : 'list'), + set: (val) => { + router.push({ + path: route.path, + query: { + ...route.query, + [key]: val, + }, + }) + }, + }) + + const goToEntry = () => (mode.value = 'entry') + const backToList = () =>(mode.value = 'list') + + return { mode, goToEntry, backToList } +} + +export function useQueryCRUDRecordId(key: string = 'record-id') { + const route = useRoute() + const router = useRouter() + + // const recordId = useState('route-query-' + key, () => '') + const recordId = computed({ + get: () => route.query[key], + set: (val: string) => { + router.replace({ + path: route.path, + query: { + ...route.query, + [key]: val, + }, + }) + }, + }) + + return { recordId } +}