Add ablum feature to web (#352)

* Added album page

* Refactor sidebar

* Added album assets count info

* Added album viewer page

* Refactor album sorting

* Fixed incorrectly showing selected asset in album selection

* Improve fetching speed with prefetch

* Refactor to use ImmichThubmnail component for all

* Update to the latest version of Svelte

* Implement fixed app bar in album viewer

* Added shared user avatar

* Correctly get all owned albums, including shared
This commit is contained in:
Alex 2022-07-15 23:18:17 -05:00 committed by GitHub
parent 1887b5a860
commit 7134f93eb8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
62 changed files with 2572 additions and 991 deletions

View file

@ -957,6 +957,20 @@ export interface SmartInfoResponseDto {
*/
'objects'?: Array<string> | null;
}
/**
*
* @export
* @enum {string}
*/
export const ThumbnailFormat = {
Jpeg: 'JPEG',
Webp: 'WEBP'
} as const;
export type ThumbnailFormat = typeof ThumbnailFormat[keyof typeof ThumbnailFormat];
/**
*
* @export
@ -2069,10 +2083,11 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
/**
*
* @param {string} assetId
* @param {ThumbnailFormat} [format]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getAssetThumbnail: async (assetId: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
getAssetThumbnail: async (assetId: string, format?: ThumbnailFormat, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'assetId' is not null or undefined
assertParamExists('getAssetThumbnail', 'assetId', assetId)
const localVarPath = `/asset/thumbnail/{assetId}`
@ -2092,6 +2107,10 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
// http bearer authentication required
await setBearerAuthToObject(localVarHeaderParameter, configuration)
if (format !== undefined) {
localVarQueryParameter['format'] = format;
}
setSearchParams(localVarUrlObj, localVarQueryParameter);
@ -2424,11 +2443,12 @@ export const AssetApiFp = function(configuration?: Configuration) {
/**
*
* @param {string} assetId
* @param {ThumbnailFormat} [format]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async getAssetThumbnail(assetId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.getAssetThumbnail(assetId, options);
async getAssetThumbnail(assetId: string, format?: ThumbnailFormat, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.getAssetThumbnail(assetId, format, options);
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
},
/**
@ -2564,11 +2584,12 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath
/**
*
* @param {string} assetId
* @param {ThumbnailFormat} [format]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getAssetThumbnail(assetId: string, options?: any): AxiosPromise<object> {
return localVarFp.getAssetThumbnail(assetId, options).then((request) => request(axios, basePath));
getAssetThumbnail(assetId: string, format?: ThumbnailFormat, options?: any): AxiosPromise<object> {
return localVarFp.getAssetThumbnail(assetId, format, options).then((request) => request(axios, basePath));
},
/**
*
@ -2709,12 +2730,13 @@ export class AssetApi extends BaseAPI {
/**
*
* @param {string} assetId
* @param {ThumbnailFormat} [format]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof AssetApi
*/
public getAssetThumbnail(assetId: string, options?: AxiosRequestConfig) {
return AssetApiFp(this.configuration).getAssetThumbnail(assetId, options).then((request) => request(this.axios, this.basePath));
public getAssetThumbnail(assetId: string, format?: ThumbnailFormat, options?: AxiosRequestConfig) {
return AssetApiFp(this.configuration).getAssetThumbnail(assetId, format, options).then((request) => request(this.axios, this.basePath));
}
/**