Appearance
Collage Header Component
File Information
- Path:
components/theme/global/CollageHeader.vue - Purpose: Main application header with alert notifications and search bar
- Type: Global Theme Component
Overview
The Collage Header component provides the main application header functionality, including uncategorized assets alert, search bar integration, and header skeleton loading states. It's used across all DAM pages to provide consistent header functionality.
Key Features
Uncategorized Assets Alert
- Displays alert when uncategorized assets exist
- Shows count of uncategorized assets
- Links to uploaded assets page
- Dismissible alert with close button
Search Bar Integration
- Conditionally displays search bar based on permissions
- Uses SearchBarTypeSense component
- Permission-based visibility
Loading States
- Skeleton loader when instance is loading
- Conditional rendering based on instance availability
Props
This component does not accept props. It uses computed properties and data from the Vuex store and authentication.
Data Properties
javascript
{
alertMsg: string, // Alert message text
alertReceived: boolean, // Alert visibility state
alertType: string, // Alert type
alertObj: object // Alert object with workspace_id and uncategoryCount
}Computed Properties
hasInstance
Checks if DAM instance is available:
- Returns
truewhen instance is loaded and not fetching - Uses
dam.fetchingInstancesanddam.damInstance?.idfrom store
canViewUncategorizedBar
Checks if user can view uncategorized assets alert:
- Validates workspace access
- Checks user permissions using
$canViewUncategorizedAssetsBar - Returns
falseif workspace not found or no access
canUseSearchBar
Checks if user can use search bar:
- Validates workspace access
- Checks user permissions using
$canUseSearchBar - Returns
falseif workspace not found or no access
Methods
closeAlert()
Closes the uncategorized assets alert:
- Sets
alertReceivedtofalse - Clears
alertMsgandalertObj - Emits
alertCloseevent via EventBus
Components Used
SearchBarTypeSense- Main search bar componentCloseIcon- Close icon SVG componentv-alert- Vuetify alert componentv-skeleton-loader- Vuetify skeleton loader
Event Handling
EventBus Events
Listens for:
- Alert events (handled via EventBus)
Emits:
alertClose- When alert is dismissed
Usage Examples
Basic Usage
vue
<template>
<CollageHeader />
</template>
<script>
import CollageHeader from '~/components/theme/global/CollageHeader.vue'
export default {
components: {
CollageHeader
}
}
</script>In Layout
vue
<template>
<div>
<CollageHeader />
<main>
<!-- Page content -->
</main>
</div>
</template>Alert Object Structure
javascript
{
workspace_id: number, // Workspace ID
uncategoryCount: number // Count of uncategorized assets
}Styling
Uses CSS classes:
.collage-header- Main header container.headerAlert- Applied when alert is visible.alert-box-header- Alert box styling.headerMainSkeleton- Skeleton loader styling
Integration Points
- Layout Components: Used in main application layout
- SearchBar Component: Integrates SearchBarTypeSense
- EventBus: Communicates alert state
- Store: Accesses DAM instance state
- Auth: Checks user permissions
Notes for Development
- Alert visibility depends on permissions
- Search bar visibility depends on permissions
- Uses EventBus for alert communication
- Skeleton loader shown during instance loading
- Alert automatically links to uploaded assets page
Related Documentation
- SearchBarTypeSense Component - Search bar component
- Left Menu Component - Navigation menu
- Styles - Collage Header - Header styles