Auto-threadify when open a status page with context

This commit is contained in:
Lim Chee Aun 2023-01-11 17:45:37 +08:00
parent 162fc7ad07
commit e2b6f2df6a
2 changed files with 7 additions and 2 deletions

View file

@ -14,7 +14,7 @@ import RelativeTime from '../components/relative-time';
import Status from '../components/status';
import htmlContentLength from '../utils/html-content-length';
import shortenNumber from '../utils/shorten-number';
import states, { saveStatus } from '../utils/states';
import states, { saveStatus, threadifyStatus } from '../utils/states';
import store from '../utils/store';
import { getCurrentAccount } from '../utils/store-utils';
import useDebouncedCallback from '../utils/useDebouncedCallback';
@ -160,6 +160,11 @@ function StatusPage({ id }) {
console.log({ allStatuses });
setStatuses(allStatuses);
cachedStatusesMap.current[id] = allStatuses;
// Let's threadify this one
// Note that all non-hero statuses will trigger saveStatus which will threadify them too
// By right, at this point, all descendant statuses should be cached
threadifyStatus(heroStatus);
} catch (e) {
console.error(e);
setUIState('error');

View file

@ -45,7 +45,7 @@ export function saveStatus(status, opts) {
}
}
function threadifyStatus(status) {
export function threadifyStatus(status) {
// Return all statuses in the thread, via inReplyToId, if inReplyToAccountId === account.id
let fetchIndex = 0;
async function traverse(status, index = 0) {