280dc51d85
reorganization, linting, updating file imports, consolidation warning: there will be errors in this commit todo: update webpack, add missing styles, scss files, consolidate the rest of components within features/*
64 lines
2.8 KiB
JavaScript
64 lines
2.8 KiB
JavaScript
import { defineMessages, injectIntl } from 'react-intl';
|
||
import { invitesEnabled, version, repository, source_url, me } from '../../initial_state';
|
||
import { openModal } from '../../actions/modal';
|
||
|
||
import './link_footer.scss';
|
||
|
||
const messages = defineMessages({
|
||
invite: { id:'getting_started.invite', defaultMessage: 'Invite people' },
|
||
hotkeys: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Hotkeys' },
|
||
security: { id: 'getting_started.security', defaultMessage: 'Security' },
|
||
about: { id: 'navigation_bar.info', defaultMessage: 'About' },
|
||
developers: { id: 'getting_started.developers', defaultMessage: 'Developers' },
|
||
terms: { id: 'getting_started.terms', defaultMessage: 'Terms of Service' },
|
||
dmca: { id: 'getting_started.dmca', defaultMessage: 'DMCA' },
|
||
terms: { id: 'getting_started.terms_of_sale', defaultMessage: 'Terms of Sale' },
|
||
privacy: { id: 'getting_started.privacy', defaultMessage: 'Privacy Policy' },
|
||
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
|
||
notice: { id: 'getting_started.open_source_notice', defaultMessage: 'Gab Social is open source software. You can contribute or report issues on our self-hosted GitLab at {gitlab}.' },
|
||
});
|
||
|
||
const mapDispatchToProps = (dispatch) => ({
|
||
onOpenHotkeys() {
|
||
dispatch(openModal('HOTKEYS'));
|
||
},
|
||
});
|
||
|
||
export default @connect(null, mapDispatchToProps)
|
||
@injectIntl
|
||
class LinkFooter extends PureComponent {
|
||
|
||
static propTypes = {
|
||
intl: PropTypes.object.isRequired,
|
||
onOpenHotkeys: PropTypes.func.isRequired,
|
||
};
|
||
|
||
render() {
|
||
const { onOpenHotkeys, intl } = this.props;
|
||
|
||
return (
|
||
<div className='link-footer'>
|
||
<ul>
|
||
{(invitesEnabled && me) && <li><a href='/invites'>{intl.formatMessage(messages.invite)}</a> · </li>}
|
||
{me && <li><a href='#' onClick={onOpenHotkeys}>{intl.formatMessage(messages.hotkeys)}</a> · </li>}
|
||
{me && <li><a href='/auth/edit'>{intl.formatMessage(messages.security)}</a> · </li>}
|
||
<li><a href='/about'>{intl.formatMessage(messages.about)}</a> · </li>
|
||
<li><a href='/settings/applications'>{intl.formatMessage(messages.developers)}</a> · </li>
|
||
<li><a href='/about/tos'>{intl.formatMessage(messages.terms)}</a> · </li>
|
||
<li><a href='/about/dmca'>{intl.formatMessage(messages.dmca)}</a> · </li>
|
||
<li><a href='/about/sales'>{intl.formatMessage(messages.terms)}</a> · </li>
|
||
<li><a href='/about/privacy'>{intl.formatMessage(messages.privacy)}</a></li>
|
||
{me && <li> · <a href='/auth/sign_out' data-method='delete'>{intl.formatMessage(messages.logout)}</a></li>}
|
||
</ul>
|
||
|
||
<p>
|
||
{intl.formatMessage(messages.invite, {
|
||
gitlab: <span><a href={source_url} rel='noopener' target='_blank'>{repository}</a> (v{version})</span>
|
||
})}
|
||
</p>
|
||
<p>© 2019 Gab AI Inc.</p>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
}; |