{"version":3,"sources":["webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/search_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/components/hashtag.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/components/search_results.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/search_results_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/components/header.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/header_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/index.js"],"names":["react_redux__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","react_intl__WEBPACK_IMPORTED_MODULE_1__","_components_compose_form__WEBPACK_IMPORTED_MODULE_2__","flavours_glitch_actions_compose__WEBPACK_IMPORTED_MODULE_3__","flavours_glitch_actions_modal__WEBPACK_IMPORTED_MODULE_4__","flavours_glitch_actions_local_settings__WEBPACK_IMPORTED_MODULE_5__","flavours_glitch_util_privacy_preference__WEBPACK_IMPORTED_MODULE_6__","messages","defineMessages","missingDescriptionMessage","id","defaultMessage","missingDescriptionConfirm","connect","state","spoilersAlwaysOn","getIn","inReplyTo","replyPrivacy","sideArmBasePrivacy","sideArmRestrictedPrivacy","privacyPreference","sideArmPrivacy","advancedOptions","focusDate","caretPosition","isSubmitting","isChangingUpload","isUploading","layout","media","preselectDate","privacy","contentType","sideArm","sensitive","showSearch","spoiler","spoilerText","suggestions","text","anyMedia","size","mediaDescriptionConfirmation","preselectOnReply","dispatch","_ref","intl","onChange","changeCompose","onSubmit","routerHistory","submitCompose","onClearSuggestions","clearComposeSuggestions","onFetchSuggestions","token","fetchComposeSuggestions","onSuggestionSelected","position","suggestion","path","selectComposeSuggestion","onChangeSpoilerText","changeComposeSpoilerText","onChangeContentType","value","changeComposeContentType","onPaste","files","uploadCompose","onPickEmoji","emoji","insertEmojiCompose","onChangeSpoilerness","changeComposeSpoilerness","onChangeVisibility","changeComposeVisibility","onMount","mountCompose","onUnmount","unmountCompose","onMediaDescriptionConfirm","openModal","message","formatMessage","confirm","onConfirm","onDoNotAsk","changeLocalSetting","ComposeForm","account","me","NavigationBar","submitted","changeSearch","onClear","clearSearch","submitSearch","onShow","Search","Hashtag","hashtag","Object","jsx","className","permalink","href","get","to","index_es","values","rawCount","count","shortNumberFormat","build","width","height","data","reverse","map","day","toArray","style","fill","dismissSuggestion","SearchResults","injectIntl","componentDidMount","this","props","fetchSuggestions","render","accounts","statuses","hashtags","_this$props","results","isEmpty","accountId","account_container","actionIcon","actionTitle","onActionClick","icon","fixedWidth","statusId","status_container","components_hashtag","ImmutablePureComponent","ImmutablePropTypes","isRequired","list","PropTypes","func","object","community","home_timeline","logout","notifications","public","settings","start","Header","columns","unreadNotifications","showNotificationsBadge","onSettingsClick","renderForColumn","conditionalRender","bind","columnId","some","column","Link","aria-label","title","onClick","data-method","signOutLink","number","bool","e","preventDefault","stopPropagation","compose","Compose","ownProps","multiColumn","isSearchPage","computedClass","classNames","role","header_container","search_container","navigation_container","compose_form_container","mascot","alt","draggable","src","optional_motion","defaultStyle","x","spring","stiffness","damping","transform","visibility","search_results_container","React","PureComponent"],"mappings":"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","file":"flavours/glitch/async/compose.js","sourcesContent":["import { connect } from 'react-redux';\nimport { defineMessages } from 'react-intl';\nimport ComposeForm from '../components/compose_form';\nimport {\n changeCompose,\n changeComposeSpoilerText,\n changeComposeSpoilerness,\n changeComposeVisibility,\n changeComposeContentType,\n clearComposeSuggestions,\n fetchComposeSuggestions,\n insertEmojiCompose,\n mountCompose,\n selectComposeSuggestion,\n submitCompose,\n unmountCompose,\n uploadCompose,\n} from 'flavours/glitch/actions/compose';\nimport {\n openModal,\n} from 'flavours/glitch/actions/modal';\nimport { changeLocalSetting } from 'flavours/glitch/actions/local_settings';\n\nimport { privacyPreference } from 'flavours/glitch/util/privacy_preference';\n\nconst messages = defineMessages({\n missingDescriptionMessage: { id: 'confirmations.missing_media_description.message',\n defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' },\n missingDescriptionConfirm: { id: 'confirmations.missing_media_description.confirm',\n defaultMessage: 'Send anyway' },\n});\n\n// State mapping.\nfunction mapStateToProps (state) {\n const spoilersAlwaysOn = state.getIn(['local_settings', 'always_show_spoilers_field']);\n const inReplyTo = state.getIn(['compose', 'in_reply_to']);\n const replyPrivacy = inReplyTo ? state.getIn(['statuses', inReplyTo, 'visibility']) : null;\n const sideArmBasePrivacy = state.getIn(['local_settings', 'side_arm']);\n const sideArmRestrictedPrivacy = replyPrivacy ? privacyPreference(replyPrivacy, sideArmBasePrivacy) : null;\n let sideArmPrivacy = null;\n switch (state.getIn(['local_settings', 'side_arm_reply_mode'])) {\n case 'copy':\n sideArmPrivacy = replyPrivacy;\n break;\n case 'restrict':\n sideArmPrivacy = sideArmRestrictedPrivacy;\n break;\n }\n sideArmPrivacy = sideArmPrivacy || sideArmBasePrivacy;\n return {\n advancedOptions: state.getIn(['compose', 'advanced_options']),\n focusDate: state.getIn(['compose', 'focusDate']),\n caretPosition: state.getIn(['compose', 'caretPosition']),\n isSubmitting: state.getIn(['compose', 'is_submitting']),\n isChangingUpload: state.getIn(['compose', 'is_changing_upload']),\n isUploading: state.getIn(['compose', 'is_uploading']),\n layout: state.getIn(['local_settings', 'layout']),\n media: state.getIn(['compose', 'media_attachments']),\n preselectDate: state.getIn(['compose', 'preselectDate']),\n privacy: state.getIn(['compose', 'privacy']),\n contentType: state.getIn(['compose', 'content_type']),\n sideArm: sideArmPrivacy,\n sensitive: state.getIn(['compose', 'sensitive']),\n showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),\n spoiler: spoilersAlwaysOn || state.getIn(['compose', 'spoiler']),\n spoilerText: state.getIn(['compose', 'spoiler_text']),\n suggestions: state.getIn(['compose', 'suggestions']),\n text: state.getIn(['compose', 'text']),\n anyMedia: state.getIn(['compose', 'media_attachments']).size > 0,\n spoilersAlwaysOn: spoilersAlwaysOn,\n mediaDescriptionConfirmation: state.getIn(['local_settings', 'confirm_missing_media_description']),\n preselectOnReply: state.getIn(['local_settings', 'preselect_on_reply']),\n };\n};\n\n// Dispatch mapping.\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n\n onChange(text) {\n dispatch(changeCompose(text));\n },\n\n onSubmit(routerHistory) {\n dispatch(submitCompose(routerHistory));\n },\n\n onClearSuggestions() {\n dispatch(clearComposeSuggestions());\n },\n\n onFetchSuggestions(token) {\n dispatch(fetchComposeSuggestions(token));\n },\n\n onSuggestionSelected(position, token, suggestion, path) {\n dispatch(selectComposeSuggestion(position, token, suggestion, path));\n },\n\n onChangeSpoilerText(text) {\n dispatch(changeComposeSpoilerText(text));\n },\n\n onChangeContentType(value) {\n dispatch(changeComposeContentType(value));\n },\n\n onPaste(files) {\n dispatch(uploadCompose(files));\n },\n\n onPickEmoji(position, emoji) {\n dispatch(insertEmojiCompose(position, emoji));\n },\n\n onChangeSpoilerness() {\n dispatch(changeComposeSpoilerness());\n },\n\n onChangeVisibility(value) {\n dispatch(changeComposeVisibility(value));\n },\n\n onMount() {\n dispatch(mountCompose());\n },\n\n onUnmount() {\n dispatch(unmountCompose());\n },\n\n onMediaDescriptionConfirm(routerHistory) {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.missingDescriptionMessage),\n confirm: intl.formatMessage(messages.missingDescriptionConfirm),\n onConfirm: () => dispatch(submitCompose(routerHistory)),\n onDoNotAsk: () => dispatch(changeLocalSetting(['confirm_missing_media_description'], false)),\n }));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ComposeForm);\n","import { connect } from 'react-redux';\nimport NavigationBar from '../components/navigation_bar';\nimport { me } from 'flavours/glitch/util/initial_state';\n\nconst mapStateToProps = state => {\n return {\n account: state.getIn(['accounts', me]),\n };\n};\n\nexport default connect(mapStateToProps)(NavigationBar);\n","import { connect } from 'react-redux';\nimport {\n changeSearch,\n clearSearch,\n submitSearch,\n showSearch,\n} from 'flavours/glitch/actions/search';\nimport Search from '../components/search';\n\nconst mapStateToProps = state => ({\n value: state.getIn(['search', 'value']),\n submitted: state.getIn(['search', 'submitted']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onChange (value) {\n dispatch(changeSearch(value));\n },\n\n onClear () {\n dispatch(clearSearch());\n },\n\n onSubmit () {\n dispatch(submitSearch());\n },\n\n onShow () {\n dispatch(showSearch());\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Search);\n","import React from 'react';\nimport { Sparklines, SparklinesCurve } from 'react-sparklines';\nimport { FormattedMessage } from 'react-intl';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Permalink from './permalink';\nimport { shortNumberFormat } from 'flavours/glitch/util/numbers';\n\nconst Hashtag = ({ hashtag }) => (\n <div className='trends__item'>\n <div className='trends__item__name'>\n <Permalink href={hashtag.get('url')} to={`/timelines/tag/${hashtag.get('name')}`}>\n #<span>{hashtag.get('name')}</span>\n </Permalink>\n\n <FormattedMessage id='trends.count_by_accounts' defaultMessage='{count} {rawCount, plural, one {person} other {people}} talking' values={{ rawCount: hashtag.getIn(['history', 0, 'accounts']), count: <strong>{shortNumberFormat(hashtag.getIn(['history', 0, 'accounts']))}</strong> }} />\n </div>\n\n <div className='trends__item__current'>\n {shortNumberFormat(hashtag.getIn(['history', 0, 'uses']))}\n </div>\n\n <div className='trends__item__sparkline'>\n <Sparklines width={50} height={28} data={hashtag.get('history') && hashtag.get('history').reverse().map(day => day.get('uses')).toArray()}>\n <SparklinesCurve style={{ fill: 'none' }} />\n </Sparklines>\n </div>\n </div>\n);\n\nHashtag.propTypes = {\n hashtag: ImmutablePropTypes.map.isRequired,\n};\n\nexport default Hashtag;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport AccountContainer from 'flavours/glitch/containers/account_container';\nimport StatusContainer from 'flavours/glitch/containers/status_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport Hashtag from 'flavours/glitch/components/hashtag';\nimport Icon from 'flavours/glitch/components/icon';\n\nconst messages = defineMessages({\n dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' },\n});\n\nexport default @injectIntl\nclass SearchResults extends ImmutablePureComponent {\n\n static propTypes = {\n results: ImmutablePropTypes.map.isRequired,\n suggestions: ImmutablePropTypes.list.isRequired,\n fetchSuggestions: PropTypes.func.isRequired,\n dismissSuggestion: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n componentDidMount () {\n this.props.fetchSuggestions();\n }\n\n render() {\n const { intl, results, suggestions, dismissSuggestion } = this.props;\n\n if (results.isEmpty() && !suggestions.isEmpty()) {\n return (\n <div className='drawer--results'>\n <div className='trends'>\n <div className='trends__header'>\n <i className='fa fa-user-plus fa-fw' />\n <FormattedMessage id='suggestions.header' defaultMessage='You might be interested in…' />\n </div>\n\n {suggestions && suggestions.map(accountId => (\n <AccountContainer\n key={accountId}\n id={accountId}\n actionIcon='times'\n actionTitle={intl.formatMessage(messages.dismissSuggestion)}\n onActionClick={dismissSuggestion}\n />\n ))}\n </div>\n </div>\n );\n }\n\n let accounts, statuses, hashtags;\n let count = 0;\n\n if (results.get('accounts') && results.get('accounts').size > 0) {\n count += results.get('accounts').size;\n accounts = (\n <section>\n <h5><Icon icon='users' fixedWidth /><FormattedMessage id='search_results.accounts' defaultMessage='People' /></h5>\n\n {results.get('accounts').map(accountId => <AccountContainer id={accountId} key={accountId} />)}\n </section>\n );\n }\n\n if (results.get('statuses') && results.get('statuses').size > 0) {\n count += results.get('statuses').size;\n statuses = (\n <section>\n <h5><Icon icon='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>\n\n {results.get('statuses').map(statusId => <StatusContainer id={statusId} key={statusId}/>)}\n </section>\n );\n }\n\n if (results.get('hashtags') && results.get('hashtags').size > 0) {\n count += results.get('hashtags').size;\n hashtags = (\n <section>\n <h5><Icon icon='hashtag' fixedWidth /><FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' /></h5>\n\n {results.get('hashtags').map(hashtag => <Hashtag key={hashtag.get('name')} hashtag={hashtag} />)}\n </section>\n );\n }\n\n // The result.\n return (\n <div className='drawer--results'>\n <header className='search-results__header'>\n <Icon icon='search' fixedWidth />\n <FormattedMessage id='search_results.total' defaultMessage='{count, number} {count, plural, one {result} other {results}}' values={{ count }} />\n </header>\n\n {accounts}\n {statuses}\n {hashtags}\n </div>\n );\n };\n}\n","import { connect } from 'react-redux';\nimport SearchResults from '../components/search_results';\nimport { fetchSuggestions, dismissSuggestion } from '../../../actions/suggestions';\n\nconst mapStateToProps = state => ({\n results: state.getIn(['search', 'results']),\n suggestions: state.getIn(['suggestions', 'items']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n fetchSuggestions: () => dispatch(fetchSuggestions()),\n dismissSuggestion: account => dispatch(dismissSuggestion(account.get('id'))),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SearchResults);\n","// Package imports.\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\n// Components.\nimport Icon from 'flavours/glitch/components/icon';\n\n// Utils.\nimport { conditionalRender } from 'flavours/glitch/util/react_helpers';\nimport { signOutLink } from 'flavours/glitch/util/backend_links';\n\n// Messages.\nconst messages = defineMessages({\n community: {\n defaultMessage: 'Local timeline',\n id: 'navigation_bar.community_timeline',\n },\n home_timeline: {\n defaultMessage: 'Home',\n id: 'tabs_bar.home',\n },\n logout: {\n defaultMessage: 'Logout',\n id: 'navigation_bar.logout',\n },\n notifications: {\n defaultMessage: 'Notifications',\n id: 'tabs_bar.notifications',\n },\n public: {\n defaultMessage: 'Federated timeline',\n id: 'navigation_bar.public_timeline',\n },\n settings: {\n defaultMessage: 'App settings',\n id: 'navigation_bar.app_settings',\n },\n start: {\n defaultMessage: 'Getting started',\n id: 'getting_started.heading',\n },\n});\n\nexport default @injectIntl\nclass Header extends ImmutablePureComponent {\n static propTypes = {\n columns: ImmutablePropTypes.list,\n unreadNotifications: PropTypes.number,\n showNotificationsBadge: PropTypes.bool,\n intl: PropTypes.object,\n onSettingsClick: PropTypes.func,\n };\n\n render () {\n const { intl, columns, unreadNotifications, showNotificationsBadge, onSettingsClick } = this.props;\n\n // Only renders the component if the column isn't being shown.\n const renderForColumn = conditionalRender.bind(null,\n columnId => !columns || !columns.some(\n column => column.get('id') === columnId\n )\n );\n\n // The result.\n return (\n <nav className='drawer--header'>\n <Link\n aria-label={intl.formatMessage(messages.start)}\n title={intl.formatMessage(messages.start)}\n to='/getting-started'\n ><Icon icon='asterisk' /></Link>\n {renderForColumn('HOME', (\n <Link\n aria-label={intl.formatMessage(messages.home_timeline)}\n title={intl.formatMessage(messages.home_timeline)}\n to='/timelines/home'\n ><Icon icon='home' /></Link>\n ))}\n {renderForColumn('NOTIFICATIONS', (\n <Link\n aria-label={intl.formatMessage(messages.notifications)}\n title={intl.formatMessage(messages.notifications)}\n to='/notifications'\n >\n <span className='icon-badge-wrapper'>\n <Icon icon='bell' />\n { showNotificationsBadge && unreadNotifications > 0 && <div className='icon-badge' />}\n </span>\n </Link>\n ))}\n {renderForColumn('COMMUNITY', (\n <Link\n aria-label={intl.formatMessage(messages.community)}\n title={intl.formatMessage(messages.community)}\n to='/timelines/public/local'\n ><Icon icon='users' /></Link>\n ))}\n {renderForColumn('PUBLIC', (\n <Link\n aria-label={intl.formatMessage(messages.public)}\n title={intl.formatMessage(messages.public)}\n to='/timelines/public'\n ><Icon icon='globe' /></Link>\n ))}\n <a\n aria-label={intl.formatMessage(messages.settings)}\n onClick={onSettingsClick}\n href='#'\n title={intl.formatMessage(messages.settings)}\n ><Icon icon='cogs' /></a>\n <a\n aria-label={intl.formatMessage(messages.logout)}\n data-method='delete'\n href={ signOutLink }\n title={intl.formatMessage(messages.logout)}\n ><Icon icon='sign-out' /></a>\n </nav>\n );\n };\n}\n","import { openModal } from 'flavours/glitch/actions/modal';\nimport { connect } from 'react-redux';\nimport Header from '../components/header';\n\nconst mapStateToProps = state => {\n return {\n columns: state.getIn(['settings', 'columns']),\n unreadNotifications: state.getIn(['notifications', 'unread']),\n showNotificationsBadge: state.getIn(['local_settings', 'notifications', 'tab_badge']),\n };\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n onSettingsClick (e) {\n e.preventDefault();\n e.stopPropagation();\n dispatch(openModal('SETTINGS', {}));\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Header);\n","import React from 'react';\nimport ComposeFormContainer from './containers/compose_form_container';\nimport NavigationContainer from './containers/navigation_container';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport classNames from 'classnames';\nimport SearchContainer from './containers/search_container';\nimport Motion from 'flavours/glitch/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport SearchResultsContainer from './containers/search_results_container';\nimport { me, mascot } from 'flavours/glitch/util/initial_state';\nimport HeaderContainer from './containers/header_container';\n\nconst messages = defineMessages({\n compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },\n});\n\nconst mapStateToProps = (state, ownProps) => ({\n showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : ownProps.isSearchPage,\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Compose extends React.PureComponent {\n static propTypes = {\n multiColumn: PropTypes.bool,\n showSearch: PropTypes.bool,\n isSearchPage: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n };\n\n render () {\n const {\n intl,\n multiColumn,\n isSearchPage,\n showSearch,\n } = this.props;\n const computedClass = classNames('drawer', 'mbstobon');\n\n return (\n <div className={computedClass} role='region' aria-label={intl.formatMessage(messages.compose)}>\n {multiColumn && <HeaderContainer />}\n\n {(multiColumn || isSearchPage) && <SearchContainer />}\n\n <div className='drawer__pager'>\n {!isSearchPage && <div className='drawer__inner'>\n <NavigationContainer />\n <ComposeFormContainer />\n {multiColumn && (\n <div className='drawer__inner__mastodon'>\n {mascot ? <img alt='' draggable='false' src={mascot} /> : <button className='mastodon' />}\n </div>\n )}\n </div>}\n\n <Motion defaultStyle={{ x: isSearchPage ? 0 : -100 }} style={{ x: spring(showSearch || isSearchPage ? 0 : -100, { stiffness: 210, damping: 20 }) }}>\n {({ x }) => (\n <div className='drawer__inner darker' style={{ transform: `translateX(${x}%)`, visibility: x === -100 ? 'hidden' : 'visible' }}>\n <SearchResultsContainer />\n </div>\n )}\n </Motion>\n </div>\n </div>\n );\n }\n\n}\n"],"sourceRoot":""}