| | |
| | | import { watch } from 'vue'; |
| | | import { watch, unref } from 'vue'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | import { useTitle as usePageTitle } from '@vueuse/core'; |
| | | import { useGlobSetting } from '/@/hooks/setting'; |
| | | import { useRouter } from 'vue-router'; |
| | | import { useGlobSetting } from '../setting'; |
| | | import { useI18n } from './useI18n'; |
| | | import { setTitle } from '/@/utils/browser'; |
| | | |
| | | import { REDIRECT_NAME } from '/@/router/constant'; |
| | | |
| | | /** |
| | | * Listening to page changes and dynamically changing site titles |
| | | */ |
| | | export function useTitle() { |
| | | const { currentRoute } = useRouter(); |
| | | const { title } = useGlobSetting(); |
| | | const { t } = useI18n(); |
| | | const { currentRoute } = useRouter(); |
| | | |
| | | const pageTitle = usePageTitle(); |
| | | |
| | | watch( |
| | | () => currentRoute.value.path, |
| | | () => { |
| | | const globSetting = useGlobSetting(); |
| | | setTitle(t(currentRoute.value.meta.title), globSetting.title); |
| | | const route = unref(currentRoute); |
| | | |
| | | if (route.name === REDIRECT_NAME) { |
| | | return; |
| | | } |
| | | |
| | | const tTitle = t(route?.meta?.title as string); |
| | | pageTitle.value = tTitle ? ` ${tTitle} - ${title} ` : `${title}`; |
| | | }, |
| | | { immediate: true, flush: 'post' } |
| | | { immediate: true }, |
| | | ); |
| | | } |