-
-
-
{{ avatarDecoration.name }}
-
+
+ {{ avatarDecoration.name }}
+ {{ avatarDecoration.description }}
+
+
+
+
+
+
+ {{ i18n.ts.name }}
+
+
+ {{ i18n.ts.description }}
+
+
+ {{ i18n.ts.imageUrl }}
+
+
+ {{ i18n.ts.save }}
+ {{ i18n.ts.delete }}
+
+
+
-
+
diff --git a/packages/frontend/src/pages/custom-emojis-manager.vue b/packages/frontend/src/pages/custom-emojis-manager.vue
index cae3f3ede9..1e416e22d3 100644
--- a/packages/frontend/src/pages/custom-emojis-manager.vue
+++ b/packages/frontend/src/pages/custom-emojis-manager.vue
@@ -116,7 +116,7 @@ const selectAll = () => {
if (selectedEmojis.value.length > 0) {
selectedEmojis.value = [];
} else {
- selectedEmojis.value = Array.from(emojisPaginationComponent.value?.items.values(), item => item.id);
+ selectedEmojis.value = Array.from(emojisPaginationComponent.value.items.values(), item => item.id);
}
};
@@ -133,7 +133,7 @@ const add = async (ev: MouseEvent) => {
}, {
done: result => {
if (result.created) {
- emojisPaginationComponent.value?.prepend(result.created);
+ emojisPaginationComponent.value.prepend(result.created);
}
},
closed: () => dispose(),
@@ -146,12 +146,12 @@ const edit = (emoji) => {
}, {
done: result => {
if (result.updated) {
- emojisPaginationComponent.value?.updateItem(result.updated.id, (oldEmoji) => ({
+ emojisPaginationComponent.value.updateItem(result.updated.id, (oldEmoji: any) => ({
...oldEmoji,
...result.updated,
}));
} else if (result.deleted) {
- emojisPaginationComponent.value?.removeItem(emoji.id);
+ emojisPaginationComponent.value.removeItem(emoji.id);
}
},
closed: () => dispose(),
@@ -226,7 +226,7 @@ const setCategoryBulk = async () => {
ids: selectedEmojis.value,
category: result,
});
- emojisPaginationComponent.value?.reload();
+ emojisPaginationComponent.value.reload();
};
const setLicenseBulk = async () => {
@@ -238,43 +238,43 @@ const setLicenseBulk = async () => {
ids: selectedEmojis.value,
license: result,
});
- emojisPaginationComponent.value?.reload();
+ emojisPaginationComponent.value.reload();
};
const addTagBulk = async () => {
const { canceled, result } = await os.inputText({
title: 'Tag',
});
- if (canceled || result == null) return;
+ if (canceled) return;
await os.apiWithDialog('admin/emoji/add-aliases-bulk', {
ids: selectedEmojis.value,
aliases: result.split(' '),
});
- emojisPaginationComponent.value?.reload();
+ emojisPaginationComponent.value.reload();
};
const removeTagBulk = async () => {
const { canceled, result } = await os.inputText({
title: 'Tag',
});
- if (canceled || result == null) return;
+ if (canceled) return;
await os.apiWithDialog('admin/emoji/remove-aliases-bulk', {
ids: selectedEmojis.value,
aliases: result.split(' '),
});
- emojisPaginationComponent.value?.reload();
+ emojisPaginationComponent.value.reload();
};
const setTagBulk = async () => {
const { canceled, result } = await os.inputText({
title: 'Tag',
});
- if (canceled || result == null) return;
+ if (canceled) return;
await os.apiWithDialog('admin/emoji/set-aliases-bulk', {
ids: selectedEmojis.value,
aliases: result.split(' '),
});
- emojisPaginationComponent.value?.reload();
+ emojisPaginationComponent.value.reload();
};
const delBulk = async () => {
@@ -286,7 +286,7 @@ const delBulk = async () => {
await os.apiWithDialog('admin/emoji/delete-bulk', {
ids: selectedEmojis.value,
});
- emojisPaginationComponent.value?.reload();
+ emojisPaginationComponent.value.reload();
};
const headerActions = computed(() => [{
diff --git a/packages/frontend/src/pages/emoji-edit-dialog.vue b/packages/frontend/src/pages/emoji-edit-dialog.vue
index 3765319b25..969aa6bbf7 100644
--- a/packages/frontend/src/pages/emoji-edit-dialog.vue
+++ b/packages/frontend/src/pages/emoji-edit-dialog.vue
@@ -8,9 +8,9 @@ SPDX-License-Identifier: AGPL-3.0-only
ref="windowEl"
:initialWidth="400"
:initialHeight="500"
- :canResize="true"
- @close="windowEl?.close()"
- @closed="emit('closed')"
+ :canResize="false"
+ @close="windowEl.close()"
+ @closed="$emit('closed')"
>
:{{ emoji.name }}:
New emoji
@@ -95,19 +95,14 @@ import { selectFile } from '@/scripts/select-file.js';
import MkRolePreview from '@/components/MkRolePreview.vue';
const props = defineProps<{
- emoji?: Misskey.entities.EmojiDetailed,
-}>();
-
-const emit = defineEmits<{
- (ev: 'done', v: { deleted?: boolean; updated?: Misskey.entities.AdminEmojiUpdateRequest; created?: Misskey.entities.AdminEmojiUpdateRequest }): void,
- (ev: 'closed'): void
+ emoji?: any,
}>();
const windowEl = ref
| null>(null);
const name = ref(props.emoji ? props.emoji.name : '');
-const category = ref(props.emoji?.category ? props.emoji.category : '');
+const category = ref(props.emoji ? props.emoji.category : '');
const aliases = ref(props.emoji ? props.emoji.aliases.join(' ') : '');
-const license = ref(props.emoji?.license ? props.emoji.license : '');
+const license = ref(props.emoji ? (props.emoji.license ?? '') : '');
const isSensitive = ref(props.emoji ? props.emoji.isSensitive : false);
const localOnly = ref(props.emoji ? props.emoji.localOnly : false);
const roleIdsThatCanBeUsedThisEmojiAsReaction = ref(props.emoji ? props.emoji.roleIdsThatCanBeUsedThisEmojiAsReaction : []);
@@ -120,7 +115,12 @@ watch(roleIdsThatCanBeUsedThisEmojiAsReaction, async () => {
const imgUrl = computed(() => file.value ? file.value.url : props.emoji ? `/emoji/${props.emoji.name}.webp` : null);
-async function changeImage(ev: Event) {
+const emit = defineEmits<{
+ (ev: 'done', v: { deleted?: boolean; updated?: any; created?: any }): void,
+ (ev: 'closed'): void
+}>();
+
+async function changeImage(ev) {
file.value = await selectFile(ev.currentTarget ?? ev.target, null);
const candidate = file.value.name.replace(/\.(.+)$/, '');
if (candidate.match(/^[a-z0-9_]+$/)) {
@@ -140,7 +140,7 @@ async function addRole() {
rolesThatCanBeUsedThisEmojiAsReaction.value.push(role);
}
-async function removeRole(role: Misskey.entities.RoleLite, ev: Event) {
+async function removeRole(role, ev) {
rolesThatCanBeUsedThisEmojiAsReaction.value = rolesThatCanBeUsedThisEmojiAsReaction.value.filter(x => x.id !== role.id);
}
@@ -172,7 +172,7 @@ async function done() {
},
});
- windowEl.value?.close();
+ windowEl.value.close();
} else {
const created = await os.apiWithDialog('admin/emoji/add', params);
@@ -180,12 +180,11 @@ async function done() {
created: created,
});
- windowEl.value?.close();
+ windowEl.value.close();
}
}
async function del() {
- if (!props.emoji) return;
const { canceled } = await os.confirm({
type: 'warning',
text: i18n.tsx.removeAreYouSure({ x: name.value }),
@@ -198,7 +197,7 @@ async function del() {
emit('done', {
deleted: true,
});
- windowEl.value?.close();
+ windowEl.value.close();
});
}
diff --git a/packages/frontend/src/pages/follow-requests.vue b/packages/frontend/src/pages/follow-requests.vue
index a840d0d0b3..8991af8086 100644
--- a/packages/frontend/src/pages/follow-requests.vue
+++ b/packages/frontend/src/pages/follow-requests.vue
@@ -55,13 +55,13 @@ const pagination = {
function accept(user) {
misskeyApi('following/requests/accept', { userId: user.id }).then(() => {
- paginationComponent.value?.reload();
+ paginationComponent.value.reload();
});
}
function reject(user) {
misskeyApi('following/requests/reject', { userId: user.id }).then(() => {
- paginationComponent.value?.reload();
+ paginationComponent.value.reload();
});
}
diff --git a/packages/frontend/src/pages/lookup.vue b/packages/frontend/src/pages/lookup.vue
index 6f10c69640..3233953942 100644
--- a/packages/frontend/src/pages/lookup.vue
+++ b/packages/frontend/src/pages/lookup.vue
@@ -40,7 +40,7 @@ function fetch() {
return;
}
- let promise: Promise;
+ let promise: Promise;
if (uri.startsWith('https://')) {
promise = misskeyApi('ap/show', {
diff --git a/packages/frontend/src/pages/miauth.vue b/packages/frontend/src/pages/miauth.vue
index e85d2c29c1..283f66ac45 100644
--- a/packages/frontend/src/pages/miauth.vue
+++ b/packages/frontend/src/pages/miauth.vue
@@ -17,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only
@deny="onDeny"
>
-
+
{{ i18n.ts._auth.byClickingYouWillBeRedirectedToThisUrl }}
{{ callback }}
@@ -65,7 +65,7 @@ async function onAccept(token: string) {
if (props.callback && props.callback !== '') {
const cbUrl = new URL(props.callback);
- if (['javascript:', 'file:', 'data:', 'mailto:', 'tel:', 'vbscript:'].includes(cbUrl.protocol)) throw new Error('invalid url');
+ if (['javascript:', 'file:', 'data:', 'mailto:', 'tel:'].includes(cbUrl.protocol)) throw new Error('invalid url');
cbUrl.searchParams.set('session', props.session);
location.href = cbUrl.toString();
} else {
diff --git a/packages/frontend/src/pages/my-clips/index.vue b/packages/frontend/src/pages/my-clips/index.vue
index acf37a9a2f..ece998a7a5 100644
--- a/packages/frontend/src/pages/my-clips/index.vue
+++ b/packages/frontend/src/pages/my-clips/index.vue
@@ -77,15 +77,15 @@ async function create() {
clipsCache.delete();
- pagingComponent.value?.reload();
+ pagingComponent.value.reload();
}
function onClipCreated() {
- pagingComponent.value?.reload();
+ pagingComponent.value.reload();
}
function onClipDeleted() {
- pagingComponent.value?.reload();
+ pagingComponent.value.reload();
}
const headerActions = computed(() => []);
diff --git a/packages/frontend/src/pages/my-lists/list.vue b/packages/frontend/src/pages/my-lists/list.vue
index 69e404bd85..804a5ae8f8 100644
--- a/packages/frontend/src/pages/my-lists/list.vue
+++ b/packages/frontend/src/pages/my-lists/list.vue
@@ -110,7 +110,7 @@ function addUser() {
listId: list.value.id,
userId: user.id,
}).then(() => {
- paginationEl.value?.reload();
+ paginationEl.value.reload();
});
});
}
@@ -126,7 +126,7 @@ async function removeUser(item, ev) {
listId: list.value.id,
userId: item.userId,
}).then(() => {
- paginationEl.value?.removeItem(item.id);
+ paginationEl.value.removeItem(item.id);
});
},
}], ev.currentTarget ?? ev.target);
diff --git a/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue b/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue
index c3ad6657b0..1cfe7a6d2d 100644
--- a/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue
+++ b/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
- emit('remove')">
+ $emit('remove')">
{{ i18n.ts._pages.blocks.image }}
@@ -61,7 +61,6 @@ const props = defineProps<{
id: string;
url: string;
name: string;
- roleIdsThatCanBeUsedThisDecoration: string[];
};
}>();
@@ -84,7 +83,6 @@ const emit = defineEmits<{
const dialog = shallowRef>();
const exceeded = computed(() => ($i.policies.avatarDecorationLimit - $i.avatarDecorations.length) <= 0);
-const locked = computed(() => props.decoration.roleIdsThatCanBeUsedThisDecoration.length > 0 && !$i.roles.some(r => props.decoration.roleIdsThatCanBeUsedThisDecoration.includes(r.id)));
const angle = ref((props.usingIndex != null ? $i.avatarDecorations[props.usingIndex].angle : null) ?? 0);
const flipH = ref((props.usingIndex != null ? $i.avatarDecorations[props.usingIndex].flipH : null) ?? false);
const offsetX = ref((props.usingIndex != null ? $i.avatarDecorations[props.usingIndex].offsetX : null) ?? 0);
@@ -110,7 +108,7 @@ const decorationsForPreview = computed(() => {
});
function cancel() {
- dialog.value?.close();
+ dialog.value.close();
}
async function update() {
@@ -120,7 +118,7 @@ async function update() {
offsetX: offsetX.value,
offsetY: offsetY.value,
});
- dialog.value?.close();
+ dialog.value.close();
}
async function attach() {
@@ -130,12 +128,12 @@ async function attach() {
offsetX: offsetX.value,
offsetY: offsetY.value,
});
- dialog.value?.close();
+ dialog.value.close();
}
async function detach() {
emit('detach');
- dialog.value?.close();
+ dialog.value.close();
}
diff --git a/packages/frontend/src/pages/settings/webhook.edit.vue b/packages/frontend/src/pages/settings/webhook.edit.vue
index 22b008fb61..40d23e36c5 100644
--- a/packages/frontend/src/pages/settings/webhook.edit.vue
+++ b/packages/frontend/src/pages/settings/webhook.edit.vue
@@ -44,7 +44,7 @@ SPDX-License-Identifier: AGPL-3.0-only
diff --git a/packages/frontend/src/pages/settings/webhook.new.vue b/packages/frontend/src/pages/settings/webhook.new.vue
index 727c4df2d6..d62357caaf 100644
--- a/packages/frontend/src/pages/settings/webhook.new.vue
+++ b/packages/frontend/src/pages/settings/webhook.new.vue
@@ -27,7 +27,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts._webhookSettings._events.note }}
{{ i18n.ts._webhookSettings._events.reply }}
{{ i18n.ts._webhookSettings._events.renote }}
- {{ i18n.ts._webhookSettings._events.reaction }}
+ {{ i18n.ts._webhookSettings._events.reaction }}
{{ i18n.ts._webhookSettings._events.mention }}
diff --git a/packages/frontend/src/pages/timeline.vue b/packages/frontend/src/pages/timeline.vue
index 044a1908ab..7a3195304b 100644
--- a/packages/frontend/src/pages/timeline.vue
+++ b/packages/frontend/src/pages/timeline.vue
@@ -17,7 +17,7 @@ SPDX-License-Identifier: AGPL-3.0-only