2017-12-12 15:01:17 +09:00
|
|
|
import PropTypes from 'prop-types';
|
2023-05-28 23:38:10 +09:00
|
|
|
|
2017-12-12 15:01:17 +09:00
|
|
|
import { defineMessages, injectIntl } from 'react-intl';
|
2023-05-28 23:38:10 +09:00
|
|
|
|
2017-12-12 15:01:17 +09:00
|
|
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
2023-05-28 23:38:10 +09:00
|
|
|
import { connect } from 'react-redux';
|
|
|
|
|
2023-10-25 02:45:08 +09:00
|
|
|
import { ReactComponent as BlockIcon } from '@material-symbols/svg-600/outlined/block.svg';
|
|
|
|
import { ReactComponent as InfoIcon } from '@material-symbols/svg-600/outlined/info.svg';
|
|
|
|
import { ReactComponent as PersonCheckIcon } from '@material-symbols/svg-600/outlined/person_check.svg';
|
|
|
|
import { ReactComponent as PushPinIcon } from '@material-symbols/svg-600/outlined/push_pin.svg';
|
|
|
|
import { ReactComponent as StarIcon } from '@material-symbols/svg-600/outlined/star-fill.svg';
|
|
|
|
import { ReactComponent as VolumeOffIcon } from '@material-symbols/svg-600/outlined/volume_off.svg';
|
|
|
|
|
2023-05-28 23:38:10 +09:00
|
|
|
import { openModal } from 'flavours/glitch/actions/modal';
|
|
|
|
import Column from 'flavours/glitch/features/ui/components/column';
|
2017-12-12 15:01:17 +09:00
|
|
|
import ColumnLink from 'flavours/glitch/features/ui/components/column_link';
|
|
|
|
import ColumnSubheading from 'flavours/glitch/features/ui/components/column_subheading';
|
2023-05-28 23:38:10 +09:00
|
|
|
|
2017-12-12 15:01:17 +09:00
|
|
|
const messages = defineMessages({
|
|
|
|
heading: { id: 'column.heading', defaultMessage: 'Misc' },
|
|
|
|
subheading: { id: 'column.subheading', defaultMessage: 'Miscellaneous options' },
|
2023-07-22 02:09:13 +09:00
|
|
|
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favorites' },
|
2017-12-12 15:01:17 +09:00
|
|
|
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
|
2023-05-24 19:38:50 +09:00
|
|
|
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Blocked domains' },
|
2017-12-12 15:01:17 +09:00
|
|
|
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
2022-05-03 17:59:23 +09:00
|
|
|
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
|
2017-12-12 15:01:17 +09:00
|
|
|
keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Keyboard shortcuts' },
|
2018-08-20 21:22:19 +09:00
|
|
|
featured_users: { id: 'navigation_bar.featured_users', defaultMessage: 'Featured users' },
|
2017-12-12 15:01:17 +09:00
|
|
|
});
|
|
|
|
|
2023-03-25 07:15:25 +09:00
|
|
|
class GettingStartedMisc extends ImmutablePureComponent {
|
2017-12-12 15:01:17 +09:00
|
|
|
|
2023-03-20 01:26:02 +09:00
|
|
|
static contextTypes = {
|
|
|
|
identity: PropTypes.object,
|
|
|
|
};
|
|
|
|
|
2017-12-12 15:01:17 +09:00
|
|
|
static propTypes = {
|
|
|
|
intl: PropTypes.object.isRequired,
|
2017-12-12 15:09:18 +09:00
|
|
|
dispatch: PropTypes.func.isRequired,
|
2017-12-12 15:01:17 +09:00
|
|
|
};
|
|
|
|
|
2023-05-08 04:43:25 +09:00
|
|
|
openFeaturedAccountsModal = () => {
|
2023-05-25 22:42:37 +09:00
|
|
|
this.props.dispatch(openModal({
|
|
|
|
modalType: 'PINNED_ACCOUNTS_EDITOR',
|
|
|
|
}));
|
2023-02-04 04:52:07 +09:00
|
|
|
};
|
2018-08-20 21:22:19 +09:00
|
|
|
|
2017-12-12 15:01:17 +09:00
|
|
|
render () {
|
|
|
|
const { intl } = this.props;
|
2023-03-20 01:26:02 +09:00
|
|
|
const { signedIn } = this.context.identity;
|
2018-08-20 19:59:36 +09:00
|
|
|
|
2017-12-12 15:01:17 +09:00
|
|
|
return (
|
2023-10-27 22:21:07 +09:00
|
|
|
<Column icon='ellipsis-h' heading={intl.formatMessage(messages.heading)} alwaysShowBackButton>
|
2017-12-12 15:01:17 +09:00
|
|
|
<div className='scrollable'>
|
|
|
|
<ColumnSubheading text={intl.formatMessage(messages.subheading)} />
|
2023-10-25 02:45:08 +09:00
|
|
|
{signedIn && (<ColumnLink key='favourites' icon='star' iconComponent={StarIcon} text={intl.formatMessage(messages.favourites)} to='/favourites' />)}
|
|
|
|
{signedIn && (<ColumnLink key='pinned' icon='thumb-tack' iconComponent={PushPinIcon} text={intl.formatMessage(messages.pins)} to='/pinned' />)}
|
|
|
|
{signedIn && (<ColumnLink key='featured_users' icon='users' iconComponent={PersonCheckIcon} text={intl.formatMessage(messages.featured_users)} onClick={this.openFeaturedAccountsModal} />)}
|
|
|
|
{signedIn && (<ColumnLink key='mutes' icon='volume-off' iconComponent={VolumeOffIcon} text={intl.formatMessage(messages.mutes)} to='/mutes' />)}
|
|
|
|
{signedIn && (<ColumnLink key='blocks' icon='ban' iconComponent={BlockIcon} text={intl.formatMessage(messages.blocks)} to='/blocks' />)}
|
|
|
|
{signedIn && (<ColumnLink key='domain_blocks' icon='minus-circle' iconComponent={BlockIcon} text={intl.formatMessage(messages.domain_blocks)} to='/domain_blocks' />)}
|
|
|
|
<ColumnLink key='shortcuts' icon='question' iconComponent={InfoIcon} text={intl.formatMessage(messages.keyboard_shortcuts)} to='/keyboard-shortcuts' />
|
2017-12-12 15:01:17 +09:00
|
|
|
</div>
|
|
|
|
</Column>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2023-03-25 07:15:25 +09:00
|
|
|
|
|
|
|
export default connect()(injectIntl(GettingStartedMisc));
|