import React from "react";
import { Link } from "react-router-dom";
import { Session } from "../model/";
import { Container, Loader, Icon } from "../components/";
import { memory, currentShare } from "../helpers/";
import { t } from "../locales/";
import "../pages/error.scss";
export function LoggedInOnly(WrappedComponent){
memory.set("user::authenticated", false);
return class extends React.Component {
constructor(props){
super(props);
this.state = {
is_logged_in: memory.get("user::authenticated")
};
}
componentDidMount(){
if(this.state.is_logged_in === false && currentShare() === null){
Session.currentUser().then((res) => {
if(res.is_authenticated === false){
this.props.error({message: "Authentication Required"});
return;
}
memory.set("user::authenticated", true);
this.setState({is_logged_in: true});
}).catch((err) => {
if(err.code === "NO_INTERNET"){
this.setState({is_logged_in: true});
return;
}
this.props.error(err);
});
}
}
render(){
if(this.state.is_logged_in === true || currentShare() !== null){
return