1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-06-12 17:34:03 +02:00

fix(frontend): popupのemit型が正しく利用できるように修正 (#16826)

* fix(frontend): popupのemit型が正しく利用できるように修正

* fix: revert unnecessary code (for testing purpose)

* fix lint

* fix type errors

* fix types

* add comment

* fix

* fix

* fix: OverloadToUnionの仕組みを変更

* add comments, clean up

* fix lint

* fix types

* clean up [ci skip]

* fix

* add comments [ci skip]
This commit is contained in:
かっこかり
2026-01-09 12:21:08 +09:00
committed by GitHub
parent 75b5dc1cd8
commit 2a14025c29
24 changed files with 196 additions and 167 deletions

View File

@@ -71,7 +71,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>
<script lang="ts" setup>
import { computed, defineAsyncComponent, markRaw, ref } from 'vue';
import * as Misskey from 'misskey-js';
import { computed, markRaw, ref } from 'vue';
import MkButton from '@/components/MkButton.vue';
import MkInput from '@/components/MkInput.vue';
import MkPagination from '@/components/MkPagination.vue';
@@ -116,7 +117,7 @@ const selectAll = () => {
}
};
const toggleSelect = (emoji) => {
const toggleSelect = (emoji: Misskey.entities.EmojiDetailed) => {
if (selectedEmojis.value.includes(emoji.id)) {
selectedEmojis.value = selectedEmojis.value.filter(x => x !== emoji.id);
} else {
@@ -124,19 +125,23 @@ const toggleSelect = (emoji) => {
}
};
const add = async (ev: MouseEvent) => {
const add = async () => {
const { dispose } = await os.popupAsyncWithDialog(import('./emoji-edit-dialog.vue').then(x => x.default), {
}, {
done: result => {
if (result.created) {
paginator.prepend(result.created);
const nowIso = (new Date()).toISOString();
paginator.prepend({
...result.created,
createdAt: nowIso,
});
}
},
closed: () => dispose(),
});
};
const edit = async (emoji) => {
const edit = async (emoji: Misskey.entities.EmojiDetailed) => {
const { dispose } = await os.popupAsyncWithDialog(import('./emoji-edit-dialog.vue').then(x => x.default), {
emoji: emoji,
}, {

View File

@@ -131,10 +131,11 @@ function move() {
const f = file.value;
selectDriveFolder(null).then(folder => {
selectDriveFolder(null).then(({ canceled, folders }) => {
if (canceled) return;
misskeyApi('drive/files/update', {
fileId: f.id,
folderId: folder[0] ? folder[0].id : null,
folderId: folders[0] ? folders[0].id : null,
}).then(async () => {
await _fetch_();
});

View File

@@ -66,7 +66,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkInfo warn>{{ i18n.ts.rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn }}</MkInfo>
</div>
</MkFolder>
<MkSwitch v-model="isSensitive">isSensitive</MkSwitch>
<MkSwitch v-model="isSensitive">{{ i18n.ts.sensitive }}</MkSwitch>
<MkSwitch v-model="localOnly">{{ i18n.ts.localOnly }}</MkSwitch>
<MkButton v-if="emoji" danger @click="del()"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
</div>
@@ -99,7 +99,7 @@ const props = defineProps<{
}>();
const emit = defineEmits<{
(ev: 'done', v: { deleted?: boolean; updated?: Misskey.entities.AdminEmojiUpdateRequest; created?: Misskey.entities.AdminEmojiUpdateRequest }): void,
(ev: 'done', v: { deleted?: boolean; updated?: Misskey.entities.EmojiDetailed; created?: Misskey.entities.EmojiDetailed }): void,
(ev: 'closed'): void
}>();
@@ -157,19 +157,29 @@ async function done() {
localOnly: localOnly.value,
roleIdsThatCanBeUsedThisEmojiAsReaction: rolesThatCanBeUsedThisEmojiAsReaction.value.map(x => x.id),
fileId: file.value ? file.value.id : undefined,
};
} satisfies Misskey.entities.AdminEmojiUpdateRequest;
if (props.emoji) {
const emojiDetailed = {
id: props.emoji.id,
aliases: params.aliases,
name: params.name,
category: params.category,
host: props.emoji.host,
url: file.value ? file.value.url : props.emoji.url,
license: params.license,
isSensitive: params.isSensitive,
localOnly: params.localOnly,
roleIdsThatCanBeUsedThisEmojiAsReaction: params.roleIdsThatCanBeUsedThisEmojiAsReaction,
} satisfies Misskey.entities.EmojiDetailed;
await os.apiWithDialog('admin/emoji/update', {
id: props.emoji.id,
...params,
});
emit('done', {
updated: {
id: props.emoji.id,
...params,
},
updated: emojiDetailed,
});
windowEl.value?.close();

View File

@@ -296,8 +296,9 @@ if (prefer.s.uploadFolder) {
}
function chooseUploadFolder() {
selectDriveFolder(null).then(async folder => {
prefer.commit('uploadFolder', folder[0] ? folder[0].id : null);
selectDriveFolder(null).then(async ({ canceled, folders }) => {
if (canceled) return;
prefer.commit('uploadFolder', folders[0] ? folders[0].id : null);
os.success();
if (prefer.s.uploadFolder) {
uploadFolder.value = await misskeyApi('drive/folders/show', {