Try non-blocking init

This commit is contained in:
Lim Chee Aun 2024-09-16 19:11:25 +08:00
parent 142e211196
commit 8f6b4c6420
2 changed files with 21 additions and 4 deletions

View file

@ -48,6 +48,8 @@ import Trending from './pages/trending';
import Welcome from './pages/welcome';
import {
api,
hasInstance,
hasPreferences,
initAccount,
initClient,
initInstance,
@ -410,10 +412,16 @@ function App() {
setUIState('loading');
(async () => {
try {
await Promise.allSettled([
initPreferences(client),
initInstance(client, instance),
]);
if (hasPreferences() && hasInstance(instance)) {
// Non-blocking
initPreferences(client);
initInstance(client, instance);
} else {
await Promise.allSettled([
initPreferences(client),
initInstance(client, instance),
]);
}
} catch (e) {
} finally {
setIsLoggedIn(true);

View file

@ -57,6 +57,11 @@ export function initClient({ instance, accessToken }) {
return client;
}
export function hasInstance(instance) {
const instances = store.local.getJSON('instances') || {};
return !!instances[instance];
}
// Get the instance information
// The config is needed for composing
export async function initInstance(client, instance) {
@ -132,6 +137,10 @@ export async function initAccount(client, instance, accessToken, vapidKey) {
});
}
export function hasPreferences() {
return !!store.account.get('preferences');
}
// Get preferences
export async function initPreferences(client) {
try {