121 lines
3.4 KiB
TypeScript

import { FormattedMessage } from 'react-intl';
import { Link } from 'react-router-dom';
import {
domain,
version,
source_url,
statusPageUrl,
profile_directory as canProfileDirectory,
termsOfServiceEnabled,
} from 'mastodon/initial_state';
import classes from './link_footer.module.scss';
export const LinkFooter: React.FC<{
context?: 'default' | 'multi-column' | 'about';
}> = ({ context = 'default' }) => {
const multiColumn = context === 'multi-column';
return (
<footer className={classes.wrapper} data-context={context}>
<section>
<h2 className={classes.heading}>{`${domain}:`}</h2>
<ul className={classes.list}>
<li>
<Link to='/about' target={multiColumn ? '_blank' : undefined}>
<FormattedMessage
id='footer.about_this_server'
defaultMessage='About'
/>
</Link>
</li>
{statusPageUrl && (
<li>
<a href={statusPageUrl} target='_blank' rel='noopener'>
<FormattedMessage id='footer.status' defaultMessage='Status' />
</a>
</li>
)}
{canProfileDirectory && (
<li>
<Link to='/directory'>
<FormattedMessage
id='footer.directory'
defaultMessage='Profiles directory'
/>
</Link>
</li>
)}
<li>
<Link
to='/privacy-policy'
target={multiColumn ? '_blank' : undefined}
rel='privacy-policy'
>
<FormattedMessage
id='footer.privacy_policy'
defaultMessage='Privacy policy'
/>
</Link>
</li>
{termsOfServiceEnabled && (
<li>
<Link
to='/terms-of-service'
target={multiColumn ? '_blank' : undefined}
rel='terms-of-service'
>
<FormattedMessage
id='footer.terms_of_service'
defaultMessage='Terms of service'
/>
</Link>
</li>
)}
</ul>
</section>
<section>
<h2 className={classes.heading}>Mastodon:</h2>
<ul className={classes.list}>
<li>
<a href='https://joinmastodon.org' target='_blank' rel='noopener'>
<FormattedMessage id='footer.about' defaultMessage='About' />
</a>
</li>
<li>
<a
href='https://joinmastodon.org/apps'
target='_blank'
rel='noopener'
>
<FormattedMessage
id='footer.get_app'
defaultMessage='Get the app'
/>
</a>
</li>
<li>
<Link to='/keyboard-shortcuts'>
<FormattedMessage
id='footer.keyboard_shortcuts'
defaultMessage='Keyboard shortcuts'
/>
</Link>
</li>
<li>
<a href={source_url} rel='noopener' target='_blank'>
<FormattedMessage
id='footer.source_code'
defaultMessage='View source code'
/>
</a>
</li>
<li className={classes.version}>v{version}</li>
</ul>
</section>
</footer>
);
};