summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/components')
-rw-r--r--packages/frontend/src/components/MkReactedUsersDialog.vue4
-rw-r--r--packages/frontend/src/components/MkRenotedUsersDialog.vue65
2 files changed, 67 insertions, 2 deletions
diff --git a/packages/frontend/src/components/MkReactedUsersDialog.vue b/packages/frontend/src/components/MkReactedUsersDialog.vue
index 1506e24ce8..0c0cc36692 100644
--- a/packages/frontend/src/components/MkReactedUsersDialog.vue
+++ b/packages/frontend/src/components/MkReactedUsersDialog.vue
@@ -6,7 +6,7 @@
@close="dialog.close()"
@closed="emit('closed')"
>
- <template #header>{{ i18n.ts.reactions }}</template>
+ <template #header>{{ i18n.ts.reactionsList }}</template>
<MkSpacer :margin-min="20" :margin-max="28">
<div v-if="note" class="_gaps">
@@ -21,7 +21,7 @@
<span style="margin-left: 4px;">{{ note.reactions[reaction] }}</span>
</button>
</div>
- <MkA v-for="user in users" :key="user.id" :to="userPage(user)">
+ <MkA v-for="user in users" :key="user.id" :to="userPage(user)" @click="dialog.close()">
<MkUserCardMini :user="user" :with-chart="false"/>
</MkA>
</template>
diff --git a/packages/frontend/src/components/MkRenotedUsersDialog.vue b/packages/frontend/src/components/MkRenotedUsersDialog.vue
new file mode 100644
index 0000000000..56025535f1
--- /dev/null
+++ b/packages/frontend/src/components/MkRenotedUsersDialog.vue
@@ -0,0 +1,65 @@
+<template>
+<MkModalWindow
+ ref="dialog"
+ :width="400"
+ :height="450"
+ @close="dialog.close()"
+ @closed="emit('closed')"
+>
+ <template #header>{{ i18n.ts.renotesList }}</template>
+
+ <MkSpacer :margin-min="20" :margin-max="28">
+ <div v-if="renotes" class="_gaps">
+ <div v-if="renotes.length === 0" class="_fullinfo">
+ <img src="https://xn--931a.moe/assets/info.jpg" class="_ghost"/>
+ <div>{{ i18n.ts.nothing }}</div>
+ </div>
+ <template v-else>
+ <MkA v-for="user in users" :key="user.id" :to="userPage(user)" @click="dialog.close()">
+ <MkUserCardMini :user="user" :with-chart="false"/>
+ </MkA>
+ </template>
+ </div>
+ <div v-else>
+ <MkLoading/>
+ </div>
+ </MkSpacer>
+</MkModalWindow>
+</template>
+
+<script lang="ts" setup>
+import { onMounted } from 'vue';
+import * as misskey from 'misskey-js';
+import MkModalWindow from '@/components/MkModalWindow.vue';
+import MkUserCardMini from '@/components/MkUserCardMini.vue';
+import { userPage } from '@/filters/user';
+import { i18n } from '@/i18n';
+import * as os from '@/os';
+
+const emit = defineEmits<{
+ (ev: 'closed'): void,
+}>();
+
+const props = defineProps<{
+ noteId: misskey.entities.Note['id'];
+}>();
+
+const dialog = $shallowRef<InstanceType<typeof MkModalWindow>>();
+
+let note = $ref<misskey.entities.Note>();
+let renotes = $ref();
+let users = $ref();
+
+onMounted(async () => {
+ const res = await os.api('notes/renotes', {
+ noteId: props.noteId,
+ limit: 30,
+ });
+
+ renotes = res;
+ users = res.map(x => x.user);
+});
+</script>
+
+<style lang="scss" module>
+</style>