From 57602d60a258728b607020c0c497a61eaa8ff90e Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Mon, 29 Sep 2025 23:39:07 +0800 Subject: [PATCH] Refactor thumbnail size handling to use new enum --- api-docs/openapi/v3_0/aggregated.json | 18 +++-- .../v3_0/apis_console.api_v1alpha1.json | 8 +-- .../v3_0/apis_extension.api_v1alpha1.json | 8 +-- .../v3_0/apis_public.api_v1alpha1.json | 18 +++-- .../openapi/v3_0/apis_uc.api_v1alpha1.json | 4 +- .../AttachmentSingleThumbnailItem.vue | 66 +++---------------- .../AttachmentSingleThumbnailList.vue | 60 +++++------------ .../composables/use-thumbnail-detail.ts | 4 +- .../src/api/thumbnail-v1alpha1-public-api.ts | 24 +++++-- 9 files changed, 79 insertions(+), 131 deletions(-) diff --git a/api-docs/openapi/v3_0/aggregated.json b/api-docs/openapi/v3_0/aggregated.json index 3d9d43635..1789959ac 100644 --- a/api-docs/openapi/v3_0/aggregated.json +++ b/api-docs/openapi/v3_0/aggregated.json @@ -6679,12 +6679,18 @@ } }, { - "description": "The size of the thumbnail,available values are s,m,l,xl", + "description": "The size of the thumbnail", "in": "query", "name": "size", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "S", + "M", + "L", + "XL" + ] } } ], @@ -20587,12 +20593,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, @@ -22363,12 +22369,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, diff --git a/api-docs/openapi/v3_0/apis_console.api_v1alpha1.json b/api-docs/openapi/v3_0/apis_console.api_v1alpha1.json index e2acb30ef..c9f14fbcd 100644 --- a/api-docs/openapi/v3_0/apis_console.api_v1alpha1.json +++ b/api-docs/openapi/v3_0/apis_console.api_v1alpha1.json @@ -5475,12 +5475,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, @@ -6015,12 +6015,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, diff --git a/api-docs/openapi/v3_0/apis_extension.api_v1alpha1.json b/api-docs/openapi/v3_0/apis_extension.api_v1alpha1.json index 56727c963..f10c49a4f 100644 --- a/api-docs/openapi/v3_0/apis_extension.api_v1alpha1.json +++ b/api-docs/openapi/v3_0/apis_extension.api_v1alpha1.json @@ -12903,12 +12903,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, @@ -14281,12 +14281,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, diff --git a/api-docs/openapi/v3_0/apis_public.api_v1alpha1.json b/api-docs/openapi/v3_0/apis_public.api_v1alpha1.json index 8f5f4e7dd..de8a1d444 100644 --- a/api-docs/openapi/v3_0/apis_public.api_v1alpha1.json +++ b/api-docs/openapi/v3_0/apis_public.api_v1alpha1.json @@ -1159,12 +1159,18 @@ } }, { - "description": "The size of the thumbnail,available values are s,m,l,xl", + "description": "The size of the thumbnail", "in": "query", "name": "size", "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "S", + "M", + "L", + "XL" + ] } } ], @@ -2613,12 +2619,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, @@ -3191,12 +3197,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, diff --git a/api-docs/openapi/v3_0/apis_uc.api_v1alpha1.json b/api-docs/openapi/v3_0/apis_uc.api_v1alpha1.json index 56bf52a90..0de12cbf9 100644 --- a/api-docs/openapi/v3_0/apis_uc.api_v1alpha1.json +++ b/api-docs/openapi/v3_0/apis_uc.api_v1alpha1.json @@ -2470,12 +2470,12 @@ }, "visible": { "type": "string", - "default": "PUBLIC", "enum": [ "PUBLIC", "INTERNAL", "PRIVATE" - ] + ], + "default": "PUBLIC" } } }, diff --git a/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailItem.vue b/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailItem.vue index b3d435d36..e8e3ef669 100644 --- a/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailItem.vue +++ b/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailItem.vue @@ -1,87 +1,39 @@ diff --git a/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailList.vue b/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailList.vue index 0871a3c7b..f5886c014 100644 --- a/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailList.vue +++ b/ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailList.vue @@ -1,14 +1,8 @@ diff --git a/ui/console-src/modules/contents/attachments/composables/use-thumbnail-detail.ts b/ui/console-src/modules/contents/attachments/composables/use-thumbnail-detail.ts index 636f2c6d1..2569b3119 100644 --- a/ui/console-src/modules/contents/attachments/composables/use-thumbnail-detail.ts +++ b/ui/console-src/modules/contents/attachments/composables/use-thumbnail-detail.ts @@ -1,5 +1,5 @@ import { - LocalThumbnailSpecSizeEnum, + GetThumbnailByUriSizeEnum, LocalThumbnailStatusPhaseEnum, type LocalThumbnail, } from "@halo-dev/api-client"; @@ -7,7 +7,7 @@ import { IconCheckboxCircle, IconErrorWarning } from "@halo-dev/components"; import { computed, type Component, type Ref } from "vue"; import RiTimeLine from "~icons/ri/time-line"; -export const SIZE_MAP: Record = { +export const SIZE_MAP: Record = { XL: "1600w", L: "1200w", M: "800w", diff --git a/ui/packages/api-client/src/api/thumbnail-v1alpha1-public-api.ts b/ui/packages/api-client/src/api/thumbnail-v1alpha1-public-api.ts index 79774f429..11863d49a 100644 --- a/ui/packages/api-client/src/api/thumbnail-v1alpha1-public-api.ts +++ b/ui/packages/api-client/src/api/thumbnail-v1alpha1-public-api.ts @@ -30,11 +30,11 @@ export const ThumbnailV1alpha1PublicApiAxiosParamCreator = function (configurati /** * Get thumbnail by URI * @param {string} uri The URI of the image - * @param {string} size The size of the thumbnail,available values are s,m,l,xl + * @param {GetThumbnailByUriSizeEnum} size The size of the thumbnail * @param {*} [options] Override http request option. * @throws {RequiredError} */ - getThumbnailByUri: async (uri: string, size: string, options: RawAxiosRequestConfig = {}): Promise => { + getThumbnailByUri: async (uri: string, size: GetThumbnailByUriSizeEnum, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'uri' is not null or undefined assertParamExists('getThumbnailByUri', 'uri', uri) // verify required parameter 'size' is not null or undefined @@ -91,11 +91,11 @@ export const ThumbnailV1alpha1PublicApiFp = function(configuration?: Configurati /** * Get thumbnail by URI * @param {string} uri The URI of the image - * @param {string} size The size of the thumbnail,available values are s,m,l,xl + * @param {GetThumbnailByUriSizeEnum} size The size of the thumbnail * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async getThumbnailByUri(uri: string, size: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + async getThumbnailByUri(uri: string, size: GetThumbnailByUriSizeEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { const localVarAxiosArgs = await localVarAxiosParamCreator.getThumbnailByUri(uri, size, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['ThumbnailV1alpha1PublicApi.getThumbnailByUri']?.[localVarOperationServerIndex]?.url; @@ -137,11 +137,11 @@ export interface ThumbnailV1alpha1PublicApiGetThumbnailByUriRequest { readonly uri: string /** - * The size of the thumbnail,available values are s,m,l,xl - * @type {string} + * The size of the thumbnail + * @type {'S' | 'M' | 'L' | 'XL'} * @memberof ThumbnailV1alpha1PublicApiGetThumbnailByUri */ - readonly size: string + readonly size: GetThumbnailByUriSizeEnum } /** @@ -163,3 +163,13 @@ export class ThumbnailV1alpha1PublicApi extends BaseAPI { } } +/** + * @export + */ +export const GetThumbnailByUriSizeEnum = { + S: 'S', + M: 'M', + L: 'L', + Xl: 'XL' +} as const; +export type GetThumbnailByUriSizeEnum = typeof GetThumbnailByUriSizeEnum[keyof typeof GetThumbnailByUriSizeEnum];