Appearance
Share Asset Dialog
File Information
- Path:
components/dam/Dialogs/ShareAssetDialog/index.vue - Purpose: Create and manage share links and embed codes for assets, folders, and collages
Overview
The Share Asset Dialog component provides a user-friendly interface for creating share links and embed codes. It supports sharing assets, folders, and collages with basic settings and links to advanced share options.
Key Features
Share Link Generation
- Generate share links for assets
- Generate share links for folders
- Generate share links for collages
- Copy share link to clipboard
Embed Code Generation
- Generate embed codes for assets
- Customize embed dimensions
- Copy embed code to clipboard
- Preview embed code
Share Preview
- Preview shared asset
- Asset thumbnail display
- Asset information display
Tab Navigation
- Link tab for share links
- Embed tab for embed codes
- Seamless switching
Props
javascript
{
dialog: {
type: Boolean,
default: false
},
asset: {
type: Object,
required: true
// Asset, folder, or collage object
},
assetType: {
type: String,
default: 'asset'
// 'asset', 'folder', 'collage'
},
workspaceId: {
type: [String, Number],
required: true
}
}Data Properties
javascript
{
shareLink: null, // Share link object
embedCode: null, // Embed code object
shareUrl: '', // Share URL string
embedCodeHtml: '', // Embed code HTML string
loading: false, // Loading state
activeTab: 'link' // Active tab ('link' or 'embed')
}Computed Properties
shareUrlDisplay
Returns formatted share URL for display
canGenerateLink
Checks if share link can be generated
canGenerateEmbed
Checks if embed code can be generated
Methods
generateShareLink()
Generates share link:
- Calls share link API
- Updates share link state
- Updates share URL
- Handles errors
generateEmbedCode()
Generates embed code:
- Calls embed code API
- Updates embed code state
- Updates embed HTML
- Handles errors
copyShareLink()
Copies share link to clipboard:
- Copies URL to clipboard
- Shows success message
- Handles errors
copyEmbedCode()
Copies embed code to clipboard:
- Copies HTML to clipboard
- Shows success message
- Handles errors
openAdvancedSettings()
Opens advanced share dialog:
- Emits open-advanced event
- Passes share link data
- Closes current dialog
Events
close- Dialog closedopen-advanced- Advanced settings requestedshare-created- Share link createdembed-created- Embed code created
API Endpoints
Generate Share Link
- Endpoint:
POST /digital-assets/dashboard/generate-share-assets-url - Request Body:json
{ "workspace_id": 123, "asset_id": 456, "asset_type": "asset" } - Response: Share link object with URL
Generate Embed Code
- Endpoint:
POST /digital-assets/embed-code/generate - Request Body:json
{ "workspace_id": 123, "asset_id": 456 } - Response: Embed code object with HTML
Usage Examples
Basic Usage
vue
<template>
<ShareAssetDialog
:dialog="showShareDialog"
:asset="selectedAsset"
:asset-type="'asset'"
:workspace-id="workspaceId"
@close="showShareDialog = false"
@open-advanced="openAdvancedShare"
/>
</template>
<script>
import ShareAssetDialog from '~/components/dam/Dialogs/ShareAssetDialog/index.vue'
export default {
components: {
ShareAssetDialog
},
data() {
return {
showShareDialog: false,
selectedAsset: null
}
},
methods: {
openAdvancedShare(shareLink) {
// Open advanced share dialog
}
}
}
</script>Integration Points
- Asset Components: Share from asset cards
- Folder Components: Share folders
- Collage Components: Share collages
- Advanced Share Dialog: Advanced settings
Notes for Development
- Component supports multiple asset types
- Share links generated on demand
- Embed codes customizable
- Clipboard API used for copying
- Links to advanced share dialog
Related Documentation
- Advance Share Dialog - Advanced share settings
- Sharing Feature - Complete sharing system
- Sharing Page - Share management