2020-03-25 10:03:04 +00:00
|
|
|
import React, { Fragment } from 'react';
|
|
|
|
import { gettext, siteRoot, sideNavFooterCustomHtml, extraAppBottomLinks } from '../utils/constants';
|
2019-02-11 08:18:35 +00:00
|
|
|
import ModalPortal from './modal-portal';
|
|
|
|
import AboutDialog from './dialog/about-dialog';
|
2018-09-30 04:19:30 +00:00
|
|
|
|
2019-02-11 08:18:35 +00:00
|
|
|
class SideNavFooter extends React.Component {
|
2018-10-16 10:19:51 +00:00
|
|
|
|
2018-09-30 04:19:30 +00:00
|
|
|
constructor(props) {
|
|
|
|
super(props);
|
|
|
|
this.state = {
|
2019-02-11 08:18:35 +00:00
|
|
|
isAboutDialogShow: false,
|
2018-09-30 04:19:30 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2019-02-11 08:18:35 +00:00
|
|
|
onAboutDialogToggle = () => {
|
|
|
|
this.setState({isAboutDialogShow: !this.state.isAboutDialogShow});
|
2018-09-30 04:19:30 +00:00
|
|
|
}
|
2018-10-16 10:19:51 +00:00
|
|
|
|
2020-03-25 10:03:04 +00:00
|
|
|
renderExternalAppLinks = () => {
|
|
|
|
if (extraAppBottomLinks && (typeof extraAppBottomLinks) === 'object') {
|
|
|
|
let keys = Object.keys(extraAppBottomLinks);
|
|
|
|
return keys.map((key, index) => {
|
2020-03-25 12:20:56 +00:00
|
|
|
return <a key={index} className="item" href={extraAppBottomLinks[key]}>{key}</a>;
|
2020-03-25 10:03:04 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2018-09-30 04:19:30 +00:00
|
|
|
render() {
|
2020-03-25 10:03:04 +00:00
|
|
|
|
|
|
|
if (sideNavFooterCustomHtml) {
|
|
|
|
return (<div className='side-nav-footer' dangerouslySetInnerHTML={{__html: sideNavFooterCustomHtml}}></div>);
|
|
|
|
}
|
|
|
|
return (
|
|
|
|
<Fragment>
|
|
|
|
<div className="side-nav-footer flex-wrap">
|
2020-03-04 03:01:50 +00:00
|
|
|
<a href={siteRoot + 'help/'} target="_blank" rel="noopener noreferrer" className="item">{gettext('Help')}</a>
|
|
|
|
<a className="item cursor-pointer" onClick={this.onAboutDialogToggle}>{gettext('About')}</a>
|
2020-03-25 10:03:04 +00:00
|
|
|
{this.renderExternalAppLinks()}
|
|
|
|
<a href={siteRoot + 'download_client_program/'} className={`item ${extraAppBottomLinks ? '' : 'last-item'}`}>
|
2020-03-04 03:01:50 +00:00
|
|
|
<span aria-hidden="true" className="sf2-icon-monitor vam"></span>{' '}
|
|
|
|
<span className="vam">{gettext('Clients')}</span>
|
|
|
|
</a>
|
|
|
|
</div>
|
2020-03-25 10:03:04 +00:00
|
|
|
{this.state.isAboutDialogShow && (
|
|
|
|
<ModalPortal>
|
|
|
|
<AboutDialog onCloseAboutDialog={this.onAboutDialogToggle} />
|
|
|
|
</ModalPortal>
|
|
|
|
)}
|
|
|
|
</Fragment>
|
|
|
|
);
|
2018-09-30 04:19:30 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default SideNavFooter;
|