33 lines
843 B
TypeScript
33 lines
843 B
TypeScript
import React, { useEffect } from "react";
|
|
import { useRenewTokenMutation } from "../generated/graphql";
|
|
import { config } from "../config";
|
|
import { AuthIFrame, AuthIFrameProps } from "./AuthIFrame";
|
|
|
|
export interface RenewTokenProps extends AuthIFrameProps {}
|
|
|
|
export const RenewToken: React.FC<RenewTokenProps> = (props) => {
|
|
const [renewToken, renewTokenResults] = useRenewTokenMutation({
|
|
onError() {},
|
|
onCompleted(data) {
|
|
localStorage.setItem(config.localstorageKeys.token, data.renewToken);
|
|
props.onReady();
|
|
},
|
|
});
|
|
|
|
useEffect(() => {
|
|
renewToken();
|
|
}, []);
|
|
|
|
if (renewTokenResults.loading) {
|
|
<div>Loading...</div>;
|
|
}
|
|
if (
|
|
renewTokenResults.called &&
|
|
!renewTokenResults.loading &&
|
|
!renewTokenResults.data?.renewToken
|
|
) {
|
|
return <AuthIFrame {...props} />;
|
|
}
|
|
return null;
|
|
};
|