diff --git a/locales/en-US.yml b/locales/en-US.yml index 254ab13466..ec24104b0c 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -57,8 +57,11 @@ sendMessage: "Send a message" copyUsername: "Copy username" searchUser: "Search for a user" reply: "Reply" +jumpToReply: "Jump to Reply" loadMore: "Load more" showMore: "Show more" +newer: "newer" +older: "older" showLess: "Close" youGotNewFollower: "followed you" receiveFollowRequest: "Follow request received" diff --git a/packages/client/src/components/MkNoteDetailed.vue b/packages/client/src/components/MkNoteDetailed.vue index b1caca1609..00c5ba9d25 100644 --- a/packages/client/src/components/MkNoteDetailed.vue +++ b/packages/client/src/components/MkNoteDetailed.vue @@ -15,20 +15,22 @@ :key="note.id" class="reply-to" :note="note" + :detailedView="true" /> -
+
@@ -39,6 +41,7 @@ :note="note" class="reply" :conversation="replies" + :detailedView="true" />
@@ -329,6 +332,9 @@ onMounted(() => { onUpdated(() => { if (!isScrolling) { noteEl?.scrollIntoView(); + if (location.hash) { + location.replace(location.hash); // Jump to highlighted reply + } } }); @@ -510,6 +516,14 @@ onUnmounted(() => { // } // } } + :deep(.reply:target > .main), + :deep(.reply-to:target) { + z-index: 2; + &::before { + outline: auto; + opacity: 1; + } + } &.max-width_500px { font-size: 0.9em; diff --git a/packages/client/src/components/MkNoteSub.vue b/packages/client/src/components/MkNoteSub.vue index f27b3e27a6..c0d2405e40 100644 --- a/packages/client/src/components/MkNoteSub.vue +++ b/packages/client/src/components/MkNoteSub.vue @@ -4,6 +4,8 @@ ref="el" v-size="{ max: [450, 500] }" class="wrpstxzv" + :id="detailedView ? appearNote.id : null" + tabindex="-1" :class="{ children: depth > 1, singleStart: replies.length == 1, @@ -138,6 +140,7 @@ :depth="depth" :replyLevel="replyLevel + 1" :parentId="appearNote.replyId" + :detailedView="detailedView" /> @@ -212,6 +216,7 @@ const props = withDefaults( note: misskey.entities.Note; conversation?: misskey.entities.Note[]; parentId?; + detailedView?; // how many notes are in between this one and the note being viewed in detail depth?: number; @@ -348,6 +353,7 @@ function noteClick(e) {