{"version":3,"sources":["webpack:///app/javascript/home/mastodon/reactions-test/app/javascript/flavours/glitch/features/getting_started/components/trends.jsx","webpack:///app/javascript/home/mastodon/reactions-test/app/javascript/flavours/glitch/features/getting_started/containers/trends_container.js","webpack:///app/javascript/home/mastodon/reactions-test/app/javascript/flavours/glitch/features/getting_started/index.jsx"],"names":["Trends","ImmutablePureComponent","componentDidMount","this","props","fetchTrends","refreshInterval","setInterval","componentWillUnmount","clearInterval","render","trends","isEmpty","_jsx","className","Link","to","FormattedMessage","id","defaultMessage","take","map","hashtag","Hashtag","get","defaultProps","loading","propTypes","ImmutablePropTypes","list","PropTypes","func","isRequired","connect","state","getIn","dispatch","fetchTrendingHashtags","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","UNSAFE_componentWillMount","fetchLists","fetchFollowRequests","signedIn","context","identity","intl","myAccount","columns","multiColumn","unreadFollowRequests","unreadNotifications","openSettings","navItems","listItems","find","item","push","ColumnLink","icon","text","formatMessage","badge","showTrends","concat","filter","Column","bindToDocument","name","label","hideHeadingOnMobile","NavigationBar","account","ColumnSubheading","_jsxs","_Fragment","children","undefined","preferencesLink","href","onClick","LinkFooter","TrendsContainer","Helmet","content","contextTypes","router","object","bool","makeMapStateToProps","getOrderedLists","createSelector","toList","sort","a","b","localeCompare","me","ImmutableList","size","openModal","modalType","modalProps","injectIntl"],"mappings":"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","file":"js/flavours/glitch/async/getting_started-3d06a4a8a2be3f8660be.chunk.js","sourcesContent":["import PropTypes from 'prop-types';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport { Link } from 'react-router-dom';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nimport { ImmutableHashtag as Hashtag } from 'flavours/glitch/components/hashtag';\n\nexport default class Trends extends ImmutablePureComponent {\n\n static defaultProps = {\n loading: false,\n };\n\n static propTypes = {\n trends: ImmutablePropTypes.list,\n fetchTrends: PropTypes.func.isRequired,\n };\n\n componentDidMount () {\n this.props.fetchTrends();\n this.refreshInterval = setInterval(() => this.props.fetchTrends(), 900 * 1000);\n }\n\n componentWillUnmount () {\n if (this.refreshInterval) {\n clearInterval(this.refreshInterval);\n }\n }\n\n render () {\n const { trends } = this.props;\n\n if (!trends || trends.isEmpty()) {\n return null;\n }\n\n return (\n
\n

\n \n \n \n

\n\n {trends.take(3).map(hashtag => )}\n
\n );\n }\n\n}\n","import { connect } from 'react-redux';\n\nimport { fetchTrendingHashtags } from 'flavours/glitch/actions/trends';\n\nimport Trends from '../components/trends';\n\nconst mapStateToProps = state => ({\n trends: state.getIn(['trends', 'tags', 'items']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchTrends: () => dispatch(fetchTrendingHashtags()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Trends);\n","import PropTypes from 'prop-types';\n\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport { Helmet } from 'react-helmet';\n\nimport { List as ImmutableList } from 'immutable';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { connect } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { fetchFollowRequests } from 'flavours/glitch/actions/accounts';\nimport { fetchLists } from 'flavours/glitch/actions/lists';\nimport { openModal } from 'flavours/glitch/actions/modal';\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 LinkFooter from 'flavours/glitch/features/ui/components/link_footer';\nimport { me, showTrends } from 'flavours/glitch/initial_state';\nimport { preferencesLink } from 'flavours/glitch/utils/backend_links';\n\nimport NavigationBar from '../compose/components/navigation_bar';\n\nimport TrendsContainer from './containers/trends_container';\n\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: 'Private mentions' },\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_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({\n modalType: 'SETTINGS',\n modalProps: {},\n })),\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\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 UNSAFE_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":""}