From ef8f593de81a67e122ae0a7f03a99cab5f3c66fa Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 14 May 2026 12:43:30 +0900 Subject: [PATCH] attachments --- .../components/MkDriveFileSelectDialog.vue | 3 +- .../src/pages/room.add-object-dialog.vue | 20 +++++-- .../src/pages/room.object-customize-form.vue | 33 ++++++++++- packages/frontend/src/pages/room.vue | 19 ++++-- .../frontend/src/world/room/controller.ts | 16 ++--- packages/frontend/src/world/room/engine.ts | 47 ++++++++++----- packages/frontend/src/world/room/object.ts | 58 ++++++++++++++++--- .../src/world/room/objects/allInOnePc.ts | 2 +- .../src/world/room/objects/clippedPicture.ts | 2 +- .../src/world/room/objects/djPlayer.ts | 4 +- .../world/room/objects/handheldGameConsole.ts | 2 +- .../src/world/room/objects/laptopPc.ts | 2 +- .../src/world/room/objects/largeMousepad.ts | 2 +- .../src/world/room/objects/monitor.ts | 2 +- .../src/world/room/objects/pictureFrame.ts | 2 +- .../frontend/src/world/room/objects/poster.ts | 2 +- .../src/world/room/objects/tabletopFlag.ts | 2 +- .../room/objects/tabletopGlassPictureFrame.ts | 2 +- .../objects/tabletopLcdButtonsController.ts | 4 +- .../room/objects/tabletopPictureFrame.ts | 2 +- .../src/world/room/objects/tapestry.ts | 2 +- .../src/world/room/objects/wallCanvas.ts | 2 +- .../room/objects/wallGlassPictureFrame.ts | 2 +- .../frontend/src/world/room/previewEngine.ts | 19 +++--- .../src/world/room/previewEngineController.ts | 5 +- packages/frontend/src/world/room/utility.ts | 5 ++ packages/frontend/src/world/room/worker.ts | 4 +- 27 files changed, 199 insertions(+), 66 deletions(-) diff --git a/packages/frontend/src/components/MkDriveFileSelectDialog.vue b/packages/frontend/src/components/MkDriveFileSelectDialog.vue index 50b68b3d0f..698a71e70c 100644 --- a/packages/frontend/src/components/MkDriveFileSelectDialog.vue +++ b/packages/frontend/src/components/MkDriveFileSelectDialog.vue @@ -29,6 +29,7 @@ import * as Misskey from 'misskey-js'; import MkDrive from '@/components/MkDrive.vue'; import MkModalWindow from '@/components/MkModalWindow.vue'; import { i18n } from '@/i18n.js'; +import { deepClone } from '@/utility/clone.js'; withDefaults(defineProps<{ initialFolder?: Misskey.entities.DriveFolder['id'] | null; @@ -46,7 +47,7 @@ const dialog = useTemplateRef('dialog'); const selected = ref([]); function ok() { - emit('done', selected.value); + emit('done', deepClone(selected.value)); // selected.valueをそのまま渡すと純粋なオブジェクトではなくProxyが渡されてしまい、シチュエーションによってはそれによって不具合の原因になる(workerにpostMessageで渡せないなど) dialog.value?.close(); } diff --git a/packages/frontend/src/pages/room.add-object-dialog.vue b/packages/frontend/src/pages/room.add-object-dialog.vue index 76c3c34f73..832a2b62c3 100644 --- a/packages/frontend/src/pages/room.add-object-dialog.vue +++ b/packages/frontend/src/pages/room.add-object-dialog.vue @@ -54,7 +54,7 @@ SPDX-License-Identifier: AGPL-3.0-only :leaveToClass="prefer.s.animation ? $style.transition_options_leaveTo : ''" >
- +
@@ -66,10 +66,12 @@ SPDX-License-Identifier: AGPL-3.0-only