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"
/>