titleGuard.ts
503 Bytes
import type { Router } from 'vue-router';
import { useGlobSetting } from '/@/hooks/setting';
import { setTitle } from '/@/utils';
import { useI18n } from '/@/hooks/web/useI18n';
import { REDIRECT_NAME } from '/@/router/constant';
const globSetting = useGlobSetting();
export function createTitleGuard(router: Router) {
router.afterEach(async (to) => {
const { t } = useI18n();
to.name !== REDIRECT_NAME && setTitle(t(to.meta.title as string), globSetting.title);
return true;
});
}