Time to save all to states

Memory usage might go up but need this for reactivity
This commit is contained in:
Lim Chee Aun 2023-03-18 20:20:48 +08:00
parent 4af3287f0d
commit a0d4d9e08c
4 changed files with 24 additions and 0 deletions

View file

@ -7,6 +7,7 @@ import Timeline from '../components/timeline';
import { api } from '../utils/api'; import { api } from '../utils/api';
import emojifyText from '../utils/emojify-text'; import emojifyText from '../utils/emojify-text';
import states from '../utils/states'; import states from '../utils/states';
import { saveStatus } from '../utils/states';
import useTitle from '../utils/useTitle'; import useTitle from '../utils/useTitle';
const LIMIT = 20; const LIMIT = 20;
@ -48,6 +49,10 @@ function AccountStatuses() {
const { value, done } = await accountStatusesIterator.current.next(); const { value, done } = await accountStatusesIterator.current.next();
if (value?.length) { if (value?.length) {
results.push(...value); results.push(...value);
value.forEach((item) => {
saveStatus(item, instance);
});
} }
return { return {
value: results, value: results,
@ -118,6 +123,7 @@ function AccountStatuses() {
emptyText="Nothing to see here yet." emptyText="Nothing to see here yet."
errorText="Unable to load statuses" errorText="Unable to load statuses"
fetchItems={fetchAccountStatuses} fetchItems={fetchAccountStatuses}
useItemID
boostsCarousel={snapStates.settings.boostsCarousel} boostsCarousel={snapStates.settings.boostsCarousel}
timelineStart={TimelineStart} timelineStart={TimelineStart}
/> />

View file

@ -13,6 +13,7 @@ import Timeline from '../components/timeline';
import { api } from '../utils/api'; import { api } from '../utils/api';
import showToast from '../utils/show-toast'; import showToast from '../utils/show-toast';
import states from '../utils/states'; import states from '../utils/states';
import { saveStatus } from '../utils/states';
import useTitle from '../utils/useTitle'; import useTitle from '../utils/useTitle';
const LIMIT = 20; const LIMIT = 20;
@ -52,6 +53,10 @@ function Hashtags(props) {
if (firstLoad) { if (firstLoad) {
latestItem.current = value[0].id; latestItem.current = value[0].id;
} }
value.forEach((item) => {
saveStatus(item, instance);
});
} }
return results; return results;
} }
@ -110,6 +115,7 @@ function Hashtags(props) {
errorText="Unable to load posts with this tag" errorText="Unable to load posts with this tag"
fetchItems={fetchHashtags} fetchItems={fetchHashtags}
checkForUpdates={checkForUpdates} checkForUpdates={checkForUpdates}
useItemID
headerEnd={ headerEnd={
<Menu <Menu
portal={{ portal={{

View file

@ -5,6 +5,7 @@ import Icon from '../components/icon';
import Link from '../components/link'; import Link from '../components/link';
import Timeline from '../components/timeline'; import Timeline from '../components/timeline';
import { api } from '../utils/api'; import { api } from '../utils/api';
import { saveStatus } from '../utils/states';
import useTitle from '../utils/useTitle'; import useTitle from '../utils/useTitle';
const LIMIT = 20; const LIMIT = 20;
@ -27,6 +28,10 @@ function List(props) {
if (firstLoad) { if (firstLoad) {
latestItem.current = value[0].id; latestItem.current = value[0].id;
} }
value.forEach((item) => {
saveStatus(item, instance);
});
} }
return results; return results;
} }
@ -69,6 +74,7 @@ function List(props) {
instance={instance} instance={instance}
fetchItems={fetchList} fetchItems={fetchList}
checkForUpdates={checkForUpdates} checkForUpdates={checkForUpdates}
useItemID
boostsCarousel boostsCarousel
headerStart={ headerStart={
<Link to="/l" class="button plain"> <Link to="/l" class="button plain">

View file

@ -7,6 +7,7 @@ import Icon from '../components/icon';
import Timeline from '../components/timeline'; import Timeline from '../components/timeline';
import { api } from '../utils/api'; import { api } from '../utils/api';
import states from '../utils/states'; import states from '../utils/states';
import { saveStatus } from '../utils/states';
import useTitle from '../utils/useTitle'; import useTitle from '../utils/useTitle';
const LIMIT = 20; const LIMIT = 20;
@ -37,6 +38,10 @@ function Public({ local, ...props }) {
if (firstLoad) { if (firstLoad) {
latestItem.current = value[0].id; latestItem.current = value[0].id;
} }
value.forEach((item) => {
saveStatus(item, instance);
});
} }
return results; return results;
} }
@ -76,6 +81,7 @@ function Public({ local, ...props }) {
errorText="Unable to load posts" errorText="Unable to load posts"
fetchItems={fetchPublic} fetchItems={fetchPublic}
checkForUpdates={checkForUpdates} checkForUpdates={checkForUpdates}
useItemID
headerStart={<></>} headerStart={<></>}
boostsCarousel={snapStates.settings.boostsCarousel} boostsCarousel={snapStates.settings.boostsCarousel}
headerEnd={ headerEnd={