diff --git a/locales/index.d.ts b/locales/index.d.ts index 6f3d2b3853..17cdc7ca64 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -12049,6 +12049,14 @@ export interface Locale extends ILocale { * 保存せずに終了しますか? */ "quitWithoutSaveConfirm": string; + /** + * このファイルは対応していません + */ + "driveFileTypeWarn": string; + /** + * 画像ファイルを選択してください + */ + "driveFileTypeWarnDescription": string; /** * ウォーターマークの編集 */ diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index d4bd2c3116..ed1f5354df 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -3227,6 +3227,8 @@ defaultPreset: "デフォルトのプリセット" _watermarkEditor: tip: "画像にクレジット情報などのウォーターマークを追加することができます。" quitWithoutSaveConfirm: "保存せずに終了しますか?" + driveFileTypeWarn: "このファイルは対応していません" + driveFileTypeWarnDescription: "画像ファイルを選択してください" title: "ウォーターマークの編集" cover: "全体に被せる" repeat: "敷き詰める" diff --git a/packages/frontend/src/components/MkFormDialog.file.vue b/packages/frontend/src/components/MkFormDialog.file.vue index a11075c342..182ff3ccf5 100644 --- a/packages/frontend/src/components/MkFormDialog.file.vue +++ b/packages/frontend/src/components/MkFormDialog.file.vue @@ -51,7 +51,10 @@ if (props.fileId) { } function selectButton(ev: MouseEvent) { - selectFile(ev.currentTarget ?? ev.target).then(async (file) => { + selectFile({ + anchorElement: ev.currentTarget ?? ev.target, + multiple: false, + }).then(async (file) => { if (!file) return; if (props.validate && !await props.validate(file)) return; diff --git a/packages/frontend/src/components/MkImageEffectorDialog.vue b/packages/frontend/src/components/MkImageEffectorDialog.vue index 997dd4d528..42502ba449 100644 --- a/packages/frontend/src/components/MkImageEffectorDialog.vue +++ b/packages/frontend/src/components/MkImageEffectorDialog.vue @@ -77,6 +77,7 @@ const dialog = useTemplateRef('dialog'); async function cancel() { if (layers.length > 0) { const { canceled } = await os.confirm({ + type: 'warning', text: i18n.ts._imageEffector.discardChangesConfirm, }); if (canceled) return; @@ -132,7 +133,7 @@ function onLayerDelete(layer: ImageEffectorLayer) { const canvasEl = useTemplateRef('canvasEl'); -let renderer: ImageEffector | null = null; +let renderer: ImageEffector | null = null; let imageBitmap: ImageBitmap | null = null; onMounted(async () => { diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 982ed88003..cd4fabea02 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -120,7 +120,7 @@ import { formatTimeString } from '@/utility/format-time-string.js'; import { Autocomplete } from '@/utility/autocomplete.js'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; -import { selectFiles } from '@/utility/drive.js'; +import { selectFile } from '@/utility/drive.js'; import { store } from '@/store.js'; import MkInfo from '@/components/MkInfo.vue'; import { i18n } from '@/i18n.js'; @@ -437,7 +437,11 @@ function focus() { function chooseFileFrom(ev) { if (props.mock) return; - selectFiles(ev.currentTarget ?? ev.target, i18n.ts.attachFile).then(files_ => { + selectFile({ + anchorElement: ev.currentTarget ?? ev.target, + multiple: true, + label: i18n.ts.attachFile, + }).then(files_ => { for (const file of files_) { files.value.push(file); } diff --git a/packages/frontend/src/components/MkUploaderDialog.vue b/packages/frontend/src/components/MkUploaderDialog.vue index b2e4896ed3..4c4bc26bfd 100644 --- a/packages/frontend/src/components/MkUploaderDialog.vue +++ b/packages/frontend/src/components/MkUploaderDialog.vue @@ -79,8 +79,16 @@ SPDX-License-Identifier: AGPL-3.0-only + +