Files
speckle-server/packages/frontend-2/components/workspace/invite/DiscoverableWorkspaceBanner.vue
T
andrewwallacespeckle 3d7de381e7 Update card when autojoin
2025-05-27 16:26:37 +02:00

46 lines
1.3 KiB
Vue

<template>
<InviteBanner :invite="invite" @processed="handleRequest">
<template #message>
Your team is already using Workspaces, request to join the
<span class="font-medium">{{ workspace.name }}</span>
space!
</template>
</InviteBanner>
</template>
<script setup lang="ts">
import { useDiscoverableWorkspaces } from '~/lib/workspaces/composables/discoverableWorkspaces'
import { useMixpanel } from '~~/lib/core/composables/mp'
import type { LimitedWorkspace } from '~/lib/common/generated/gql/graphql'
const props = defineProps<{
workspace: LimitedWorkspace
}>()
const { requestToJoinWorkspace, dismissDiscoverableWorkspace } =
useDiscoverableWorkspaces()
const mixpanel = useMixpanel()
const invite = computed(() => ({
workspace: {
id: props.workspace.id,
logo: props.workspace.logo || undefined,
name: props.workspace.name
}
}))
const handleRequest = async (accept: boolean) => {
if (accept) {
await requestToJoinWorkspace(props.workspace, 'discovery banner')
} else {
await dismissDiscoverableWorkspace(props.workspace.id)
mixpanel.track('Workspace Discovery Banner Dismissed', {
workspaceId: props.workspace.id,
location: 'discovery_banner',
// eslint-disable-next-line camelcase
workspace_id: props.workspace.id
})
}
}
</script>