Files
speckle-server/packages/frontend-2/components/error/page/WorkspaceAccessErrorBlock.vue
T
Kristaps Fabians Geikins 2bb7802fb9 feat: accept & decline workspace invite as a registered member (#2675)
* abstract base invite banner

* WIP banner actions

* WIP modify obj

* minor fix

* invite accept/decline cache mutations

* banner accept/decline basically works

* new block for accepting workspace invite

* WIP wrong account flow

* login/registration block changes

* add email invite related changes

* add new email FE

* add email w/ invite works

* final adjustments

* minor fixes

* addressing cr comments

* no-FF support

* extra workspace ff checks
2024-08-19 13:01:25 +03:00

32 lines
993 B
Vue

<template>
<NuxtErrorBoundary @error="onError">
<WorkspaceInviteBlock v-if="invite" :invite="invite" />
<ErrorPageGenericUnauthorizedBlock v-else resource-type="workspace" />
</NuxtErrorBoundary>
</template>
<script setup lang="ts">
import { type Optional } from '@speckle/shared'
import { useQuery } from '@vue/apollo-composable'
import { workspaceInviteQuery } from '~/lib/workspaces/graphql/queries'
const route = useRoute()
const logger = useLogger()
const token = computed(() => route.query.token as Optional<string>)
const workspaceId = computed(() => route.params.id as Optional<string>)
const isWorkspacesEnabled = useIsWorkspacesEnabled()
const { result } = useQuery(
workspaceInviteQuery,
() => ({
workspaceId: workspaceId.value,
token: token.value
}),
() => ({ enabled: !!(workspaceId.value && isWorkspacesEnabled.value) })
)
const invite = computed(() => result.value?.workspaceInvite)
const onError = (err: unknown) => logger.error(err)
</script>