1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-19 17:39:39 +00:00
seahub/frontend/src/components/side-nav-footer.js

58 lines
2.0 KiB
JavaScript
Raw Normal View History

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