From 56e34119d59ae25423c0614236a87a5609486831 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Thu, 4 Dec 2025 11:36:22 +0700 Subject: [PATCH] dev: hotfix again, suddenly useQueryCRUD was missing --- app/composables/useQueryCRUD.ts | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/app/composables/useQueryCRUD.ts b/app/composables/useQueryCRUD.ts index f81649bd..655440f6 100644 --- a/app/composables/useQueryCRUD.ts +++ b/app/composables/useQueryCRUD.ts @@ -1,6 +1,58 @@ import { computed } from 'vue' import { useRoute, useRouter } from 'vue-router' +export function useQueryCRUD(modeKey: string = 'mode', recordIdKey: string = 'record-id') { + type params = { + mode: string, + recordId: any + } + + const route = useRoute() + const router = useRouter() + + const crudQueryParams = computed ({ + get: () => { + return { + mode: route.query[modeKey] && route.query[modeKey] === 'entry' ? 'entry' : 'list', + recordId: route.query[recordIdKey] + } + }, + set: (val) => { + router.push({ + path: route.path, + query: { + ...route.query, + [modeKey]: val.mode, + [recordIdKey]: val.recordId, + }, + }) + }, + }) + + const goToEntry = (myRecord_id?: any) => { + if(myRecord_id) { + crudQueryParams.value.mode = 'entry' + crudQueryParams.value.recordId = myRecord_id + } else { + crudQueryParams.value.mode = 'entry' + crudQueryParams.value.recordId = undefined + } + } + + const backToList = () => { + delete route.query[recordIdKey] + router.push({ + path: route.path, + query: { + ...route.query, + mode: 'list', + }, + }) + } + + return { crudQueryParams, goToEntry, backToList } +} + export function useQueryCRUDMode(key: string = 'mode') { const route = useRoute() const router = useRouter()