Merge branch 'fix/attachments-cleanup' into 'develop'
[akkoma] / priv / static / packs / features / getting_started.js.map
index 722210036294d93aa969411c03285b01e12c3e00..ed2b30df707a8599e5a0ddb82d8a555e45f3faf1 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///./app/javascript/mastodon/features/getting_started/index.js"],"names":["messages","Object","react_intl__WEBPACK_IMPORTED_MODULE_8__","home_timeline","id","defaultMessage","notifications","public_timeline","settings_subheading","community_timeline","direct","preferences","follow_requests","favourites","blocks","domain_blocks","mutes","pins","lists","discover","personal","security","menu","GettingStarted","react_redux__WEBPACK_IMPORTED_MODULE_9__","state","myAccount","getIn","_initial_state__WEBPACK_IMPORTED_MODULE_13__","unreadFollowRequests","immutable__WEBPACK_IMPORTED_MODULE_16__","size","customPanelEnabled","customPanel","dispatch","fetchFollowRequests","_actions_accounts__WEBPACK_IMPORTED_MODULE_14__","fetchPanel","_actions_pleroma__WEBPACK_IMPORTED_MODULE_15__","fetchPleromaConfig","componentDidMount","_props","this","props","get","render","number","limit","_props2","intl","multiColumn","navItems","i","height","push","babel_runtime_helpers_jsx__WEBPACK_IMPORTED_MODULE_0___default","_ui_components_column_subheading__WEBPACK_IMPORTED_MODULE_7__","text","formatMessage","_ui_components_column_link__WEBPACK_IMPORTED_MODULE_6__","icon","to","badge","href","staticContent","dangerouslySetInnerHTML","__html","style","marginLeft","marginRight","rel","target","_ui_components_column__WEBPACK_IMPORTED_MODULE_5__","label","className","_compose_components_navigation_bar__WEBPACK_IMPORTED_MODULE_18__","account","invitesEnabled","react_router_dom__WEBPACK_IMPORTED_MODULE_17__","data-method","values","mastofe","mastodon","pleroma","react_immutable_pure_component__WEBPACK_IMPORTED_MODULE_12__","propTypes","prop_types__WEBPACK_IMPORTED_MODULE_10___default","a","object","isRequired","react_immutable_proptypes__WEBPACK_IMPORTED_MODULE_11___default","map","columns","list","bool","func","unreadNotifications","string"],"mappings":"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","file":"features/getting_started.js","sourcesContent":["import React from 'react';\nimport Column from '../ui/components/column';\nimport ColumnLink from '../ui/components/column_link';\nimport ColumnSubheading from '../ui/components/column_subheading';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { me, invitesEnabled } from '../../initial_state';\nimport { fetchFollowRequests } from '../../actions/accounts';\nimport { fetchPanel, fetchPleromaConfig } from '../../actions/pleroma';\nimport { List as ImmutableList } from 'immutable';\nimport { Link } from 'react-router-dom';\nimport NavigationBar from '../compose/components/navigation_bar';\n\nconst messages = defineMessages({\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  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  preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },\n  follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },\n  favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },\n  blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },\n  domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },\n  mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },\n  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },\n  lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },\n  discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },\n  personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },\n  security: { id: 'navigation_bar.security', defaultMessage: 'Security' },\n  menu: { id: 'getting_started.heading', defaultMessage: 'Getting started' },\n});\n\nconst mapStateToProps = state => ({\n  myAccount: state.getIn(['accounts', me]),\n  unreadFollowRequests: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size,\n  customPanelEnabled: state.getIn(['custom_panel', 'enabled']),\n  customPanel: state.getIn(['custom_panel', 'panel']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n  fetchFollowRequests: () => dispatch(fetchFollowRequests()),\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\n@connect(mapStateToProps, mapDispatchToProps)\n@injectIntl\nexport default class GettingStarted extends ImmutablePureComponent {\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    fetchPanel: PropTypes.func.isRequired,\n    fetchPleromaConfig: PropTypes.func.isRequired,\n    unreadFollowRequests: PropTypes.number,\n    unreadNotifications: PropTypes.number,\n    customPanelEnabled: PropTypes.bool,\n    customPanel: PropTypes.string.isRequired,\n  };\n\n  componentDidMount () {\n    const { myAccount, fetchFollowRequests, fetchPleromaConfig, fetchPanel } = this.props;\n\n    if (myAccount.get('locked')) {\n      fetchFollowRequests();\n    }\n\n    fetchPleromaConfig();\n    fetchPanel();\n  }\n\n  render () {\n    const { intl, myAccount, multiColumn, unreadFollowRequests, customPanelEnabled, customPanel } = this.props;\n\n    const navItems = [];\n    let i = 1;\n    let height = (multiColumn) ? 0 : 60;\n\n    if (multiColumn) {\n      navItems.push(\n        <ColumnSubheading key={i++} text={intl.formatMessage(messages.discover)} />,\n        <ColumnLink key={i++} icon='users' text={intl.formatMessage(messages.community_timeline)} to='/timelines/public/local' />,\n        <ColumnLink key={i++} icon='globe' text={intl.formatMessage(messages.public_timeline)} to='/timelines/public' />,\n        <ColumnSubheading key={i++} text={intl.formatMessage(messages.personal)} />\n      );\n\n      height += 34*2 + 48*2;\n    }\n\n    navItems.push(\n      <ColumnLink key={i++} icon='envelope' text={intl.formatMessage(messages.direct)} to='/timelines/direct' />,\n      <ColumnLink key={i++} icon='star' text={intl.formatMessage(messages.favourites)} to='/favourites' />,\n      <ColumnLink key={i++} icon='list-ul' text={intl.formatMessage(messages.lists)} to='/lists' />\n    );\n\n    height += 48*3;\n\n    if (myAccount.get('locked')) {\n      navItems.push(<ColumnLink key={i++} icon='users' text={intl.formatMessage(messages.follow_requests)} badge={badgeDisplay(unreadFollowRequests, 40)} to='/follow_requests' />);\n      height += 48;\n    }\n\n    if (!multiColumn) {\n      navItems.push(\n        <ColumnSubheading key={i++} text={intl.formatMessage(messages.settings_subheading)} />,\n        <ColumnLink key={i++} icon='gears' text={intl.formatMessage(messages.preferences)} href='/user-settings' />,\n      );\n\n      height += 34 + 48;\n    }\n\n    const dot = ' • ';\n    const staticContent = (customPanelEnabled ? <div dangerouslySetInnerHTML={{__html: customPanel}} style={{marginLeft: -12, marginRight: -12}} /> :\n      <p>\n        <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>\n        {dot}\n        <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>\n        {dot}\n        <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>\n        {dot}\n        <a href='https://pleroma.social'><FormattedMessage id='getting_started.pleroma' defaultMessage='Pleroma' /></a>\n      </p>\n    );\n\n    return (\n      <Column label={intl.formatMessage(messages.menu)}>\n        {multiColumn && <div className='column-header__wrapper'>\n          <h1 className='column-header'>\n            <button>\n              <i className='fa fa-bars fa-fw column-header__icon' />\n              <FormattedMessage id='getting_started.heading' defaultMessage='Getting started' />\n            </button>\n          </h1>\n        </div>}\n\n        <div className='getting-started__wrapper scrollable' style={{ height }}>\n          {!multiColumn && <NavigationBar account={myAccount} />}\n          {navItems}\n        </div>\n\n        {!multiColumn && <div className='flex-spacer' />}\n\n        <div className='getting-started getting-started__panel scrollable'>\n          {staticContent}\n        </div>\n\n        {!multiColumn && <div className='flex-spacer' />}\n\n        <div className='getting-started__footer scrollable'>\n          <ul>\n            {invitesEnabled && <li><a href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}\n            {multiColumn && <li><Link to='/keyboard-shortcuts'><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></Link> · </li>}\n            <li><a href='/auth/sign_out' data-method='delete'><FormattedMessage id='navigation_bar.logout' defaultMessage='Logout' /></a></li>\n          </ul>\n          <p>\n            <FormattedMessage\n              id='getting_started.mastofe_notice'\n              defaultMessage='{mastofe} is libre software based on {mastodon} frontend adapted for {pleroma}.'\n              values={{\n                mastofe: <a href='https://git.pleroma.social/pleroma/mastofe' rel='noopener' target='_blank'>Mastofe</a>,\n                mastodon: <a href='https://github.com/tootsuite/mastodon' rel='noopener' target='_blank'>Mastodon</a>,\n                pleroma: <a href='https://pleroma.social' rel='noopener' target='_blank'>Pleroma</a>\n              }}\n            />\n          </p>\n        </div>\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/ui/components/link_footer.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/getting_started/index.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/getting_started/components/trends.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/getting_started/containers/trends_container.js"],"names":["messages","defineMessages","logoutMessage","logoutConfirm","LinkFooter","connect","dispatch","intl","onLogout","openModal","message","formatMessage","confirm","onConfirm","logOut","injectIntl","e","preventDefault","stopPropagation","props","render","withHotkeys","this","className","invitesEnabled","href","target","id","defaultMessage","to","onClick","handleLogoutClick","values","github","source_url","rel","repository","version","React","PureComponent","home_timeline","notifications","public_timeline","settings_subheading","community_timeline","direct","preferences","follow_requests","favourites","blocks","domain_blocks","mutes","pins","lists","discover","personal","security","menu","profile_directory","GettingStarted","state","myAccount","getIn","me","unreadFollowRequests","ImmutableList","size","fetchFollowRequests","componentDidMount","multiColumn","window","innerWidth","context","router","history","replace","number","limit","navItems","i","height","push","text","icon","get","badge","bindToDocument","label","fixedWidth","style","account","showTrends","ImmutablePureComponent","PropTypes","object","isRequired","ImmutablePropTypes","map","columns","list","bool","func","unreadNotifications","Trends","fetchTrends","refreshInterval","setInterval","componentWillUnmount","clearInterval","trends","isEmpty","take","hashtag","loading"],"mappings":"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","file":"features/getting_started.js","sourcesContent":["import { connect } from 'react-redux';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { invitesEnabled, version, repository, source_url } from 'mastodon/initial_state';\nimport { logOut } from 'mastodon/utils/log_out';\nimport { openModal } from 'mastodon/actions/modal';\n\nconst messages = defineMessages({\n  logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },\n  logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },\n});\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n  onLogout () {\n    dispatch(openModal('CONFIRM', {\n      message: intl.formatMessage(messages.logoutMessage),\n      confirm: intl.formatMessage(messages.logoutConfirm),\n      onConfirm: () => logOut(),\n    }));\n  },\n});\n\nexport default @injectIntl\n@connect(null, mapDispatchToProps)\nclass LinkFooter extends React.PureComponent {\n\n  static propTypes = {\n    withHotkeys: PropTypes.bool,\n    onLogout: PropTypes.func.isRequired,\n    intl: PropTypes.object.isRequired,\n  };\n\n  handleLogoutClick = e => {\n    e.preventDefault();\n    e.stopPropagation();\n\n    this.props.onLogout();\n\n    return false;\n  }\n\n  render () {\n    const { withHotkeys } = this.props;\n\n    return (\n      <div className='getting-started__footer'>\n        <ul>\n          {invitesEnabled && <li><a href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}\n          {withHotkeys && <li><Link to='/keyboard-shortcuts'><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></Link> · </li>}\n          <li><a href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security' /></a> · </li>\n          <li><a href='/about/more' target='_blank'><FormattedMessage id='navigation_bar.info' defaultMessage='About this server' /></a> · </li>\n          <li><a href='https://joinmastodon.org/apps' target='_blank'><FormattedMessage id='navigation_bar.apps' defaultMessage='Mobile apps' /></a> · </li>\n          <li><a href='/terms' target='_blank'><FormattedMessage id='getting_started.terms' defaultMessage='Terms of service' /></a> · </li>\n          <li><a href='/settings/applications' target='_blank'><FormattedMessage id='getting_started.developers' defaultMessage='Developers' /></a> · </li>\n          <li><a href='https://docs.joinmastodon.org' target='_blank'><FormattedMessage id='getting_started.documentation' defaultMessage='Documentation' /></a> · </li>\n          <li><a href='/auth/sign_out' onClick={this.handleLogoutClick}><FormattedMessage id='navigation_bar.logout' defaultMessage='Logout' /></a></li>\n        </ul>\n\n        <p>\n          <FormattedMessage\n            id='getting_started.open_source_notice'\n            defaultMessage='Mastodon is open source software. You can contribute or report issues on GitHub at {github}.'\n            values={{ github: <span><a href={source_url} rel='noopener' target='_blank'>{repository}</a> (v{version})</span> }}\n          />\n        </p>\n      </div>\n    );\n  }\n\n};\n","import React from 'react';\nimport Column from '../ui/components/column';\nimport ColumnLink from '../ui/components/column_link';\nimport ColumnSubheading from '../ui/components/column_subheading';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { me, profile_directory, showTrends } from '../../initial_state';\nimport { fetchFollowRequests } from 'mastodon/actions/accounts';\nimport { List as ImmutableList } from 'immutable';\nimport NavigationBar from '../compose/components/navigation_bar';\nimport Icon from 'mastodon/components/icon';\nimport LinkFooter from 'mastodon/features/ui/components/link_footer';\nimport TrendsContainer from './containers/trends_container';\n\nconst messages = defineMessages({\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  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  preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },\n  follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' },\n  favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },\n  blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },\n  domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },\n  mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },\n  pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned toots' },\n  lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' },\n  discover: { id: 'navigation_bar.discover', defaultMessage: 'Discover' },\n  personal: { id: 'navigation_bar.personal', defaultMessage: 'Personal' },\n  security: { id: 'navigation_bar.security', defaultMessage: 'Security' },\n  menu: { id: 'getting_started.heading', defaultMessage: 'Getting started' },\n  profile_directory: { id: 'getting_started.directory', defaultMessage: 'Profile directory' },\n});\n\nconst mapStateToProps = state => ({\n  myAccount: state.getIn(['accounts', me]),\n  unreadFollowRequests: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size,\n});\n\nconst mapDispatchToProps = dispatch => ({\n  fetchFollowRequests: () => dispatch(fetchFollowRequests()),\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\nexport default @connect(mapStateToProps, mapDispatchToProps)\n@injectIntl\nclass 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  };\n\n  componentDidMount () {\n    const { fetchFollowRequests, multiColumn } = 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\n  render () {\n    const { intl, myAccount, multiColumn, unreadFollowRequests } = this.props;\n\n    const navItems = [];\n    let i = 1;\n    let height = (multiColumn) ? 0 : 60;\n\n    if (multiColumn) {\n      navItems.push(\n        <ColumnSubheading key={i++} text={intl.formatMessage(messages.discover)} />,\n        <ColumnLink key={i++} icon='users' text={intl.formatMessage(messages.community_timeline)} to='/timelines/public/local' />,\n        <ColumnLink key={i++} icon='globe' text={intl.formatMessage(messages.public_timeline)} to='/timelines/public' />,\n      );\n\n      height += 34 + 48*2;\n\n      if (profile_directory) {\n        navItems.push(\n          <ColumnLink key={i++} icon='address-book' text={intl.formatMessage(messages.profile_directory)} to='/directory' />\n        );\n\n        height += 48;\n      }\n\n      navItems.push(\n        <ColumnSubheading key={i++} text={intl.formatMessage(messages.personal)} />\n      );\n\n      height += 34;\n    } else if (profile_directory) {\n      navItems.push(\n        <ColumnLink key={i++} icon='address-book' text={intl.formatMessage(messages.profile_directory)} to='/directory' />\n      );\n\n      height += 48;\n    }\n\n    navItems.push(\n      <ColumnLink key={i++} icon='envelope' text={intl.formatMessage(messages.direct)} to='/timelines/direct' />,\n      <ColumnLink key={i++} icon='star' text={intl.formatMessage(messages.favourites)} to='/favourites' />,\n      <ColumnLink key={i++} icon='list-ul' text={intl.formatMessage(messages.lists)} to='/lists' />\n    );\n\n    height += 48*3;\n\n    if (myAccount.get('locked') || unreadFollowRequests > 0) {\n      navItems.push(<ColumnLink key={i++} icon='user-plus' text={intl.formatMessage(messages.follow_requests)} badge={badgeDisplay(unreadFollowRequests, 40)} to='/follow_requests' />);\n      height += 48;\n    }\n\n    if (!multiColumn) {\n      navItems.push(\n        <ColumnSubheading key={i++} text={intl.formatMessage(messages.settings_subheading)} />,\n        <ColumnLink key={i++} icon='gears' text={intl.formatMessage(messages.preferences)} href='/settings/preferences' />,\n      );\n\n      height += 34 + 48;\n    }\n\n    return (\n      <Column bindToDocument={!multiColumn} label={intl.formatMessage(messages.menu)}>\n        {multiColumn && <div className='column-header__wrapper'>\n          <h1 className='column-header'>\n            <button>\n              <Icon id='bars' className='column-header__icon' fixedWidth />\n              <FormattedMessage id='getting_started.heading' defaultMessage='Getting started' />\n            </button>\n          </h1>\n        </div>}\n\n        <div className='getting-started'>\n          <div className='getting-started__wrapper' style={{ height }}>\n            {!multiColumn && <NavigationBar account={myAccount} />}\n            {navItems}\n          </div>\n\n          {!multiColumn && <div className='flex-spacer' />}\n\n          <LinkFooter withHotkeys={multiColumn} />\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 'mastodon/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 '../../../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":""}
\ No newline at end of file