mastodon/app/javascript/mastodon/features/ui/components/link_footer.js

122 lines
4.0 KiB
JavaScript
Raw Normal View History

import { connect } from 'react-redux';
import React from 'react';
import PropTypes from 'prop-types';
2019-12-15 22:42:42 +01:00
import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
2019-12-15 22:42:42 +01:00
import { invitesEnabled, repository, source_url, version } from 'mastodon/initial_state';
import { logOut } from 'mastodon/utils/log_out';
import { openModal } from 'mastodon/actions/modal';
const messages = defineMessages({
logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
});
const mapDispatchToProps = (dispatch, { intl }) => ({
2019-12-15 22:42:42 +01:00
onLogout() {
dispatch(openModal('CONFIRM', {
2019-12-15 22:42:42 +01:00
message : intl.formatMessage(messages.logoutMessage),
confirm : intl.formatMessage(messages.logoutConfirm),
onConfirm: () => logOut(),
}));
},
});
export default @injectIntl
@connect(null, mapDispatchToProps)
class LinkFooter extends React.PureComponent {
static propTypes = {
withHotkeys: PropTypes.bool,
2019-12-15 22:42:42 +01:00
onLogout : PropTypes.func.isRequired,
intl : PropTypes.object.isRequired,
};
handleLogoutClick = e => {
e.preventDefault();
e.stopPropagation();
this.props.onLogout();
return false;
2019-12-15 22:42:42 +01:00
};
2019-12-15 22:42:42 +01:00
render() {
const { withHotkeys } = this.props;
return (
<div className='getting-started__footer'>
<ul>
2019-12-15 22:42:42 +01:00
<li>
<a href="https://liberapay.com/cipherbliss">Supportez Cipherbliss</a>
</li>
<li>
<a href="/@tykayn">
<i className="fa fa-envelope"></i>
contactez Cipherbliss</a>
</li>
<li>
<a href='/admin/tags?pending_review=1'>
<i className="fa fa-fire"></i>
Trending hashtags</a>
<hr/>
</li>
{invitesEnabled && <li><a href='/invites' target='_blank'><FormattedMessage
id='getting_started.invite'
defaultMessage='Invite people'
/></a> ·
</li>}
{withHotkeys && <li><Link to='/keyboard-shortcuts'><FormattedMessage
id='navigation_bar.keyboard_shortcuts'
defaultMessage='Hotkeys'
/></Link> ·
</li>}
<li><a href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security'/></a> ·
</li>
<li><a href='/about/more' target='_blank'><FormattedMessage
id='navigation_bar.info'
defaultMessage='About this server'
/></a> ·
</li>
<li><a href='https://joinmastodon.org/apps' target='_blank'><FormattedMessage
id='navigation_bar.apps'
defaultMessage='Mobile apps'
/></a> ·
</li>
<li><a href='/terms' target='_blank'><FormattedMessage
id='getting_started.terms'
defaultMessage='Terms of service'
/></a> ·
</li>
<li><a href='/settings/applications' target='_blank'><FormattedMessage
id='getting_started.developers'
defaultMessage='Developers'
/></a> ·
</li>
<li><a href='https://docs.joinmastodon.org' target='_blank'><FormattedMessage
id='getting_started.documentation' defaultMessage='Documentation'
/></a> ·
</li>
<li><a href='/auth/sign_out' onClick={this.handleLogoutClick}><FormattedMessage
id='navigation_bar.logout'
defaultMessage='Logout'
/></a>
</li>
</ul>
<p>
<FormattedMessage
id='getting_started.open_source_notice'
defaultMessage='Mastodon is open source software. You can contribute or report issues on GitHub at {github}.'
2019-12-15 22:42:42 +01:00
values={{
github: <span><a href={source_url} rel='noopener noreferrer' target='_blank'>{repository}</a> (v{version})</span>,
}}
/>
</p>
</div>
);
}
};