Files
speckle-server/packages/frontend-2/components/error/page/ProjectInviteBanner.vue
T
Kristaps Fabians Geikins 83d8035dc2 chore: upgrade to eslint 9 (#2348)
* 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>
2024-06-12 14:38:02 +03:00

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>