diff --git a/src/helpers/linkShareHash.ts b/src/helpers/linkShareHash.ts new file mode 100644 index 000000000..707c450f9 --- /dev/null +++ b/src/helpers/linkShareHash.ts @@ -0,0 +1 @@ +export const LINK_SHARE_HASH_PREFIX = '#linkshare=' diff --git a/src/router/index.ts b/src/router/index.ts index 869a7fb60..64f0ee1c8 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -7,6 +7,7 @@ import {parseDateOrString} from '@/helpers/time/parseDateOrString' import {getNextWeekDate} from '@/helpers/time/getNextWeekDate' import {setTitle} from '@/helpers/setTitle' import {getToken} from '@/helpers/auth' +import {LINK_SHARE_HASH_PREFIX} from '@/helpers/linkShareHash' import {useProjectStore} from '@/stores/projects' import {useAuthStore} from '@/stores/auth' @@ -72,8 +73,6 @@ const NewProjectComponent = () => import('@/views/project/NewProject.vue') const EditTeamComponent = () => import('@/views/teams/EditTeam.vue') const NewTeamComponent = () => import('@/views/teams/NewTeam.vue') -const linkShareHashPrefix = '#linkshare=' - const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), scrollBehavior(to, from, savedPosition) { @@ -83,7 +82,7 @@ const router = createRouter({ } // Scroll to anchor should still work - if (to.hash && !to.hash.startsWith(linkShareHashPrefix)) { + if (to.hash && !to.hash.startsWith(LINK_SHARE_HASH_PREFIX)) { return {el: to.hash} } @@ -487,18 +486,18 @@ export async function getAuthForRoute(route: RouteLocation) { router.beforeEach(async (to, from) => { - if(from.hash && from.hash.startsWith(linkShareHashPrefix)) { + if(from.hash && from.hash.startsWith(LINK_SHARE_HASH_PREFIX)) { to.hash = from.hash } - if (to.hash.startsWith(linkShareHashPrefix)) { + if (to.hash.startsWith(LINK_SHARE_HASH_PREFIX)) { const currentAuthToken = getToken() if (currentAuthToken === null) { saveLastVisited(to.name as string, to.params, to.query) return { name: 'link-share.auth', params: { - share: to.hash.replace(linkShareHashPrefix, ''), + share: to.hash.replace(LINK_SHARE_HASH_PREFIX, ''), }, } } diff --git a/src/views/sharing/LinkSharingAuth.vue b/src/views/sharing/LinkSharingAuth.vue index f9c8c4c1b..026d151b2 100644 --- a/src/views/sharing/LinkSharingAuth.vue +++ b/src/views/sharing/LinkSharingAuth.vue @@ -40,6 +40,7 @@ import {useTitle} from '@vueuse/core' import Message from '@/components/misc/message.vue' import {PROJECT_VIEWS, type ProjectView} from '@/types/ProjectView' +import {LINK_SHARE_HASH_PREFIX} from '@/helpers/linkShareHash' import {useBaseStore} from '@/stores/base' import {useAuthStore} from '@/stores/auth' @@ -61,7 +62,6 @@ function useAuth() { const password = ref('') const authLinkShare = computed(() => authStore.authLinkShare) - const linkShareHashPrefix = '#linkshare=' async function authenticate() { authenticateWithPassword.value = false @@ -90,7 +90,7 @@ function useAuth() { ? route.query.view : 'list' - const hash = linkShareHashPrefix + route.params.share + const hash = LINK_SHARE_HASH_PREFIX + route.params.share const last = getLastVisitedRoute() if (last) {