]>
cat aescling's git repositories - mastodon.git/blob - app/javascript/mastodon/features/getting_started/index.js
1 import React
from 'react';
2 import Column
from '../ui/components/column';
3 import ColumnLink
from '../ui/components/column_link';
4 import ColumnSubheading
from '../ui/components/column_subheading';
5 import { defineMessages
, injectIntl
, FormattedMessage
} from 'react-intl';
6 import { connect
} from 'react-redux';
7 import PropTypes
from 'prop-types';
8 import ImmutablePropTypes
from 'react-immutable-proptypes';
9 import ImmutablePureComponent
from 'react-immutable-pure-component';
10 import { me
} from '../../initial_state';
12 const messages
= defineMessages({
13 heading: { id: 'getting_started.heading', defaultMessage: 'Getting started' },
14 home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },
15 notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' },
16 public_timeline: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' },
17 navigation_subheading: { id: 'column_subheading.navigation', defaultMessage: 'Navigation' },
18 settings_subheading: { id: 'column_subheading.settings', defaultMessage: 'Settings' },
19 community_timeline: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
20 preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
21 follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },
22 sign_out: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
23 favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
24 blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
25 mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
26 info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' },
27 pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },
28 lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },
29 keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Keyboard shortcuts' },
32 const mapStateToProps
= state
=> ({
33 myAccount: state
.getIn(['accounts', me
]),
34 columns: state
.getIn(['settings', 'columns']),
37 @connect(mapStateToProps
)
39 export default class GettingStarted
extends ImmutablePureComponent
{
42 intl: PropTypes
.object
.isRequired
,
43 myAccount: ImmutablePropTypes
.map
.isRequired
,
44 columns: ImmutablePropTypes
.list
,
45 multiColumn: PropTypes
.bool
,
49 const { intl
, myAccount
, columns
, multiColumn
} = this.props
;
54 if (!columns
.find(item
=> item
.get('id') === 'HOME')) {
55 navItems
.push(<ColumnLink key
='0' icon
='home' text
={intl
.formatMessage(messages
.home_timeline
)} to
='/timelines/home' />);
58 if (!columns
.find(item
=> item
.get('id') === 'NOTIFICATIONS')) {
59 navItems
.push(<ColumnLink key
='1' icon
='bell' text
={intl
.formatMessage(messages
.notifications
)} to
='/notifications' />);
62 if (!columns
.find(item
=> item
.get('id') === 'COMMUNITY')) {
63 navItems
.push(<ColumnLink key
='2' icon
='users' text
={intl
.formatMessage(messages
.community_timeline
)} to
='/timelines/public/local' />);
66 if (!columns
.find(item
=> item
.get('id') === 'PUBLIC')) {
67 navItems
.push(<ColumnLink key
='3' icon
='globe' text
={intl
.formatMessage(messages
.public_timeline
)} to
='/timelines/public' />);
71 navItems
= navItems
.concat([
72 <ColumnLink key
='4' icon
='star' text
={intl
.formatMessage(messages
.favourites
)} to
='/favourites' />,
73 <ColumnLink key
='5' icon
='thumb-tack' text
={intl
.formatMessage(messages
.pins
)} to
='/pinned' />,
74 <ColumnLink key
='6' icon
='bars' text
={intl
.formatMessage(messages
.lists
)} to
='/lists' />,
77 if (myAccount
.get('locked')) {
78 navItems
.push(<ColumnLink key
='7' icon
='users' text
={intl
.formatMessage(messages
.follow_requests
)} to
='/follow_requests' />);
81 navItems
= navItems
.concat([
82 <ColumnLink key
='8' icon
='volume-off' text
={intl
.formatMessage(messages
.mutes
)} to
='/mutes' />,
83 <ColumnLink key
='9' icon
='ban' text
={intl
.formatMessage(messages
.blocks
)} to
='/blocks' />,
87 navItems
.push(<ColumnLink key
='10' icon
='question' text
={intl
.formatMessage(messages
.keyboard_shortcuts
)} to
='/keyboard-shortcuts' />);
91 <Column icon
='asterisk' heading
={intl
.formatMessage(messages
.heading
)} hideHeadingOnMobile
>
92 <div className
='getting-started__wrapper'>
93 <ColumnSubheading text
={intl
.formatMessage(messages
.navigation_subheading
)} />
95 <ColumnSubheading text
={intl
.formatMessage(messages
.settings_subheading
)} />
96 <ColumnLink icon
='book' text
={intl
.formatMessage(messages
.info
)} href
='/about/more' />
97 <ColumnLink icon
='cog' text
={intl
.formatMessage(messages
.preferences
)} href
='/settings/preferences' />
98 <ColumnLink icon
='sign-out' text
={intl
.formatMessage(messages
.sign_out
)} href
='/auth/sign_out' method
='delete' />
101 <div className
='static-content getting-started'>
103 <a href
='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/FAQ.md' rel
='noopener' target
='_blank'><FormattedMessage id
='getting_started.faq' defaultMessage
='FAQ' /></a> • <a href
='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/User-guide.md' rel
='noopener' target
='_blank'><FormattedMessage id
='getting_started.userguide' defaultMessage
='User Guide' /></a> • <a href
='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md' rel
='noopener' target
='_blank'><FormattedMessage id
='getting_started.appsshort' defaultMessage
='Apps' /></a>
107 id
='getting_started.open_source_notice'
108 defaultMessage
='Mastodon is open source software. You can contribute or report issues on GitHub at {github}.'
109 values
={{ github: <a href
='https://github.com/tootsuite/mastodon' rel
='noopener' target
='_blank'>tootsuite
/mastodon</a> }}
This page took 0.151983 seconds and 4 git commands to generate.