Fix missing posts due to GC

Hidden/collapsed comments are not mounted so they got accidentally GC-ed
This commit is contained in:
Lim Chee Aun 2023-11-23 08:34:43 +08:00
parent b269d9d660
commit fecebc24a8
2 changed files with 11 additions and 2 deletions

View file

@ -72,7 +72,9 @@ window.__STATES_STATS__ = () => {
const { statuses } = states;
const unmountedPosts = [];
for (const key in statuses) {
const $post = document.querySelector(`[data-state-post-id="${key}"]`);
const $post = document.querySelector(
`[data-state-post-id="${key}"], [data-state-post-ids~="${key}"]`,
);
if (!$post) {
unmountedPosts.push(key);
}
@ -89,8 +91,11 @@ setInterval(() => {
let keysCount = 0;
const { instance } = api();
for (const key in statuses) {
if (!window.__IDLE__) break;
try {
const $post = document.querySelector(`[data-state-post-id~="${key}"]`);
const $post = document.querySelector(
`[data-state-post-id="${key}"], [data-state-post-ids~="${key}"]`,
);
const postInNotifications = notifications.some(
(n) => key === statusKey(n.status?.id, instance),
);

View file

@ -1137,6 +1137,10 @@ function StatusThread({ id, closeLink = '/', instance: propInstance }) {
disabled={uiState === 'loading'}
onClick={() => setLimit((l) => l + LIMIT)}
style={{ marginBlockEnd: '6em' }}
data-state-post-ids={statuses
.slice(limit)
.map((s) => statusKey(s.id, instance))
.join(' ')}
>
<div class="ib avatars-bunch">
{/* show avatars for first 5 statuses */}