import React, { Fragment } from 'react';
import { observer, inject } from "mobx-react";
import { Page, Navbar, Link } from "framework7-react";
import { useTranslation } from "react-i18next";

const PageAbout = props => {
    const { t } = useTranslation();
    const _t = t("About", { returnObjects: true });
    const store = props.storeAppOptions;
    const isCanBranding = store.canBranding;
    const licInfo = isCanBranding ? store.customization : null;
    const customer = licInfo ? licInfo.customer : null;
    const nameCustomer = customer ? customer.name : null;
    const mailCustomer = customer ? customer.mail : null;
    const addressCustomer = customer ? customer.address : null;
    const urlCustomer = customer ? customer.www : null;
    const infoCustomer = customer ? customer.info : null;
    const logoCustomer = customer ? customer.logo : null;

    const publisherUrl = __PUBLISHER_URL__,
        publisherPrintUrl = publisherUrl.replace(/https?:\/{2}|\/$/,"");
    
    const editors = {
        de: 'DOCUMENT EDITOR',
        pe: 'PRESENTATION EDITOR',
        sse: 'SPREADSHEET EDITOR'
    };

    const nameEditor = editors[editorType];

    return (
        <Page className="about">
            <Navbar title={_t.textAbout} backLink={_t.textBack} />
            {licInfo && typeof licInfo == 'object' && typeof(customer) == 'object' ? (
                <Fragment>
                    <div className="content-block">
                        {logoCustomer && logoCustomer.length ? (
                            <div id="settings-about-logo" className="settings-about-logo">
                                <img src={logoCustomer} alt="" />
                            </div>
                        ) : null}
                    </div>
                    <div className="content-block">
                        <h3>{nameEditor}</h3>
                        <h3>{_t.textVersion} {__PRODUCT_VERSION__}</h3>
                    </div>
                    <div className="content-block">
                        {nameCustomer && nameCustomer.length ? (
                            <h3 id="settings-about-name" className="vendor">{nameCustomer}</h3>
                        ) : null}
                        {addressCustomer && addressCustomer.length ? (
                            <p>
                                <label>{_t.textAddress}:</label>
                                <Link id="settings-about-address" className="external">{addressCustomer}</Link>
                            </p>
                        ) : null}
                        {mailCustomer && mailCustomer.length ? (
                            <p>
                                <label>{_t.textEmail}:</label>
                                <Link id="settings-about-email" className="external" target="_blank" href={"mailto:"+mailCustomer}>{mailCustomer}</Link>
                            </p>
                        ) : null}
                        {urlCustomer && urlCustomer.length ? (
                            <p>
                                <Link id="settings-about-url" className="external" target="_blank" 
                                    href={!/^https?:\/{2}/i.test(urlCustomer) ? "http:\/\/" : '' + urlCustomer}>
                                    {urlCustomer}
                                </Link>
                            </p>
                        ) : null} 
                        {infoCustomer && infoCustomer.length ? (
                            <p>
                                <label id="settings-about-info">{infoCustomer}</label>
                            </p>
                        ) : null}
                    </div>
                    <div className="content-block" id="settings-about-licensor">
                        <div className="content-block-inner"></div>
                        <p>
                            <label>{_t.textPoweredBy}</label>
                        </p>
                        <h3 className="vendor">{__PUBLISHER_NAME__}</h3>
                        <p>
                            <Link className="external" target="_blank" href={publisherUrl}>{publisherPrintUrl}</Link>
                        </p>
                    </div>
                </Fragment>
            ) : (
                <Fragment>
                    <div className="content-block">
                        <div className="logo"></div>
                    </div>
                    <div className="content-block">
                        <h3>{nameEditor}</h3>
                        <h3>{_t.textVersion} {__PRODUCT_VERSION__}</h3>
                    </div>
                    <div className="content-block">
                        <h3 id="settings-about-name" className="vendor">{__PUBLISHER_NAME__}</h3>
                        <p>
                            <label>{_t.textAddress}:</label>
                            <a id="settings-about-address" className="external">{__PUBLISHER_ADDRESS__}</a>
                        </p>
                        <p>
                            <label>{_t.textEmail}:</label>
                            <a id="settings-about-email" className="external" href={`mailto:${__SUPPORT_EMAIL__}`}>{__SUPPORT_EMAIL__}</a>
                        </p>
                        <p>
                            <label>{_t.textTel}:</label>
                            <a id="settings-about-tel" className="external" href={`tel:${__PUBLISHER_PHONE__}`}>{__PUBLISHER_PHONE__}</a>
                        </p>
                        <p>
                            <a id="settings-about-url" className="external" target="_blank" href={publisherUrl}>{publisherPrintUrl}</a>
                        </p>
                    </div>
                </Fragment>
            )}
        </Page>
    );
};

const About = inject("storeAppOptions")(observer(PageAbout));
About.appVersion = () => (__PRODUCT_VERSION__);
About.compareVersions = () => /d$/.test(__PRODUCT_VERSION__);
About.developVersion = () => /(?:d|debug)$/.test(__PRODUCT_VERSION__);


export default About;