Appearance
Card Types ​
File Information ​
- Path:
app/types/cards.ts - Purpose: TypeScript interfaces for card components (FolderCard, CollageCard, AssetContainer)
- Exported From:
~/types(viaindex.ts)
Overview ​
This file contains TypeScript interfaces for card components including folder cards, collage cards, and asset containers. These types define props, emits, and data structures for card components.
Type Definitions ​
Folder Card Types ​
FolderCardFolder ​
Folder data structure for folder card component.
typescript
interface FolderCardFolder {
id: number | string
folder_name?: string
is_selected?: boolean
is_uncategorised?: boolean
total_assets?: number
sub_category_count?: number
[key: string]: any
}Properties:
id: number | string- Folder identifierfolder_name?: string- Folder nameis_selected?: boolean- Selection stateis_uncategorised?: boolean- Uncategorized flagtotal_assets?: number- Total assets countsub_category_count?: number- Subfolder count[key: string]: any- Additional properties
FolderCardProps ​
Folder card component props.
typescript
interface FolderCardProps {
folder: FolderCardFolder
downloading?: boolean
enableCheckbox?: boolean
total_category?: number
total_assets?: number
flag?: string
shiftKey?: number
hide_download?: boolean
}Properties:
folder: FolderCardFolder- Folder datadownloading?: boolean- Download in progressenableCheckbox?: boolean- Enable selection checkboxtotal_category?: number- Total categoriestotal_assets?: number- Total assetsflag?: string- Component flagshiftKey?: number- Shift key statehide_download?: boolean- Hide download button
FolderCardMenuItem ​
Folder card menu item structure.
typescript
interface FolderCardMenuItem {
icon: string
label: string
clickEvent: () => void
visible: boolean
disable: boolean
}FolderCardEmitEvents ​
Folder card component emit events.
typescript
interface FolderCardEmitEvents {
(e: 'share', folder: FolderCardFolder): void
(e: 'download', folder?: FolderCardFolder): void
(e: 'open-folder'): void
(e: 'fileSelect', event: Event): void
}FolderCardComposableReturn ​
Folder card composable return type.
typescript
interface FolderCardComposableReturn {
ishover: Ref<boolean>
hoverTimeout: Ref<ReturnType<typeof setTimeout> | null>
workspaceId: string | number
screenWidth: Ref<number>
isSmallScreen: ComputedRef<boolean>
menuItems: ComputedRef<FolderCardMenuItem[]>
trackFolderClick: (folder: FolderCardFolder) => void
openFolder: (event: MouseEvent) => void
onCardSelect: (event: Event) => void
updateScreenWidth: () => void
folderCardMenu: Ref<any>
}Collage Card Types ​
CollageCardPreviewImage ​
Collage preview image structure.
typescript
interface CollageCardPreviewImage {
url: string
file_type?: string
uuid?: string
}CollageCardCollage ​
Collage data structure for collage card component.
typescript
interface CollageCardCollage {
id: string | number
assets_count: number
assets_id?: (string | number)[]
preview_images?: CollageCardPreviewImage[]
name?: string
collection_name?: string
[key: string]: any
}CollageCardProps ​
Collage card component props.
typescript
interface CollageCardProps {
collage: CollageCardCollage
flag?: string
downloading?: boolean
}CollageCardMenuItem ​
Collage card menu item structure.
typescript
interface CollageCardMenuItem {
icon: string
label: string
clickEvent: () => void
visible: boolean
disable: boolean
}Asset Container Types ​
AssetContainerOpts ​
Asset container options.
typescript
interface AssetContainerOpts {
file: DamFile
}Note: DamFile is imported from ./common
AssetContainerProps ​
Asset container component props.
typescript
interface AssetContainerProps {
file: any
selected?: boolean
downloading?: boolean
insideFolder?: boolean
}Usage Examples ​
Folder Card ​
typescript
import type { FolderCardProps, FolderCardFolder } from '~/types'
const folder: FolderCardFolder = {
id: 123,
folder_name: 'My Folder',
total_assets: 10,
sub_category_count: 2
}
const props: FolderCardProps = {
folder,
enableCheckbox: true,
flag: 'folders'
}Collage Card ​
typescript
import type { CollageCardProps, CollageCardCollage } from '~/types'
const collage: CollageCardCollage = {
id: 456,
assets_count: 5,
name: 'My Collage',
preview_images: [{
url: '/preview.jpg',
file_type: 'jpg'
}]
}
const props: CollageCardProps = {
collage,
flag: 'collage'
}Asset Container ​
typescript
import type { AssetContainerProps } from '~/types'
const props: AssetContainerProps = {
file: assetData,
selected: false,
downloading: false,
insideFolder: true
}Related Types ​
DamFile- Fromcommon.tsRef,ComputedRef- From Vue
Import Example ​
typescript
import type {
FolderCardProps,
FolderCardFolder,
CollageCardProps,
CollageCardCollage,
AssetContainerProps
} from '~/types'Notes ​
- All card types are exported from
~/types - Folder and collage cards share similar structure
- Asset container uses generic
anyfor file type - Composable return types include reactive refs and computed values