1 line
21 KiB
Plaintext
1 line
21 KiB
Plaintext
{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/actions/trends.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/ui/components/link_footer.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/getting_started/index.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/getting_started/components/trends.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/getting_started/containers/trends_container.js"],"names":["TRENDS_FETCH_REQUEST","TRENDS_FETCH_SUCCESS","TRENDS_FETCH_FAIL","fetchTrends","dispatch","getState","fetchTrendsRequest","api","get","then","data","fetchTrendsSuccess","catch","err","fetchTrendsFail","type","skipLoading","trends","error","skipAlert","LinkFooter","injectIntl","render","className","id","defaultMessage","values","mastofe","href","rel","target","glitchsoc","mastodon","pleroma","React","PureComponent","messages","defineMessages","heading","home_timeline","notifications","public_timeline","navigation_subheading","settings_subheading","community_timeline","direct","bookmarks","preferences","settings","follow_requests","lists","keyboard_shortcuts","lists_subheading","misc","menu","profile_directory","badgeDisplay","number","limit","GettingStarted","connect","getOrderedLists","createSelector","state","toList","filter","item","sort","a","b","localeCompare","myAccount","getIn","me","columns","unreadFollowRequests","ImmutableList","size","unreadNotifications","customPanelEnabled","customPanel","fetchFollowRequests","fetchLists","openSettings","openModal","fetchPanel","fetchPleromaConfig","componentWillMount","this","props","componentDidMount","multiColumn","window","innerWidth","context","router","history","replace","intl","navItems","listItems","find","push","icon","text","formatMessage","to","badge","concat","map","list","Number","toString","instance_panel","dangerouslySetInnerHTML","__html","bindToDocument","name","label","hideHeadingOnMobile","account","undefined","preferencesLink","onClick","showTrends","ImmutablePureComponent","PropTypes","object","isRequired","ImmutablePropTypes","bool","func","string","Trends","refreshInterval","setInterval","componentWillUnmount","clearInterval","isEmpty","take","hashtag","loading"],"mappings":"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","file":"flavours/glitch/async/getting_started.js","sourcesContent":["import api from '../api';\n\nexport const TRENDS_FETCH_REQUEST = 'TRENDS_FETCH_REQUEST';\nexport const TRENDS_FETCH_SUCCESS = 'TRENDS_FETCH_SUCCESS';\nexport const TRENDS_FETCH_FAIL = 'TRENDS_FETCH_FAIL';\n\nexport const fetchTrends = () => (dispatch, getState) => {\n dispatch(fetchTrendsRequest());\n\n api(getState)\n .get('/api/v1/trends')\n .then(({ data }) => dispatch(fetchTrendsSuccess(data)))\n .catch(err => dispatch(fetchTrendsFail(err)));\n};\n\nexport const fetchTrendsRequest = () => ({\n type: TRENDS_FETCH_REQUEST,\n skipLoading: true,\n});\n\nexport const fetchTrendsSuccess = trends => ({\n type: TRENDS_FETCH_SUCCESS,\n trends,\n skipLoading: true,\n});\n\nexport const fetchTrendsFail = error => ({\n type: TRENDS_FETCH_FAIL,\n error,\n skipLoading: true,\n skipAlert: true,\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nexport default @injectIntl\nclass LinkFooter extends React.PureComponent {\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n };\n\n render () {\n return (\n <div className='getting-started__footer'>\n <p>\n <FormattedMessage\n id='getting_started.mastofe_notice'\n defaultMessage='Mastofe is a libre distribution of the frontend from {glitchsoc}, a friendly fork of {mastodon}. You can contribute or report issues at {mastofe}.'\n values={{\n mastofe: <a href='https://git.pleroma.social/pleroma/mastofe' rel='noopener noreferrer' target='_blank'>Mastofe</a>,\n glitchsoc: <a href='https://github.com/glitch-soc/mastodon' rel='noopener noreferrer' target='_blank'>glitch-soc</a>,\n mastodon: <a href='https://github.com/tootsuite/mastodon' rel='noopener noreferrer' target='_blank'>Mastodon</a>,\n pleroma: <a href='https://pleroma.social' rel='noopener noreferrer' target='_blank'>Pleroma</a>\n }}\n />\n </p>\n </div>\n );\n }\n};\n","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, profile_directory, showTrends } from 'flavours/glitch/util/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/util/backend_links';\nimport NavigationBar from '../compose/components/navigation_bar';\nimport LinkFooter from 'flavours/glitch/features/ui/components/link_footer';\nimport { fetchPanel, fetchPleromaConfig } from 'mastodon/actions/pleroma';\nimport TrendsContainer from './containers/trends_container';\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 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 profile_directory: { id: 'getting_started.directory', defaultMessage: 'Profile directory' },\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 customPanelEnabled: state.getIn(['custom_panel', 'enabled']),\n customPanel: state.getIn(['custom_panel', 'panel']),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = dispatch => ({\n fetchFollowRequests: () => dispatch(fetchFollowRequests()),\n fetchLists: () => dispatch(fetchLists()),\n openSettings: () => dispatch(openModal('SETTINGS', {})),\n fetchPanel: () => dispatch(fetchPanel()),\n fetchPleromaConfig: () => dispatch(fetchPleromaConfig()),\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\n export default @connect(makeMapStateToProps, mapDispatchToProps)\n @injectIntl\n class GettingStarted extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object.isRequired,\n };\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n myAccount: ImmutablePropTypes.map.isRequired,\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 fetchPanel: PropTypes.func.isRequired,\n fetchPleromaConfig: PropTypes.func.isRequired,\n customPanelEnabled: PropTypes.bool,\n customPanel: PropTypes.string.isRequired,\n };\n\n componentWillMount () {\n this.props.fetchLists();\n }\n\n componentDidMount () {\n const { fetchFollowRequests, multiColumn, fetchPleromaConfig, fetchPanel } = this.props;\n\n if (!multiColumn && window.innerWidth >= NAVIGATION_PANEL_BREAKPOINT) {\n this.context.router.history.replace('/timelines/home');\n return;\n }\n\n fetchFollowRequests();\n\n fetchPleromaConfig();\n fetchPanel();\n }\n\n render () {\n const { intl, myAccount, columns, multiColumn, unreadFollowRequests, unreadNotifications, lists, openSettings, customPanelEnabled, customPanel } = this.props;\n\n const navItems = [];\n let listItems = [];\n\n if (multiColumn) {\n if (!columns.find(item => item.get('id') === 'HOME')) {\n navItems.push(<ColumnLink key='0' icon='home' text={intl.formatMessage(messages.home_timeline)} to='/timelines/home' />);\n }\n\n if (!columns.find(item => item.get('id') === 'NOTIFICATIONS')) {\n navItems.push(<ColumnLink key='1' icon='bell' text={intl.formatMessage(messages.notifications)} badge={badgeDisplay(unreadNotifications)} to='/notifications' />);\n }\n\n if (!columns.find(item => item.get('id') === 'COMMUNITY')) {\n navItems.push(<ColumnLink key='2' icon='users' text={intl.formatMessage(messages.community_timeline)} to='/timelines/public/local' />);\n }\n\n if (!columns.find(item => item.get('id') === 'PUBLIC')) {\n navItems.push(<ColumnLink key='3' icon='globe' text={intl.formatMessage(messages.public_timeline)} to='/timelines/public' />);\n }\n }\n\n if (!multiColumn || !columns.find(item => item.get('id') === 'DIRECT')) {\n navItems.push(<ColumnLink key='4' icon='envelope' text={intl.formatMessage(messages.direct)} to='/timelines/direct' />);\n }\n\n if (!multiColumn || !columns.find(item => item.get('id') === 'BOOKMARKS')) {\n navItems.push(<ColumnLink key='5' icon='bookmark' text={intl.formatMessage(messages.bookmarks)} to='/bookmarks' />);\n }\n\n if (myAccount.get('locked') || unreadFollowRequests > 0) {\n navItems.push(<ColumnLink key='6' icon='user-plus' text={intl.formatMessage(messages.follow_requests)} badge={badgeDisplay(unreadFollowRequests, 40)} to='/follow_requests' />);\n }\n\n if (profile_directory) {\n navItems.push(<ColumnLink key='7' icon='address-book' text={intl.formatMessage(messages.profile_directory)} to='/directory' />);\n }\n\n navItems.push(<ColumnLink key='8' icon='ellipsis-h' text={intl.formatMessage(messages.misc)} to='/getting-started-misc' />);\n\n listItems = listItems.concat([\n <div key='9'>\n <ColumnLink key='10' icon='bars' text={intl.formatMessage(messages.lists)} to='/lists' />\n {lists.map(list =>\n <ColumnLink key={(11 + Number(list.get('id'))).toString()} to={`/timelines/list/${list.get('id')}`} icon='list-ul' text={list.get('title')} />\n )}\n </div>,\n ]);\n\n const instance_panel = (customPanelEnabled ? <div className='getting-started getting-started__panel' dangerouslySetInnerHTML={{__html: customPanel}} /> : null);\n\n return (\n <Column bindToDocument={!multiColumn} name='getting-started' icon='asterisk' heading={intl.formatMessage(messages.heading)} label={intl.formatMessage(messages.menu)} hideHeadingOnMobile>\n <div className='scrollable optionally-scrollable'>\n <div className='getting-started__wrapper'>\n {!multiColumn && <NavigationBar account={myAccount} />}\n {multiColumn && <ColumnSubheading text={intl.formatMessage(messages.navigation_subheading)} />}\n {navItems}\n <ColumnSubheading text={intl.formatMessage(messages.lists_subheading)} />\n {listItems}\n <ColumnSubheading text={intl.formatMessage(messages.settings_subheading)} />\n { preferencesLink !== undefined && <ColumnLink icon='cog' text={intl.formatMessage(messages.preferences)} href={preferencesLink} /> }\n <ColumnLink icon='cogs' text={intl.formatMessage(messages.settings)} onClick={openSettings} />\n </div>\n\n {instance_panel}\n\n <LinkFooter />\n </div>\n\n {multiColumn && showTrends && <TrendsContainer />}\n </Column>\n );\n }\n\n}\n","import React from 'react';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Hashtag from 'flavours/glitch/components/hashtag';\nimport { FormattedMessage } from 'react-intl';\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 <div className='getting-started__trends'>\n <h4><FormattedMessage id='trends.trending_now' defaultMessage='Trending now' /></h4>\n\n {trends.take(3).map(hashtag => <Hashtag key={hashtag.get('name')} hashtag={hashtag} />)}\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport { fetchTrends } from 'mastodon/actions/trends';\nimport Trends from '../components/trends';\n\nconst mapStateToProps = state => ({\n trends: state.getIn(['trends', 'items']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchTrends: () => dispatch(fetchTrends()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Trends);\n"],"sourceRoot":""} |