fix(mobx): properly persist login state

This commit is contained in:
Paul
2021-12-24 12:00:24 +00:00
parent 5b95a163c1
commit 7b53dc34b5
5 changed files with 12 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ import Locale from "./Locale";
import Theme from "./Theme";
import Intermediate from "./intermediate/Intermediate";
import Client from "./revoltjs/RevoltClient";
import SyncManager from "./revoltjs/SyncManager";
/**
* This component provides all of the application's context layers.
@@ -29,7 +30,10 @@ export default function Context({ children }: { children: Children }) {
<Router basename={import.meta.env.BASE_URL}>
<Locale>
<Intermediate>
<Client>{children}</Client>
<Client>
{children}
<SyncManager />
</Client>
</Intermediate>
</Locale>
<Theme />

View File

@@ -15,7 +15,9 @@ export default function SyncManager() {
// Sync settings from Revolt.
useEffect(() => {
state.sync.pull(client);
if (client) {
state.sync.pull(client);
}
}, [client]);
// Keep data synced.
@@ -23,6 +25,7 @@ export default function SyncManager() {
// Take data updates from Revolt.
useEffect(() => {
if (!client) return;
function onPacket(packet: ClientboundNotification) {
if (packet.type === "UserSettingsUpdate") {
state.sync.apply(packet.update);