2023-04-14 19:16:28 +00:00
|
|
|
import {computed} from 'vue'
|
|
|
|
import type {Ref} from 'vue'
|
2021-11-14 20:57:36 +00:00
|
|
|
|
2023-04-14 13:47:54 +00:00
|
|
|
import {useTitle as useTitleVueUse, toRef} from '@vueuse/core'
|
2021-11-14 20:57:36 +00:00
|
|
|
|
2022-09-13 15:33:56 +00:00
|
|
|
type UseTitleParameters = Parameters<typeof useTitleVueUse>
|
2021-11-14 20:57:36 +00:00
|
|
|
|
2022-09-13 15:33:56 +00:00
|
|
|
export function useTitle(...args: UseTitleParameters) {
|
2021-11-14 20:57:36 +00:00
|
|
|
|
2022-09-13 15:33:56 +00:00
|
|
|
const [newTitle, ...restArgs] = args
|
|
|
|
|
2023-04-14 19:16:28 +00:00
|
|
|
const pageTitle = toRef(newTitle) as Ref<string>
|
2022-09-13 15:33:56 +00:00
|
|
|
|
2023-04-14 19:16:28 +00:00
|
|
|
const completeTitle = computed(() =>
|
2022-09-13 15:33:56 +00:00
|
|
|
(typeof pageTitle.value === 'undefined' || pageTitle.value === '')
|
2023-04-14 19:16:28 +00:00
|
|
|
? 'Vikunja'
|
|
|
|
: `${pageTitle.value} | Vikunja`,
|
2022-09-13 15:33:56 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
return useTitleVueUse(completeTitle, ...restArgs)
|
2021-11-14 20:57:36 +00:00
|
|
|
}
|