fix: migrate to useRouteParams and useRouteQuery

Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
This commit is contained in:
Maksim Sukharev 2025-08-22 10:57:48 +02:00
parent b6ffab6069
commit fe4f02b0a1
3 changed files with 14 additions and 30 deletions

View file

@ -12,6 +12,7 @@ const ignorePatterns = [
'@nextcloud/vue',
'@mdi/svg',
'@vueuse/core',
'@vueuse/router',
'@vueuse/shared',
'bail',
'ccount', // ESM dependency of remark-gfm

View file

@ -3,25 +3,19 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { RouteParamValueRaw } from 'vue-router'
import { createSharedComposable } from '@vueuse/core'
import { computed, ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { useRouteQuery } from '@vueuse/router'
/**
* Shared composable to get threadId of current thread in conversation
*/
export const useGetThreadId = createSharedComposable(function() {
const router = useRouter()
const route = useRoute()
if (router) {
return computed<number>({
get: () => route.query.threadId ? Number(route.query.threadId) : 0,
set: (value: number) => {
router.push({ query: { ...route.query, threadId: value !== 0 ? value : undefined } })
},
})
} else {
return ref(0)
}
return useRouteQuery<RouteParamValueRaw, number>('threadId', '0', {
transform: {
get: (value: RouteParamValueRaw | undefined) => value ? Number(value) : 0,
set: (value: number) => value !== 0 ? String(value) : undefined,
},
})
})

View file

@ -4,24 +4,13 @@
*/
import { createSharedComposable } from '@vueuse/core'
import { computed } from 'vue'
import { useTokenStore } from '../stores/token.ts'
/**
* FIXME: if router is available (main app), rely on it.
* otherwise mock route object and expose controls
*
* TODO: move tokenStore.updateToken from router change to here
*
* const route = useRouter() ? useRoute() : undefined
* return computed<string>(() => route?.params?.token ?? tokenStore.token)
*/
import { useRouteParams } from '@vueuse/router'
/**
* Shared composable to get token of current conversation
*/
export const useGetToken = createSharedComposable(function() {
const tokenStore = useTokenStore()
return computed<string>(() => tokenStore.token)
return useRouteParams<string>('token', '', {
transform: (value: string | undefined) => value ?? '',
})
})