mirror of
https://github.com/immich-app/immich.git
synced 2025-01-10 13:56:47 +01:00
f55b3add80
Co-authored-by: Thomas Way <thomas@6f.io>
53 lines
1.1 KiB
TypeScript
53 lines
1.1 KiB
TypeScript
import type { AssetResponseDto } from '@api';
|
|
|
|
export enum BucketPosition {
|
|
Above = 'above',
|
|
Below = 'below',
|
|
Visible = 'visible',
|
|
Unknown = 'unknown',
|
|
}
|
|
|
|
export class AssetBucket {
|
|
/**
|
|
* The DOM height of the bucket in pixel
|
|
* This value is first estimated by the number of asset and later is corrected as the user scroll
|
|
*/
|
|
bucketHeight!: number;
|
|
bucketDate!: string;
|
|
assets!: AssetResponseDto[];
|
|
cancelToken!: AbortController;
|
|
position!: BucketPosition;
|
|
}
|
|
|
|
export class AssetGridState {
|
|
/**
|
|
* The total height of the timeline in pixel
|
|
* This value is first estimated by the number of asset and later is corrected as the user scroll
|
|
*/
|
|
timelineHeight = 0;
|
|
|
|
/**
|
|
* The fixed viewport height in pixel
|
|
*/
|
|
viewportHeight = 0;
|
|
|
|
/**
|
|
* The fixed viewport width in pixel
|
|
*/
|
|
viewportWidth = 0;
|
|
|
|
/**
|
|
* List of bucket information
|
|
*/
|
|
buckets: AssetBucket[] = [];
|
|
|
|
/**
|
|
* Total assets that have been loaded
|
|
*/
|
|
assets: AssetResponseDto[] = [];
|
|
|
|
/**
|
|
* User that owns assets
|
|
*/
|
|
userId: string | undefined;
|
|
}
|