import React from "react";
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 DecoratedLoggedInOnly 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 
 { this.state.trace } }