2019-07-26 14:34:23 +00:00
|
|
|
import React, { useEffect, useState } from "react";
|
|
|
|
import { connect } from "react-redux";
|
|
|
|
import { Redirect } from "react-router";
|
2020-05-19 13:45:27 +00:00
|
|
|
import { AppState } from "../../redux/types";
|
2019-07-26 14:34:23 +00:00
|
|
|
import { setAuthToken } from "../../util";
|
|
|
|
import { Page } from "../atoms";
|
|
|
|
|
2020-05-19 13:45:27 +00:00
|
|
|
interface VerifyLoginScreenProps {
|
2019-07-26 14:34:23 +00:00
|
|
|
search: string;
|
|
|
|
}
|
2020-05-19 13:45:27 +00:00
|
|
|
const VerifyLoginScreen: React.FC<VerifyLoginScreenProps> = ({ search }) => {
|
2019-07-26 14:34:23 +00:00
|
|
|
const [didSaveToken, setDidSaveToken] = useState(false);
|
|
|
|
const token = new URLSearchParams(search).get("token");
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
// Save the auth token
|
2020-05-19 13:45:27 +00:00
|
|
|
if (token) {
|
2019-07-26 14:34:23 +00:00
|
|
|
setAuthToken(token);
|
|
|
|
setDidSaveToken(true);
|
|
|
|
}
|
|
|
|
}, [token]);
|
|
|
|
|
|
|
|
if (!token) {
|
|
|
|
return <Redirect to="/admin/login" />;
|
2020-05-19 13:45:27 +00:00
|
|
|
}
|
|
|
|
if (!didSaveToken) {
|
2019-07-26 14:34:23 +00:00
|
|
|
return <Page />;
|
|
|
|
}
|
|
|
|
return <Redirect to="/admin" />;
|
|
|
|
};
|
|
|
|
|
2020-05-19 13:45:27 +00:00
|
|
|
const mapStateToProps = (state: AppState) => ({
|
|
|
|
search: state.router.location.search,
|
|
|
|
});
|
2019-07-26 14:34:23 +00:00
|
|
|
export default connect(mapStateToProps)(VerifyLoginScreen);
|