Files
speckle-server/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue
T
andrewwallacespeckle 531f33a813 Use WorkspaceCard
2025-04-10 15:33:47 +01:00

48 lines
1.2 KiB
Vue

<template>
<WorkspaceCard
:logo="workspace.logo ?? ''"
:name="workspace.name"
:team-count="workspace.team?.totalCount ?? 0"
>
<template #actions>
<FormButton
v-if="workspace.requestStatus"
color="outline"
size="sm"
disabled
class="capitalize"
>
{{ workspace.requestStatus }}
</FormButton>
<FormButton v-else color="outline" size="sm" @click="onRequest">
Request to join
</FormButton>
<FormButton color="subtle" size="sm" @click="onDismiss">Dismiss</FormButton>
</template>
</WorkspaceCard>
</template>
<script setup lang="ts">
import type { LimitedWorkspace } from '~~/lib/common/generated/gql/graphql'
import { useDiscoverableWorkspaces } from '~/lib/workspaces/composables/discoverableWorkspaces'
type WorkspaceWithStatus = LimitedWorkspace & {
requestStatus: string | null
}
const props = defineProps<{
workspace: WorkspaceWithStatus
}>()
const { requestToJoinWorkspace, dismissDiscoverableWorkspace } =
useDiscoverableWorkspaces()
const onRequest = () => {
requestToJoinWorkspace(props.workspace.id)
}
const onDismiss = () => {
dismissDiscoverableWorkspace(props.workspace.id)
}
</script>