summaryrefslogtreecommitdiff
path: root/packages/frontend/src/preferences
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-11-06 20:25:17 +0900
committerGitHub <noreply@github.com>2025-11-06 20:25:17 +0900
commit4ba18690d7abd7eea086bb59e6cbcc8ead9e121a (patch)
tree7d25ec47d8711d945b08e3903642f2e982f40048 /packages/frontend/src/preferences
parentfix(frontend): improve startViewTransition handling (diff)
downloadmisskey-4ba18690d7abd7eea086bb59e6cbcc8ead9e121a.tar.gz
misskey-4ba18690d7abd7eea086bb59e6cbcc8ead9e121a.tar.bz2
misskey-4ba18690d7abd7eea086bb59e6cbcc8ead9e121a.zip
feat(frontend): EXIFフレーム機能 (#16725)
* wip * wip * Update ImageEffector.ts * Update image-label-renderer.ts * Update image-label-renderer.ts * wip * Update image-label-renderer.ts * wip * wip * wip * wip * wip * wip * wip * Update use-uploader.ts * Update watermark.ts * wip * wu * wip * Update image-frame-renderer.ts * wip * wip * Update image-frame-renderer.ts * Create ImageCompositor.ts * Update ImageCompositor.ts * wip * wip * Update ImageEffector.ts * wip * Update use-uploader.ts * wip * wip * wip * wip * Update fxs.ts * wip * wip * wip * Update CHANGELOG.md * wip * wip * Update MkImageEffectorDialog.vue * Update MkImageEffectorDialog.vue * Update MkImageFrameEditorDialog.vue * Update use-uploader.ts * improve error handling * Update use-uploader.ts * 🎨 * wip * wip * lazy load * lazy load * wip * wip * wip
Diffstat (limited to 'packages/frontend/src/preferences')
-rw-r--r--packages/frontend/src/preferences/def.ts23
1 files changed, 22 insertions, 1 deletions
diff --git a/packages/frontend/src/preferences/def.ts b/packages/frontend/src/preferences/def.ts
index 915b192605..2f2107d9ed 100644
--- a/packages/frontend/src/preferences/def.ts
+++ b/packages/frontend/src/preferences/def.ts
@@ -12,7 +12,8 @@ import type { SoundType } from '@/utility/sound.js';
import type { Plugin } from '@/plugin.js';
import type { DeviceKind } from '@/utility/device-kind.js';
import type { DeckProfile } from '@/deck.js';
-import type { WatermarkPreset } from '@/utility/watermark.js';
+import type { WatermarkPreset } from '@/utility/watermark/WatermarkRenderer.js';
+import type { ImageFramePreset } from '@/utility/image-frame-renderer/ImageFrameRenderer.js';
import { genId } from '@/utility/id.js';
import { DEFAULT_DEVICE_KIND } from '@/utility/device-kind.js';
import { deepEqual } from '@/utility/deep-equal.js';
@@ -437,6 +438,26 @@ export const PREF_DEF = definePreferences({
accountDependent: true,
default: null as WatermarkPreset['id'] | null,
},
+ imageFramePresets: {
+ accountDependent: true,
+ default: [] as ImageFramePreset[],
+ mergeStrategy: (a, b) => {
+ const mergedItems = [] as typeof a;
+ for (const x of a.concat(b)) {
+ const sameIdItem = mergedItems.find(y => y.id === x.id);
+ if (sameIdItem != null) {
+ if (deepEqual(x, sameIdItem)) { // 完全な重複は無視
+ continue;
+ } else { // IDは同じなのに内容が違う場合はマージ不可とする
+ throw new Error();
+ }
+ } else {
+ mergedItems.push(x);
+ }
+ }
+ return mergedItems;
+ },
+ },
defaultImageCompressionLevel: {
default: 2 as 0 | 1 | 2 | 3,
},