Allow firebase actions to be retried on error.

pull/216/head
Atul Varma 2021-08-22 08:27:49 -04:00
rodzic f927db60c0
commit bec2c4eb49
2 zmienionych plików z 14 dodań i 7 usunięć

Wyświetl plik

@ -85,9 +85,11 @@ export const FirebaseGithubAuthProvider: React.FC<{
providerName: "GitHub", providerName: "GitHub",
error, error,
login: useCallback(() => { login: useCallback(() => {
setError(undefined);
state && signInWithPopup(state.auth, state.provider).catch(handleError); state && signInWithPopup(state.auth, state.provider).catch(handleError);
}, [state]), }, [state]),
logout: useCallback(() => { logout: useCallback(() => {
setError(undefined);
state && signOut(state.auth).catch(handleError); state && signOut(state.auth).catch(handleError);
}, [state]), }, [state]),
}; };

Wyświetl plik

@ -101,15 +101,20 @@ const AuthWidget: React.FC<{}> = () => {
return null; return null;
} }
if (ctx.error) { const button = ctx.loggedInUser ? (
return <p style={{ color: "red" }}>{ctx.error}</p>; <button onClick={ctx.logout}>Logout {ctx.loggedInUser}</button>
} ) : (
<button onClick={ctx.login}>Login with {ctx.providerName}</button>
);
if (ctx.loggedInUser) { const error = ctx.error ? <p style={{ color: "red" }}>{ctx.error}</p> : null;
return <button onClick={ctx.logout}>Logout {ctx.loggedInUser}</button>;
}
return <button onClick={ctx.login}>Login with {ctx.providerName}</button>; return (
<div className="thingy">
{button}
{error}
</div>
);
}; };
export const DebugPage: React.FC<{}> = () => { export const DebugPage: React.FC<{}> = () => {