{"version":3,"sources":["webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/getting_started/index.jsx"],"names":["messages","defineMessages","heading","home_timeline","notifications","public_timeline","navigation_subheading","settings_subheading","community_timeline","explore","direct","bookmarks","preferences","settings","follow_requests","lists","keyboard_shortcuts","lists_subheading","misc","menu","badgeDisplay","number","limit","GettingStarted","ImmutablePureComponent","componentWillMount","this","props","fetchLists","componentDidMount","fetchFollowRequests","signedIn","context","identity","render","intl","myAccount","columns","multiColumn","unreadFollowRequests","unreadNotifications","openSettings","navItems","listItems","find","item","get","push","_jsx","ColumnLink","icon","text","formatMessage","to","badge","showTrends","concat","filter","list","getIn","map","Column","bindToDocument","name","label","hideHeadingOnMobile","className","NavigationBar","account","ColumnSubheading","React","Fragment","undefined","preferencesLink","href","onClick","LinkFooter","TrendsContainer","Helmet","content","contextTypes","router","PropTypes","object","isRequired","propTypes","ImmutablePropTypes","bool","func","connect","makeMapStateToProps","getOrderedLists","createSelector","state","toList","sort","a","b","localeCompare","me","ImmutableList","size","dispatch","openModal","injectIntl"],"mappings":"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","file":"js/flavours/glitch/async/getting_started-85acf689c066df4c84b4.chunk.js","sourcesContent":["import React from 'react';\nimport Column from 'flavours/glitch/features/ui/components/column';\nimport ColumnLink from 'flavours/glitch/features/ui/components/column_link';\nimport ColumnSubheading from 'flavours/glitch/features/ui/components/column_subheading';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { connect } from 'react-redux';\nimport { openModal } from 'flavours/glitch/actions/modal';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { me, showTrends } from 'flavours/glitch/initial_state';\nimport { fetchFollowRequests } from 'flavours/glitch/actions/accounts';\nimport { List as ImmutableList } from 'immutable';\nimport { createSelector } from 'reselect';\nimport { fetchLists } from 'flavours/glitch/actions/lists';\nimport { preferencesLink } from 'flavours/glitch/utils/backend_links';\nimport NavigationBar from '../compose/components/navigation_bar';\nimport LinkFooter from 'flavours/glitch/features/ui/components/link_footer';\nimport TrendsContainer from './containers/trends_container';\nimport { Helmet } from 'react-helmet';\n\nconst messages = defineMessages({\n heading: { id: 'getting_started.heading', defaultMessage: 'Getting started' },\n home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },\n notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' },\n public_timeline: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' },\n navigation_subheading: { id: 'column_subheading.navigation', defaultMessage: 'Navigation' },\n settings_subheading: { id: 'column_subheading.settings', defaultMessage: 'Settings' },\n community_timeline: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },\n explore: { id: 'navigation_bar.explore', defaultMessage: 'Explore' },\n direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' },\n bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' },\n preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },\n settings: { id: 'navigation_bar.app_settings', defaultMessage: 'App settings' },\n follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },\n lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },\n keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Keyboard shortcuts' },\n lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },\n lists_subheading: { id: 'column_subheading.lists', defaultMessage: 'Lists' },\n misc: { id: 'navigation_bar.misc', defaultMessage: 'Misc' },\n menu: { id: 'getting_started.heading', defaultMessage: 'Getting started' },\n});\n\nconst makeMapStateToProps = () => {\n const getOrderedLists = createSelector([state => state.get('lists')], lists => {\n if (!lists) {\n return lists;\n }\n\n return lists.toList().filter(item => !!item).sort((a, b) => a.get('title').localeCompare(b.get('title')));\n });\n\n const mapStateToProps = state => ({\n lists: getOrderedLists(state),\n myAccount: state.getIn(['accounts', me]),\n columns: state.getIn(['settings', 'columns']),\n unreadFollowRequests: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size,\n unreadNotifications: state.getIn(['notifications', 'unread']),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = dispatch => ({\n fetchFollowRequests: () => dispatch(fetchFollowRequests()),\n fetchLists: () => dispatch(fetchLists()),\n openSettings: () => dispatch(openModal('SETTINGS', {})),\n});\n\nconst badgeDisplay = (number, limit) => {\n if (number === 0) {\n return undefined;\n } else if (limit && number >= limit) {\n return `${limit}+`;\n } else {\n return number;\n }\n};\n\nconst NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2);\n\nclass GettingStarted extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object.isRequired,\n identity: PropTypes.object,\n };\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n myAccount: ImmutablePropTypes.map,\n columns: ImmutablePropTypes.list,\n multiColumn: PropTypes.bool,\n fetchFollowRequests: PropTypes.func.isRequired,\n unreadFollowRequests: PropTypes.number,\n unreadNotifications: PropTypes.number,\n lists: ImmutablePropTypes.list,\n fetchLists: PropTypes.func.isRequired,\n openSettings: PropTypes.func.isRequired,\n };\n\n componentWillMount () {\n this.props.fetchLists();\n }\n\n componentDidMount () {\n const { fetchFollowRequests } = this.props;\n const { signedIn } = this.context.identity;\n\n if (!signedIn) {\n return;\n }\n\n fetchFollowRequests();\n }\n\n render () {\n const { intl, myAccount, columns, multiColumn, unreadFollowRequests, unreadNotifications, lists, openSettings } = this.props;\n const { signedIn } = this.context.identity;\n\n const navItems = [];\n let listItems = [];\n\n if (multiColumn) {\n if (signedIn && !columns.find(item => item.get('id') === 'HOME')) {\n navItems.push();\n }\n\n if (!columns.find(item => item.get('id') === 'NOTIFICATIONS')) {\n navItems.push();\n }\n\n if (!columns.find(item => item.get('id') === 'COMMUNITY')) {\n navItems.push();\n }\n\n if (!columns.find(item => item.get('id') === 'PUBLIC')) {\n navItems.push();\n }\n }\n\n if (showTrends) {\n navItems.push();\n }\n\n if (signedIn) {\n if (!multiColumn || !columns.find(item => item.get('id') === 'DIRECT')) {\n navItems.push();\n }\n\n if (!multiColumn || !columns.find(item => item.get('id') === 'BOOKMARKS')) {\n navItems.push();\n }\n\n if (myAccount.get('locked') || unreadFollowRequests > 0) {\n navItems.push();\n }\n\n navItems.push();\n\n listItems = listItems.concat([\n
\n \n {lists.filter(list => !columns.find(item => item.get('id') === 'LIST' && item.getIn(['params', 'id']) === list.get('id'))).map(list =>\n ,\n )}\n
,\n ]);\n }\n\n return (\n \n
\n
\n {!multiColumn && signedIn && }\n {multiColumn && }\n {navItems}\n {signedIn && (\n \n \n {listItems}\n \n { preferencesLink !== undefined && }\n \n \n )}\n
\n\n \n
\n\n {multiColumn && showTrends && }\n\n \n {intl.formatMessage(messages.menu)}\n \n \n
\n );\n }\n\n}\n\nexport default connect(makeMapStateToProps, mapDispatchToProps)(injectIntl(GettingStarted));\n"],"sourceRoot":""}