This commit is contained in:
syuilo 2025-10-31 18:54:49 +09:00
parent 149066522e
commit 7bb9d3d0af
3 changed files with 6 additions and 8 deletions

View File

@ -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',

View File

@ -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,
},

View File

@ -15,6 +15,8 @@ const FXS = [
FX_frame,
] as const satisfies ImageEffectorFx<string, any>[];
// TODO: 上部にもラベルを配置できるようにする
export type ImageFrameParams = {
borderThickness: number;
labelThickness: number;