Files
speckle-server/packages/frontend-2/components/viewer/resources/LimitAlert.vue
T
Kristaps Fabians Geikins 596312ab0e feat(frontend): personal project limit disclaimers & prompts (#4822)
* ProjectsAdd wrapper

* WorkspaceMoveProject wrapper added

* move wrapper finalized

* passing through location

* more cleanup

* model add wrapper

* permissions cleanup

* add invite wrapper

* vue-tippy bugfix

* ViewerLimitsDialog prep

* upgrade limit alert prep

* limit alerts

* movemanager fix

* new add flow

* slug update fix

* add model flow

* invites?

* some extra fixes

* move unmount fix?

* more fixes

* vue-tsc update

* style: remove h-32 for smaller screens

* vue-tsc parser fix

* prep for new viewer limits dialog

* updated viewer dialogs

* comment variant cleanup

* CR comments

---------

Co-authored-by: michalspeckle <michal@speckle.systems>
2025-05-28 12:12:18 +03:00

51 lines
1.2 KiB
Vue

<template>
<ViewerResourcesPersonalLimitAlert
v-if="isPersonalLimit"
:limit-type="limitType"
:variant="variant"
:project="project"
/>
<ViewerResourcesUpgradeLimitAlert
v-else-if="project?.workspace"
:limit-type="limitType"
:variant="variant"
:workspace="project.workspace"
/>
<div v-else />
</template>
<script setup lang="ts">
import type { MaybeNullOrUndefined } from '@speckle/shared'
import { graphql } from '~/lib/common/generated/gql'
import type { ViewerResourcesLimitAlert_ProjectFragment } from '~/lib/common/generated/gql/graphql'
import type {
ViewerLimitAlertType,
ViewerLimitAlertVariant
} from '~/lib/common/helpers/permissions'
graphql(`
fragment ViewerResourcesLimitAlert_Project on Project {
id
workspaceId
workspace {
id
slug
...ViewerResourcesWorkspaceLimitAlert_Workspace
}
...WorkspaceMoveProject_Project
}
`)
const props = withDefaults(
defineProps<{
limitType: ViewerLimitAlertType
variant?: ViewerLimitAlertVariant
project: MaybeNullOrUndefined<ViewerResourcesLimitAlert_ProjectFragment>
}>(),
{
variant: 'alert'
}
)
const isPersonalLimit = computed(() => props.project && !props.project.workspaceId)
</script>