diff --git a/packages/frontend/src/composables/use-uploader.ts b/packages/frontend/src/composables/use-uploader.ts index 6c81b48e97..2c452d44ec 100644 --- a/packages/frontend/src/composables/use-uploader.ts +++ b/packages/frontend/src/composables/use-uploader.ts @@ -11,7 +11,7 @@ import { computed, markRaw, onMounted, onUnmounted, ref, triggerRef } from 'vue' import ExifReader from 'exifreader'; import type { MenuItem } from '@/types/menu.js'; import type { WatermarkPreset } from '@/utility/watermark.js'; -import type { ImageFramePreset } from '@/utility/image-frame-renderer.js'; +import type { ImageFrameParams, ImageFramePreset } from '@/utility/image-frame-renderer.js'; import { genId } from '@/utility/id.js'; import { i18n } from '@/i18n.js'; import { prefer } from '@/preferences.js'; @@ -88,7 +88,7 @@ export type UploaderItem = { preprocessedFile?: Blob | null; file: File; watermarkPreset: WatermarkPreset | null; - imageFramePreset: ImageFramePreset | null; + imageFrameParams: ImageFrameParams | null; isSensitive?: boolean; caption?: string | null; abort?: (() => void) | null; @@ -153,7 +153,7 @@ export function useUploader(options: { uploadFailed: false, compressionLevel: IMAGE_COMPRESSION_SUPPORTED_TYPES.includes(file.type) ? prefer.s.defaultImageCompressionLevel : VIDEO_COMPRESSION_SUPPORTED_TYPES.includes(file.type) ? prefer.s.defaultVideoCompressionLevel : 0, watermarkPreset: uploaderFeatures.value.watermark && $i.policies.watermarkAvailable ? (prefer.s.watermarkPresets.find(p => p.id === prefer.s.defaultWatermarkPresetId) ?? null) : null, - imageFramePreset: uploaderFeatures.value.imageEditing ? (prefer.s.imageFramePresets.find(p => p.id === prefer.s.defaultImageFramePresetId) ?? null) : null, + imageFrameParams: null, file: markRaw(file), }); const reactiveItem = items.value.at(-1)!; @@ -357,7 +357,7 @@ export function useUploader(options: { children: [{ type: 'radioOption', text: i18n.ts.none, - active: computed(() => item.imageFramePreset == null), + active: computed(() => item.imageFrameParams == null), action: () => changePreset(null), }, { type: 'divider', diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts index b7ac647835..4054e39afe 100644 --- a/packages/frontend/src/preferences/def.ts +++ b/packages/frontend/src/preferences/def.ts @@ -458,10 +458,6 @@ export const PREF_DEF = definePreferences({ return mergedItems; }, }, - defaultImageFramePresetId: { - accountDependent: true, - default: null as ImageFramePreset['id'] | null, - }, defaultImageCompressionLevel: { default: 2 as 0 | 1 | 2 | 3, }, diff --git a/packages/frontend/src/utility/image-frame-renderer.ts b/packages/frontend/src/utility/image-frame-renderer.ts index 42d520f140..bce3d12eb2 100644 --- a/packages/frontend/src/utility/image-frame-renderer.ts +++ b/packages/frontend/src/utility/image-frame-renderer.ts @@ -15,6 +15,8 @@ const FXS = [ FX_frame, ] as const satisfies ImageEffectorFx[]; +// TODO: 上部にもラベルを配置できるようにする + export type ImageFrameParams = { borderThickness: number; labelThickness: number;