]>
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' },
30 const mapStateToProps
= state
=> ({
31 myAccount: state
.getIn(['accounts', me
]),
32 columns: state
.getIn(['settings', 'columns']),
35 @connect(mapStateToProps
)
37 export default class GettingStarted
extends ImmutablePureComponent
{
40 intl: PropTypes
.object
.isRequired
,
41 myAccount: ImmutablePropTypes
.map
.isRequired
,
42 columns: ImmutablePropTypes
.list
,
43 multiColumn: PropTypes
.bool
,
47 const { intl
, myAccount
, columns
, multiColumn
} = this.props
;
52 if (!columns
.find(item
=> item
.get('id') === 'HOME')) {
53 navItems
.push(<ColumnLink key
='0' icon
='home' text
={intl
.formatMessage(messages
.home_timeline
)} to
='/timelines/home' />);
56 if (!columns
.find(item
=> item
.get('id') === 'NOTIFICATIONS')) {
57 navItems
.push(<ColumnLink key
='1' icon
='bell' text
={intl
.formatMessage(messages
.notifications
)} to
='/notifications' />);
60 if (!columns
.find(item
=> item
.get('id') === 'COMMUNITY')) {
61 navItems
.push(<ColumnLink key
='2' icon
='users' text
={intl
.formatMessage(messages
.community_timeline
)} to
='/timelines/public/local' />);
64 if (!columns
.find(item
=> item
.get('id') === 'PUBLIC')) {
65 navItems
.push(<ColumnLink key
='3' icon
='globe' text
={intl
.formatMessage(messages
.public_timeline
)} to
='/timelines/public' />);
69 navItems
= navItems
.concat([
70 <ColumnLink key
='4' icon
='star' text
={intl
.formatMessage(messages
.favourites
)} to
='/favourites' />,
71 <ColumnLink key
='5' icon
='thumb-tack' text
={intl
.formatMessage(messages
.pins
)} to
='/pinned' />,
74 if (myAccount
.get('locked')) {
75 navItems
.push(<ColumnLink key
='6' icon
='users' text
={intl
.formatMessage(messages
.follow_requests
)} to
='/follow_requests' />);
78 navItems
= navItems
.concat([
79 <ColumnLink key
='7' icon
='volume-off' text
={intl
.formatMessage(messages
.mutes
)} to
='/mutes' />,
80 <ColumnLink key
='8' icon
='ban' text
={intl
.formatMessage(messages
.blocks
)} to
='/blocks' />,
84 <Column icon
='asterisk' heading
={intl
.formatMessage(messages
.heading
)} hideHeadingOnMobile
>
85 <div className
='getting-started__wrapper'>
86 <ColumnSubheading text
={intl
.formatMessage(messages
.navigation_subheading
)} />
88 <ColumnSubheading text
={intl
.formatMessage(messages
.settings_subheading
)} />
89 <ColumnLink icon
='book' text
={intl
.formatMessage(messages
.info
)} href
='/about/more' />
90 <ColumnLink icon
='cog' text
={intl
.formatMessage(messages
.preferences
)} href
='/settings/preferences' />
91 <ColumnLink icon
='sign-out' text
={intl
.formatMessage(messages
.sign_out
)} href
='/auth/sign_out' method
='delete' />
94 <div className
='getting-started__footer scrollable optionally-scrollable'>
95 <div className
='static-content getting-started'>
97 <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>
101 id
='getting_started.open_source_notice'
102 defaultMessage
='Mastodon is open source software. You can contribute or report issues on GitHub at {github}.'
103 values
={{ github: <a href
='https://github.com/tootsuite/mastodon' rel
='noopener' target
='_blank'>tootsuite
/mastodon</a> }}
This page took 0.102728 seconds and 4 git commands to generate.