feat: デコレーションページから直接ファイルをアップロードおよび設定できるように

This commit is contained in:
yukineko 2023-11-20 17:48:52 +09:00
parent e0de86359c
commit 10a7a036a2
No known key found for this signature in database
GPG Key ID: E5BACB72109B7B90
1 changed files with 9 additions and 3 deletions

View File

@ -13,6 +13,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #caption>{{ avatarDecoration.description }}</template>
<div class="_gaps_m">
<MkButton rounded style="margin: 0 auto;" @click="selectImage(avatarDecoration, $event)">{{ i18n.ts.selectFile }}</MkButton>
<MkInput v-model="avatarDecoration.name">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
@ -38,9 +39,7 @@ import { } from 'vue';
import MkButton from '@/components/MkButton.vue';
import MkInput from '@/components/MkInput.vue';
import MkTextarea from '@/components/MkTextarea.vue';
import MkSwitch from '@/components/MkSwitch.vue';
import MkRadios from '@/components/MkRadios.vue';
import MkInfo from '@/components/MkInfo.vue';
import { selectFile } from '@/scripts/select-file.js';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
import { definePageMetadata } from '@/scripts/page-metadata.js';
@ -48,6 +47,13 @@ import MkFolder from '@/components/MkFolder.vue';
let avatarDecorations: any[] = $ref([]);
async function selectImage(decoration, ev) {
const file = await selectFile(ev.currentTarget ?? ev.target, null);
const candidate = file.name.replace(/\.(.+)$/, '');
decoration.name = candidate;
decoration.url = file.url;
}
function add() {
avatarDecorations.unshift({
_id: Math.random().toString(36),