diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue
index 4f40feffdd..e8a4c79ade 100644
--- a/packages/frontend/src/components/MkNoteDetailed.vue
+++ b/packages/frontend/src/components/MkNoteDetailed.vue
@@ -134,6 +134,7 @@ SPDX-License-Identifier: AGPL-3.0-only
+
@@ -170,6 +171,12 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
+ {{ i18n.ts.showMore }}
+
+
+
@@ -262,6 +269,7 @@ const urls = appearNote.text ? extractUrlFromMfm(mfm.parse(appearNote.text)) : n
const showTicker = (defaultStore.state.instanceTicker === 'always') || (defaultStore.state.instanceTicker === 'remote' && appearNote.user.instance);
const conversation = ref([]);
const replies = ref([]);
+const quotes = ref([]);
const canRenote = computed(() => ['public', 'home'].includes(appearNote.visibility) || appearNote.userId === $i.id);
const keymap = {
@@ -507,6 +515,18 @@ function loadReplies() {
});
}
+const quotesLoaded = ref(false);
+function loadQuotes() {
+ quotesLoaded.value = true;
+ os.api('notes/children', {
+ noteId: appearNote.id,
+ limit: 30,
+ }).then(res => {
+ res.filter(item => item.renoteId != null)
+ quotes.value = res;
+ });
+}
+
const conversationLoaded = ref(false);
function loadConversation() {
conversationLoaded.value = true;
@@ -720,6 +740,10 @@ function loadConversation() {
border-top: solid 0.5px var(--divider);
}
+.quote:not(:first-child) {
+ border-top: solid 0.5px var(--divider);
+}
+
.tabs {
border-top: solid 0.5px var(--divider);
border-bottom: solid 0.5px var(--divider);
@@ -745,6 +769,10 @@ function loadConversation() {
padding: 16px;
}
+.tab_quotes {
+ padding: 16px;
+}
+
.reactionTabs {
display: flex;
gap: 8px;