diff --git a/packages/frontend-2/components/viewer/models/Card.vue b/packages/frontend-2/components/viewer/models/Card.vue index 186739e63..a1a3f8705 100644 --- a/packages/frontend-2/components/viewer/models/Card.vue +++ b/packages/frontend-2/components/viewer/models/Card.vue @@ -118,6 +118,7 @@ import { getTargetObjectIds } from '~~/lib/object-sidebar/helpers' import { useLoadLatestVersion } from '~~/lib/viewer/composables/resources' import { SpeckleViewer } from '@speckle/shared' import { useMixpanel } from '~~/lib/core/composables/mp' +import { useCopyModelLink } from '~~/lib/projects/composables/modelManagement' import { Ellipsis } from 'lucide-vue-next' type ModelItem = NonNullable> @@ -149,6 +150,7 @@ const { ui: { filters } } = useInjectedViewerState() const mp = useMixpanel() +const copyModelLink = useCopyModelLink() const { formattedRelativeDate, formattedFullDate } = useDateFormatters() const route = useRoute() @@ -174,15 +176,19 @@ const removeEnabled = computed(() => items.value.length > 1) const actionsItems = computed(() => [ [ { - title: 'Load latest version', - id: 'load-latest-version', - disabled: isLatest.value, - disabledTooltip: 'Already on the latest version' + title: 'Copy link to model', + id: 'copy-link-to-model' }, { title: 'Show version history', id: 'show-version-history' }, + { + title: 'Load latest version', + id: 'load-latest-version', + disabled: isLatest.value, + disabledTooltip: 'Already on the latest version' + }, { title: 'Show version changes', id: 'show-version-changes', @@ -343,6 +349,11 @@ const onActionChosen = async (params: { item: LayoutMenuItem }) => { const { item } = params switch (item.id) { + case 'copy-link-to-model': + if (project.value) { + copyModelLink({ model: { projectId: project.value.id, id: props.model.id } }) + } + break case 'load-latest-version': if (!isLatest.value) { loadLatestVersion()