RenaiApp/src/renderer/services/store.ts

22 lines
606 B
TypeScript

import { writable, Readable } from 'svelte/store';
import * as api from './api';
const { subscribe, set } = writable<boolean>(false);
interface ILoggedIn extends Readable<boolean> {
fetchIsLoggedIn(): Promise<void>;
fetchLogin(credentials: ICredentials): Promise<void>;
}
export const loggedIn: ILoggedIn = {
subscribe,
fetchIsLoggedIn(): Promise<void> {
return api.isLoggedIn().then((isLoggedIn: boolean) => {
set(isLoggedIn);
});
},
fetchLogin(this: ILoggedIn, credentials: ICredentials): Promise<void> {
return api.login(credentials).then(this.fetchIsLoggedIn);
},
};