diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index e7a7ca772..2dd1f96c5 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -102,6 +102,7 @@ export default { // # Main things const { focusedId, + focusedIdRaw, conversationId, setFocused, currentStatus, @@ -320,7 +321,7 @@ export default { } const diveIntoStatus = (id) => scrollTo(new Set([id])) const diveToTopLevel = () => scrollTo(new Set([currentAncestors.value[0].id])) - watch(focusedId, async (neu) => { + watch(focusedIdRaw, async (neu) => { if (!isPage.value) return if (neu) scrollTo(new Set([neu])) }) diff --git a/src/composables/useConversation.js b/src/composables/useConversation.js index 54eea9d61..ee1da74b5 100644 --- a/src/composables/useConversation.js +++ b/src/composables/useConversation.js @@ -88,6 +88,7 @@ export function useConversation(statusId, expanded) { return idA < idB ? -1 : 1 } } + const fullConversation = ref(new Set([currentStatus.value?.id].filter(Boolean))) const conversationId = computed( () => mainStatus.value?.statusnet_conversation_id, ) @@ -100,9 +101,7 @@ export function useConversation(statusId, expanded) { return [currentStatus.value] } - const conversation = useStatusesStore().conversations.get( - conversationId.value, - ) + const conversation = fullConversation.value return [...conversation.keys()] .map((k) => useStatusesStore().allStatuses.get(k)) @@ -145,6 +144,13 @@ export function useConversation(statusId, expanded) { statuses: descendants, timestamp, }) + + fullConversation.value = new Set([ + ...ancestors, + currentStatus.value, + ...descendants + ].map(({ id }) => id)) + } else { try { loadError.value = null @@ -155,6 +161,9 @@ export function useConversation(statusId, expanded) { }) useStatusesStore().addNewStatuses({ statuses: [status] }) + fullConversation.value = new Set([ + currentStatus.value, + ].map(({ id }) => id)) fetchConversation() } catch (error) { console.error(error) @@ -165,6 +174,7 @@ export function useConversation(statusId, expanded) { return { focusedId, + focusedIdRaw: focused, conversationId, setFocused, currentStatus,