83d8035dc2
* root + server * frontend * frontend-2 * dui3 * dui3 * tailwind theme * ui-components * preview service * viewer * viewer-sandbox * fileimport-service * webhook service * objectloader * shared * ui-components-nuxt * WIP full config * WIP full linter * eslint projectwide util * minor fix * removing redundant ci * clean up test errors * fixed prettier formatting * CI improvements * TSC lint fix * 'buildBatch' needs to be async since some batch types (like Text) require it. Removed a disabled liniting rule from ObjLoader * removed unnecessary void --------- Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
47 lines
1.3 KiB
Vue
47 lines
1.3 KiB
Vue
<template>
|
|
<NuxtErrorBoundary @error="onError">
|
|
<ProjectsInviteBanner
|
|
v-if="invite"
|
|
:invite="invite"
|
|
:show-stream-name="false"
|
|
:auto-accept="shouldAutoAcceptInvite"
|
|
@processed="onProcessed"
|
|
/>
|
|
</NuxtErrorBoundary>
|
|
</template>
|
|
<script setup lang="ts">
|
|
import type { Optional } from '@speckle/shared'
|
|
import { useQuery } from '@vue/apollo-composable'
|
|
import { useNavigateToProject } from '~~/lib/common/helpers/route'
|
|
import { projectInviteQuery } from '~~/lib/projects/graphql/queries'
|
|
|
|
const route = useRoute()
|
|
const goToProject = useNavigateToProject()
|
|
const logger = useLogger()
|
|
|
|
const token = computed(() => route.query.token as Optional<string>)
|
|
const projectId = computed(() => route.params.id as Optional<string>)
|
|
const shouldAutoAcceptInvite = computed(() => route.query.accept === 'true')
|
|
|
|
const { result } = useQuery(
|
|
projectInviteQuery,
|
|
() => ({
|
|
projectId: projectId.value || '',
|
|
token: token.value
|
|
}),
|
|
() => ({ enabled: !!projectId.value })
|
|
)
|
|
|
|
const invite = computed(() => result.value?.projectInvite)
|
|
|
|
const onError = (err: unknown) => logger.error(err)
|
|
|
|
const onProcessed = (val: { accepted: boolean }) => {
|
|
const { accepted } = val
|
|
|
|
if (accepted && projectId.value && import.meta.client) {
|
|
goToProject({ id: projectId.value })
|
|
}
|
|
}
|
|
</script>
|