Skip to content

Components Documentation

Overview

This section documents all Vue components used in the Admin Frontend application. Components are organized by functionality and located in the components/ directory.

Component Structure

DAM Components

AssetList

Components for displaying and managing assets:

  • AssetContainer - Asset preview container
  • AssetUpload - Asset upload interface
  • Versions - Asset version management
  • AddTags - Tag management for assets

Collage

Components for collage functionality:

  • FileListingCard - Asset card in collage view
  • AvatarList - User avatar list
  • MediaResources - Media resource display
  • VideoHoverContent - Video hover actions
  • NonVideoHoverContent - Non-video hover actions

Folders

Folder management components:

  • FolderCard - Folder display card
  • FolderDialogs - Folder operation dialogs

Search-related components:

  • SearchBar - Search input component
  • SearchBarTypeSense - Typesense search bar
  • SearchFilter - Filter panel
  • SearchTabs - Search tabs navigation
  • SearchBulkActions - Bulk action toolbar

Dialogs

Dialog components for various operations:

  • AdvanceShareDialog - Advanced sharing options
  • AssetPermissionDialog - Asset permissions
  • CreateCollageDialog - Create collage dialog
  • PermissionDialog - General permission dialog
  • PreviewDialog - Asset preview dialog
  • QuickViewDialog - Quick view dialog
  • ShareAssetDialog - Share asset dialog

Theme Components

Global

Global theme components:

  • CollageHeader - Main application header
  • CoreHeader - Core header component
  • LeftMenu - Left navigation menu
  • DamNotification - DAM notifications
  • OverlayLoader - Loading overlay
  • Error - Error display component

Settings

Settings-related components:

  • AccountSettingsLeftMenu - Settings navigation
  • WorkspaceNote - Workspace notes

Table Components

Table components for data display:

  • announcementTable - Announcements table
  • externalUserTable - External users table
  • InvoiceTable - Invoices table
  • shareLinkListTable - Share links table
  • usersMenuOption - User menu options
  • wpAdminsTable - Workspace admins table

Utility Components

  • BreadCrumbs - Breadcrumb navigation
  • ViewToggle - View mode toggle
  • UpgradePlanSection - Plan upgrade section
  • EmailNotificationsAlert - Email notification alert

Component Patterns

Props

Components use props for data input:

javascript
props: {
  file: Object,
  folder: Object,
  canEdit: Boolean,
  // ... other props
}

Events

Components emit events for parent communication:

javascript
this.$emit('fileSelect', file)
this.$emit('menuAction', action)

Slots

Many components use slots for flexible content:

vue
<slot name="actions"></slot>
<slot name="content"></slot>

Component Best Practices

  1. Single Responsibility - Each component has a focused purpose
  2. Reusability - Components are designed for reuse
  3. Props Validation - Props are validated with types
  4. Event Communication - Parent-child communication via events
  5. Scoped Styles - Styles are scoped to prevent conflicts

Component Documentation

Detailed documentation for each component includes:

  • Purpose and functionality
  • Props and their types
  • Events emitted
  • Slots available
  • Usage examples
  • Dependencies