{"version":3,"sources":["webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/explore/components/story.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/explore/links.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/explore/statuses.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/explore/components/card.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/explore/suggestions.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/explore/tags.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/explore/index.tsx"],"names":["sharesCountRenderer","displayNumber","pluralReady","_jsx","FormattedMessage","id","defaultMessage","values","count","counter","Story","_ref","url","title","lang","publisher","publishedAt","author","authorAccount","sharedTimes","thumbnail","thumbnailDescription","blurhash","expanded","thumbnailLoaded","setThumbnailLoaded","useState","handleImageLoad","useCallback","className","classNames","Skeleton","width","_jsxs","_Fragment","children","RelativeTimestamp","timestamp","href","target","rel","name","AuthorLink","accountId","Link","to","encodeURIComponent","ShortNumber","value","renderer","Blurhash","hash","src","onLoad","alt","Links","PureComponent","componentDidMount","dispatch","links","history","this","props","action","size","fetchTrendingLinks","render","isLoading","banner","DismissableBanner","isEmpty","LoadingIndicator","map","link","i","get","getIn","connect","state","withRouter","Statuses","constructor","arguments","_defineProperty","_debounce","expandTrendingStatuses","leading","statusIds","fetchTrendingStatuses","hasMore","multiColumn","emptyMessage","StatusList","trackScroll","prepend","alwaysPrepend","timelineId","scrollKey","onLoadMore","handleLoadMore","bindToDocument","withCounters","getStatusList","messages","defineMessages","dismiss","Card","source","intl","useIntl","account","useSelector","useDispatch","handleDismiss","dismissSuggestion","label","domain","Avatar","DisplayName","IconButton","iconComponent","CloseIcon","onClick","formatMessage","FollowButton","Suggestions","suggestions","length","fetchSuggestions","suggestion","account_id","sources","items","Tags","hashtags","fetchTrendingHashtags","hashtag","Hashtag","isLoadingHashtags","Explore","signedIn","useIdentity","columnRef","useRef","handleHeaderClick","_columnRef$current","current","scrollTop","Column","ref","ColumnHeader","icon","ExploreIcon","Search","singleColumn","NavLink","exact","tagName","Switch","Route","path","component","Helmet","content"],"mappings":"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","file":"js/flavours/glitch/async/explore-f2d31a03ea7e81ce8c3f.chunk.js","sourcesContent":["import PropTypes from 'prop-types';\nimport { useState, useCallback } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\n\n\n\nimport { Blurhash } from 'flavours/glitch/components/blurhash';\nimport { RelativeTimestamp } from 'flavours/glitch/components/relative_timestamp';\nimport { ShortNumber } from 'flavours/glitch/components/short_number';\nimport { Skeleton } from 'flavours/glitch/components/skeleton';\n\nimport { AuthorLink } from './author_link';\n\nconst sharesCountRenderer = (displayNumber, pluralReady) => (\n {displayNumber},\n }}\n />\n);\n\nexport const Story = ({\n url,\n title,\n lang,\n publisher,\n publishedAt,\n author,\n authorAccount,\n sharedTimes,\n thumbnail,\n thumbnailDescription,\n blurhash,\n expanded\n}) => {\n const [thumbnailLoaded, setThumbnailLoaded] = useState(false);\n\n const handleImageLoad = useCallback(() => {\n setThumbnailLoaded(true);\n }, [setThumbnailLoaded]);\n\n return (\n
\n
\n
\n {publisher ? {publisher} : }{publishedAt && <> ยท }\n
\n\n \n {title ? title : }\n \n\n
\n {author ? : {author} }} /> : }\n {typeof sharedTimes === 'number' ? : }\n
\n
\n\n \n {thumbnail ? (\n <>\n
\n {thumbnailDescription}\n \n ) : }\n
\n
\n );\n};\n\nStory.propTypes = {\n url: PropTypes.string,\n title: PropTypes.string,\n lang: PropTypes.string,\n publisher: PropTypes.string,\n publishedAt: PropTypes.string,\n author: PropTypes.string,\n authorAccount: PropTypes.string,\n sharedTimes: PropTypes.number,\n thumbnail: PropTypes.string,\n thumbnailDescription: PropTypes.string,\n blurhash: PropTypes.string,\n expanded: PropTypes.bool,\n};\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport { withRouter } from 'react-router-dom';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\n\nimport { fetchTrendingLinks } from 'flavours/glitch/actions/trends';\nimport { DismissableBanner } from 'flavours/glitch/components/dismissable_banner';\nimport { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';\nimport { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';\n\nimport { Story } from './components/story';\n\nconst mapStateToProps = state => ({\n links: state.getIn(['trends', 'links', 'items']),\n isLoading: state.getIn(['trends', 'links', 'isLoading']),\n});\n\nclass Links extends PureComponent {\n\n static propTypes = {\n links: ImmutablePropTypes.list,\n isLoading: PropTypes.bool,\n dispatch: PropTypes.func.isRequired,\n ...WithRouterPropTypes,\n };\n\n componentDidMount () {\n const { dispatch, links, history } = this.props;\n\n // If we're navigating back to the screen, do not trigger a reload\n if (history.action === 'POP' && links.size > 0) {\n return;\n }\n\n dispatch(fetchTrendingLinks());\n }\n\n render () {\n const { isLoading, links } = this.props;\n\n const banner = (\n \n \n \n );\n\n if (!isLoading && links.isEmpty()) {\n return (\n
\n {banner}\n\n
\n \n
\n
\n );\n }\n\n return (\n
\n {banner}\n\n {isLoading ? () : links.map((link, i) => (\n \n ))}\n
\n );\n }\n\n}\n\nexport default connect(mapStateToProps)(withRouter(Links));\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport { withRouter } from 'react-router-dom';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\n\nimport { debounce } from 'lodash';\n\n\nimport { fetchTrendingStatuses, expandTrendingStatuses } from 'flavours/glitch/actions/trends';\nimport { DismissableBanner } from 'flavours/glitch/components/dismissable_banner';\nimport StatusList from 'flavours/glitch/components/status_list';\nimport { getStatusList } from 'flavours/glitch/selectors';\nimport { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';\n\nconst mapStateToProps = state => ({\n statusIds: getStatusList(state, 'trending'),\n isLoading: state.getIn(['status_lists', 'trending', 'isLoading'], true),\n hasMore: !!state.getIn(['status_lists', 'trending', 'next']),\n});\n\nclass Statuses extends PureComponent {\n\n static propTypes = {\n statusIds: ImmutablePropTypes.list,\n isLoading: PropTypes.bool,\n hasMore: PropTypes.bool,\n multiColumn: PropTypes.bool,\n dispatch: PropTypes.func.isRequired,\n ...WithRouterPropTypes,\n };\n\n componentDidMount () {\n const { dispatch, statusIds, history } = this.props;\n\n // If we're navigating back to the screen, do not trigger a reload\n if (history.action === 'POP' && statusIds.size > 0) {\n return;\n }\n\n dispatch(fetchTrendingStatuses());\n }\n\n handleLoadMore = debounce(() => {\n const { dispatch } = this.props;\n dispatch(expandTrendingStatuses());\n }, 300, { leading: true });\n\n render () {\n const { isLoading, hasMore, statusIds, multiColumn } = this.props;\n\n const emptyMessage = ;\n\n return (\n }\n alwaysPrepend\n timelineId='explore'\n statusIds={statusIds}\n scrollKey='explore-statuses'\n hasMore={hasMore}\n isLoading={isLoading}\n onLoadMore={this.handleLoadMore}\n emptyMessage={emptyMessage}\n bindToDocument={!multiColumn}\n withCounters\n />\n );\n }\n\n}\n\nexport default connect(mapStateToProps)(withRouter(Statuses));\n","import PropTypes from 'prop-types';\nimport { useCallback } from 'react';\n\nimport { FormattedMessage, useIntl, defineMessages } from 'react-intl';\n\nimport { Link } from 'react-router-dom';\n\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport CloseIcon from '@/material-icons/400-24px/close.svg?react';\nimport { dismissSuggestion } from 'flavours/glitch/actions/suggestions';\nimport { Avatar } from 'flavours/glitch/components/avatar';\nimport { DisplayName } from 'flavours/glitch/components/display_name';\nimport { FollowButton } from 'flavours/glitch/components/follow_button';\nimport { IconButton } from 'flavours/glitch/components/icon_button';\nimport { domain } from 'flavours/glitch/initial_state';\n\nconst messages = defineMessages({\n dismiss: { id: 'follow_suggestions.dismiss', defaultMessage: \"Don't show again\" },\n});\n\nexport const Card = ({ id, source }) => {\n const intl = useIntl();\n const account = useSelector(state => state.getIn(['accounts', id]));\n const dispatch = useDispatch();\n\n const handleDismiss = useCallback(() => {\n dispatch(dismissSuggestion(id));\n }, [id, dispatch]);\n\n let label;\n\n switch (source) {\n case 'friends_of_friends':\n label = ;\n break;\n case 'similar_to_recently_followed':\n label = ;\n break;\n case 'featured':\n label = ;\n break;\n case 'most_followed':\n label = ;\n break;\n case 'most_interactions':\n label = ;\n break;\n }\n\n return (\n
\n
\n {label}\n
\n\n
\n \n\n
\n
\n \n \n \n
\n
\n
\n
\n );\n};\n\nCard.propTypes = {\n id: PropTypes.string.isRequired,\n source: PropTypes.oneOf(['friends_of_friends', 'similar_to_recently_followed', 'featured', 'most_followed', 'most_interactions']),\n};\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport { withRouter } from 'react-router-dom';\n\nimport { connect } from 'react-redux';\n\nimport { fetchSuggestions } from 'flavours/glitch/actions/suggestions';\nimport { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';\nimport { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';\n\nimport { Card } from './components/card';\n\nconst mapStateToProps = state => ({\n suggestions: state.suggestions.items,\n isLoading: state.suggestions.isLoading,\n});\n\nclass Suggestions extends PureComponent {\n\n static propTypes = {\n isLoading: PropTypes.bool,\n suggestions: PropTypes.array,\n dispatch: PropTypes.func.isRequired,\n ...WithRouterPropTypes,\n };\n\n componentDidMount () {\n const { dispatch, suggestions, history } = this.props;\n\n // If we're navigating back to the screen, do not trigger a reload\n if (history.action === 'POP' && suggestions.length > 0) {\n return;\n }\n\n dispatch(fetchSuggestions());\n }\n\n render () {\n const { isLoading, suggestions } = this.props;\n\n if (!isLoading && suggestions.length === 0) {\n return (\n
\n
\n \n
\n
\n );\n }\n\n return (\n
\n {isLoading ? : suggestions.map(suggestion => (\n \n ))}\n
\n );\n }\n\n}\n\nexport default connect(mapStateToProps)(withRouter(Suggestions));\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage } from 'react-intl';\n\nimport { withRouter } from 'react-router-dom';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\n\nimport { fetchTrendingHashtags } from 'flavours/glitch/actions/trends';\nimport { DismissableBanner } from 'flavours/glitch/components/dismissable_banner';\nimport { ImmutableHashtag as Hashtag } from 'flavours/glitch/components/hashtag';\nimport { LoadingIndicator } from 'flavours/glitch/components/loading_indicator';\nimport { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';\n\nconst mapStateToProps = state => ({\n hashtags: state.getIn(['trends', 'tags', 'items']),\n isLoadingHashtags: state.getIn(['trends', 'tags', 'isLoading']),\n});\n\nclass Tags extends PureComponent {\n\n static propTypes = {\n hashtags: ImmutablePropTypes.list,\n isLoading: PropTypes.bool,\n dispatch: PropTypes.func.isRequired,\n ...WithRouterPropTypes,\n };\n\n componentDidMount () {\n const { dispatch, history, hashtags } = this.props;\n\n // If we're navigating back to the screen, do not trigger a reload\n if (history.action === 'POP' && hashtags.size > 0) {\n return;\n }\n\n dispatch(fetchTrendingHashtags());\n }\n\n render () {\n const { isLoading, hashtags } = this.props;\n\n const banner = (\n \n \n \n );\n\n if (!isLoading && hashtags.isEmpty()) {\n return (\n
\n {banner}\n\n
\n \n
\n
\n );\n }\n\n return (\n
\n {banner}\n\n {isLoading ? () : hashtags.map(hashtag => (\n \n ))}\n
\n );\n }\n\n}\n\nexport default connect(mapStateToProps)(withRouter(Tags));\n","import { useCallback, useRef } from 'react';\n\nimport { defineMessages, useIntl, FormattedMessage } from 'react-intl';\n\nimport { Helmet } from 'react-helmet';\nimport { NavLink, Switch, Route } from 'react-router-dom';\n\nimport ExploreIcon from '@/material-icons/400-24px/explore.svg?react';\nimport { Column } from 'flavours/glitch/components/column';\nimport type { ColumnRef } from 'flavours/glitch/components/column';\nimport { ColumnHeader } from 'flavours/glitch/components/column_header';\nimport { Search } from 'flavours/glitch/features/compose/components/search';\nimport { useIdentity } from 'flavours/glitch/identity_context';\n\nimport Links from './links';\nimport Statuses from './statuses';\nimport Suggestions from './suggestions';\nimport Tags from './tags';\n\nconst messages = defineMessages({\n title: { id: 'explore.title', defaultMessage: 'Explore' },\n});\n\nconst Explore: React.FC<{ multiColumn: boolean }> = ({ multiColumn }) => {\n const { signedIn } = useIdentity();\n const intl = useIntl();\n const columnRef = useRef(null);\n\n const handleHeaderClick = useCallback(() => {\n columnRef.current?.scrollTop();\n }, []);\n\n return (\n \n \n\n
\n \n
\n\n
\n \n \n \n\n \n \n \n\n {signedIn && (\n \n \n \n )}\n\n \n \n \n
\n\n \n \n \n \n \n \n \n \n\n \n {intl.formatMessage(messages.title)}\n \n \n \n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Explore;\n"],"sourceRoot":""}