@ -3,7 +3,7 @@ import React from 'react';
import PropTypes from 'prop-types' ;
import { FormattedMessage , defineMessages , injectIntl } from 'react-intl' ;
import { Link } from 'react-router-dom' ;
import { version, repository , source _url , profile _directory as profileDirectory } from 'mastodon/initial_state' ;
import { domain, version , source _url , profile _directory as profileDirectory } from 'mastodon/initial_state' ;
import { logOut } from 'mastodon/utils/log_out' ;
import { openModal } from 'mastodon/actions/modal' ;
import { PERMISSION _INVITE _USERS } from 'mastodon/permissions' ;
@ -48,40 +48,44 @@ class LinkFooter extends React.PureComponent {
render ( ) {
const { signedIn , permissions } = this . context . identity ;
const items = [ ] ;
items . push ( < a key = 'apps' href = 'https://joinmastodon.org/apps' target = '_blank' > < FormattedMessage id = 'navigation_bar.apps' defaultMessage = 'Get the app' / > < / a > ) ;
items . push ( < Link key = 'about' to = '/about' > < FormattedMessage id = 'navigation_bar.info' defaultMessage = 'About' / > < / L i n k > ) ;
items . push ( < a key = 'mastodon' href = 'https://joinmastodon.org' target = '_blank' > < FormattedMessage id = 'getting_started.what_is_mastodon' defaultMessage = 'About Mastodon' / > < / a > ) ;
items . push ( < a key = 'docs' href = 'https://docs.joinmastodon.org' target = '_blank' > < FormattedMessage id = 'getting_started.documentation' defaultMessage = 'Documentation' / > < / a > ) ;
items . push ( < Link key = 'privacy-policy' to = '/privacy-policy' > < FormattedMessage id = 'getting_started.privacy_policy' defaultMessage = 'Privacy Policy' / > < / L i n k > ) ;
items . push ( < Link key = 'hotkeys' to = '/keyboard-shortcuts' > < FormattedMessage id = 'navigation_bar.keyboard_shortcuts' defaultMessage = 'Hotkeys' / > < / L i n k > ) ;
if ( profileDirectory ) {
items . push ( < Link key = 'directory' to = '/directory' > < FormattedMessage id = 'getting_started.directory' defaultMessage = 'Directory' / > < / L i n k > ) ;
}
if ( signedIn ) {
if ( ( permissions & PERMISSION _INVITE _USERS ) === PERMISSION _INVITE _USERS ) {
items . push ( < a key = 'invites' href = '/invites' target = '_blank' > < FormattedMessage id = 'getting_started.invite' defaultMessage = 'Invite people' / > < / a > ) ;
}
items . push ( < a key = 'security' href = '/auth/edit' > < FormattedMessage id = 'getting_started.security' defaultMessage = 'Security' / > < / a > ) ;
items . push ( < a key = 'logout' href = '/auth/sign_out' onClick = { this . handleLogoutClick } > < FormattedMessage id = 'navigation_bar.logout' defaultMessage = 'Logout' / > < / a > ) ;
}
const canInvite = signedIn && ( ( permissions & PERMISSION _INVITE _USERS ) === PERMISSION _INVITE _USERS ) ;
const canProfileDirectory = profileDirectory ;
return (
< div className = 'getting-started__footer' >
< ul >
< li > { items . reduce ( ( prev , curr ) => [ prev , ' · ' , curr ] ) } < / l i >
< / u l >
< div className = 'link-footer' >
< p >
< strong > { domain } < / s t r o n g > :
{ ' ' }
< Link key = 'about' to = '/about' > < FormattedMessage id = 'footer.about' defaultMessage = 'About' / > < / L i n k >
{ canInvite && (
< >
{ ' · ' }
< a key = 'invites' href = '/invites' target = '_blank' > < FormattedMessage id = 'footer.invite' defaultMessage = 'Invite people' / > < / a >
< / >
) }
{ canProfileDirectory && (
< >
{ ' · ' }
< Link key = 'directory' to = '/directory' > < FormattedMessage id = 'footer.directory' defaultMessage = 'Profiles directory' / > < / L i n k >
< / >
) }
{ ' · ' }
< Link key = 'privacy-policy' to = '/privacy-policy' > < FormattedMessage id = 'footer.privacy_policy' defaultMessage = 'Privacy policy' / > < / L i n k >
< / p >
< p >
< FormattedMessage
id = 'getting_started.free_software_notice'
defaultMessage = 'Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.'
values = { { repository : < span > < a href = { source _url } rel = 'noopener noreferrer' target = '_blank' > { repository } < / a > ( v { v e r s i o n } ) < / s p a n > } }
/ >
< strong > Mastodon < / s t r o n g > :
{ ' ' }
< a href = 'https://joinmastodon.org' target = '_blank' > < FormattedMessage id = 'footer.about' defaultMessage = 'About' / > < / a >
{ ' · ' }
< a href = 'https://joinmastodon.org/apps' target = '_blank' > < FormattedMessage id = 'footer.get_app' defaultMessage = 'Get the app' / > < / a >
{ ' · ' }
< Link to = '/keyboard-shortcuts' > < FormattedMessage id = 'footer.keyboard_shortcuts' defaultMessage = 'Keyboard shortcuts' / > < / L i n k >
{ ' · ' }
< a href = { source _url } rel = 'noopener noreferrer' target = '_blank' > < FormattedMessage id = 'footer.source_code' defaultMessage = 'View source code' / > < / a >
{ ' · ' }
v { version }
< / p >
< / d i v >
) ;