Appearance
Preview Dialog
File Information
- Path:
components/dam/Dialogs/PreviewDialog.vue - Purpose: Full-screen asset preview with navigation and actions
Overview
The Preview Dialog component provides a full-screen preview interface for viewing assets with navigation controls, zoom functionality, and action buttons. It supports images, videos, PDFs, and other file types.
Key Features
Asset Preview
- Full-screen preview
- Image preview
- Video playback
- PDF viewer
- Document preview
Navigation
- Previous asset navigation
- Next asset navigation
- Keyboard shortcuts
- Asset list navigation
Zoom Controls
- Zoom in/out
- Pan functionality
- Fit to screen
- Reset zoom
Actions
- Download asset
- Share asset
- Edit asset
- Delete asset
- View details
Asset Information
- Asset name display
- Asset metadata
- File size and type
- Creation date
Props
javascript
{
dialog: {
type: Boolean,
default: false
},
asset: {
type: Object,
required: true
},
assetList: {
type: Array,
default: () => []
// List of assets for navigation
},
currentIndex: {
type: Number,
default: 0
// Current asset index in list
}
}Data Properties
javascript
{
zoomLevel: 1, // Zoom level (1 = 100%)
panning: false, // Panning state
panStart: null, // Pan start position
loading: false // Loading state
}Computed Properties
currentAsset
Returns current asset being previewed
hasPrevious
Checks if previous asset exists
hasNext
Checks if next asset exists
previewUrl
Returns asset preview URL
Methods
openPreview(asset, index)
Opens preview for asset:
- Sets current asset
- Sets current index
- Loads asset preview
- Handles errors
closePreview()
Closes preview dialog:
- Emits close event
- Resets zoom
- Clears state
navigatePrevious()
Navigates to previous asset:
- Decrements index
- Loads previous asset
- Updates preview
navigateNext()
Navigates to next asset:
- Increments index
- Loads next asset
- Updates preview
zoomIn()
Zooms in preview:
- Increases zoom level
- Updates zoom
- Maintains center
zoomOut()
Zooms out preview:
- Decreases zoom level
- Updates zoom
- Maintains center
resetZoom()
Resets zoom level:
- Sets zoom to 1
- Resets pan
- Fits to screen
downloadAsset()
Downloads current asset:
- Gets download URL
- Triggers download
- Handles errors
Events
close- Dialog closedasset-changed- Asset changed (navigation)download- Asset download requestedshare- Asset share requestededit- Asset edit requested
Keyboard Shortcuts
Arrow Left- Previous assetArrow Right- Next assetEscape- Close dialog+/-- Zoom in/out0- Reset zoom
Usage Examples
Basic Usage
vue
<template>
<PreviewDialog
:dialog="showPreview"
:asset="selectedAsset"
:asset-list="assets"
:current-index="currentIndex"
@close="showPreview = false"
@asset-changed="handleAssetChanged"
/>
</template>
<script>
import PreviewDialog from '~/components/dam/Dialogs/PreviewDialog.vue'
export default {
components: {
PreviewDialog
}
}
</script>Integration Points
- Asset List: Opens from asset cards
- Search Results: Preview from search
- Folder Views: Preview from folders
- Quick View: Alternative preview
Notes for Development
- Supports multiple file types
- Keyboard navigation enabled
- Zoom for images only
- Video playback supported
- PDF viewer integration
Related Documentation
- Quick View Dialog - Quick preview alternative
- Asset Details Page - Asset management
- Asset List Component - Asset display