Files
speckle-server/packages/frontend-2/components/error/page/WorkspaceAccessErrorBlock.vue
T
andrewwallacespeckle ebef771c3a refactor(fe2): Update queries to use workspaceBySlug (#3177)
* Use workspaceBySlug

* workspace invite support slug

* fix workspace invite email link

* added tests

* Update workspaceInvite query to use new option

* useSlug directly in query

---------

Co-authored-by: Fabis <fabis94@live.com>
2024-10-02 13:01:38 +01:00

35 lines
1.0 KiB
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 workspaceSlug = computed(() => route.params.slug as Optional<string>)
const isWorkspacesEnabled = useIsWorkspacesEnabled()
const { result } = useQuery(
workspaceInviteQuery,
() => ({
workspaceId: workspaceSlug.value,
token: token.value,
options: {
useSlug: true
}
}),
() => ({ enabled: !!(workspaceSlug.value && isWorkspacesEnabled.value) })
)
const invite = computed(() => result.value?.workspaceInvite)
const onError = (err: unknown) => logger.error(err)
</script>