From 4f55d5123b9d2110ff803e8e9cd2c0f968bc63fc Mon Sep 17 00:00:00 2001 From: Sean King Date: Thu, 15 Apr 2021 22:56:21 -0600 Subject: Remove MastoFE-related backend code and frontend pieces --- priv/static/packs/features/account_gallery.js | 2 -- priv/static/packs/features/account_gallery.js.map | 1 - priv/static/packs/features/account_timeline.js | 2 -- priv/static/packs/features/account_timeline.js.map | 1 - priv/static/packs/features/blocks.js | 2 -- priv/static/packs/features/blocks.js.map | 1 - priv/static/packs/features/bookmarked_statuses.js | 2 -- priv/static/packs/features/bookmarked_statuses.js.map | 1 - priv/static/packs/features/community_timeline.js | 2 -- priv/static/packs/features/community_timeline.js.map | 1 - priv/static/packs/features/compose.js | 2 -- priv/static/packs/features/compose.js.map | 1 - priv/static/packs/features/direct_timeline.js | 2 -- priv/static/packs/features/direct_timeline.js.map | 1 - priv/static/packs/features/directory.js | 2 -- priv/static/packs/features/directory.js.map | 1 - priv/static/packs/features/domain_blocks.js | 2 -- priv/static/packs/features/domain_blocks.js.map | 1 - priv/static/packs/features/favourited_statuses.js | 2 -- priv/static/packs/features/favourited_statuses.js.map | 1 - priv/static/packs/features/favourites.js | 2 -- priv/static/packs/features/favourites.js.map | 1 - priv/static/packs/features/follow_requests.js | 2 -- priv/static/packs/features/follow_requests.js.map | 1 - priv/static/packs/features/followers.js | 2 -- priv/static/packs/features/followers.js.map | 1 - priv/static/packs/features/following.js | 2 -- priv/static/packs/features/following.js.map | 1 - priv/static/packs/features/generic_not_found.js | 2 -- priv/static/packs/features/generic_not_found.js.map | 1 - priv/static/packs/features/getting_started.js | 2 -- priv/static/packs/features/getting_started.js.map | 1 - priv/static/packs/features/glitch/async/directory.js | 2 -- priv/static/packs/features/glitch/async/directory.js.map | 1 - priv/static/packs/features/glitch/async/list_adder.js | 2 -- priv/static/packs/features/glitch/async/list_adder.js.map | 1 - priv/static/packs/features/glitch/async/search.js | 2 -- priv/static/packs/features/glitch/async/search.js.map | 1 - priv/static/packs/features/hashtag_timeline.js | 2 -- priv/static/packs/features/hashtag_timeline.js.map | 1 - priv/static/packs/features/home_timeline.js | 2 -- priv/static/packs/features/home_timeline.js.map | 1 - priv/static/packs/features/keyboard_shortcuts.js | 2 -- priv/static/packs/features/keyboard_shortcuts.js.map | 1 - priv/static/packs/features/list_adder.js | 2 -- priv/static/packs/features/list_adder.js.map | 1 - priv/static/packs/features/list_editor.js | 2 -- priv/static/packs/features/list_editor.js.map | 1 - priv/static/packs/features/list_timeline.js | 2 -- priv/static/packs/features/list_timeline.js.map | 1 - priv/static/packs/features/lists.js | 2 -- priv/static/packs/features/lists.js.map | 1 - priv/static/packs/features/mutes.js | 2 -- priv/static/packs/features/mutes.js.map | 1 - priv/static/packs/features/notifications.js | 2 -- priv/static/packs/features/notifications.js.map | 1 - priv/static/packs/features/pinned_statuses.js | 2 -- priv/static/packs/features/pinned_statuses.js.map | 1 - priv/static/packs/features/public_timeline.js | 2 -- priv/static/packs/features/public_timeline.js.map | 1 - priv/static/packs/features/reblogs.js | 2 -- priv/static/packs/features/reblogs.js.map | 1 - priv/static/packs/features/search.js | 2 -- priv/static/packs/features/search.js.map | 1 - priv/static/packs/features/status.js | 2 -- priv/static/packs/features/status.js.map | 1 - 66 files changed, 99 deletions(-) delete mode 100644 priv/static/packs/features/account_gallery.js delete mode 100644 priv/static/packs/features/account_gallery.js.map delete mode 100644 priv/static/packs/features/account_timeline.js delete mode 100644 priv/static/packs/features/account_timeline.js.map delete mode 100644 priv/static/packs/features/blocks.js delete mode 100644 priv/static/packs/features/blocks.js.map delete mode 100644 priv/static/packs/features/bookmarked_statuses.js delete mode 100644 priv/static/packs/features/bookmarked_statuses.js.map delete mode 100644 priv/static/packs/features/community_timeline.js delete mode 100644 priv/static/packs/features/community_timeline.js.map delete mode 100644 priv/static/packs/features/compose.js delete mode 100644 priv/static/packs/features/compose.js.map delete mode 100644 priv/static/packs/features/direct_timeline.js delete mode 100644 priv/static/packs/features/direct_timeline.js.map delete mode 100644 priv/static/packs/features/directory.js delete mode 100644 priv/static/packs/features/directory.js.map delete mode 100644 priv/static/packs/features/domain_blocks.js delete mode 100644 priv/static/packs/features/domain_blocks.js.map delete mode 100644 priv/static/packs/features/favourited_statuses.js delete mode 100644 priv/static/packs/features/favourited_statuses.js.map delete mode 100644 priv/static/packs/features/favourites.js delete mode 100644 priv/static/packs/features/favourites.js.map delete mode 100644 priv/static/packs/features/follow_requests.js delete mode 100644 priv/static/packs/features/follow_requests.js.map delete mode 100644 priv/static/packs/features/followers.js delete mode 100644 priv/static/packs/features/followers.js.map delete mode 100644 priv/static/packs/features/following.js delete mode 100644 priv/static/packs/features/following.js.map delete mode 100644 priv/static/packs/features/generic_not_found.js delete mode 100644 priv/static/packs/features/generic_not_found.js.map delete mode 100644 priv/static/packs/features/getting_started.js delete mode 100644 priv/static/packs/features/getting_started.js.map delete mode 100644 priv/static/packs/features/glitch/async/directory.js delete mode 100644 priv/static/packs/features/glitch/async/directory.js.map delete mode 100644 priv/static/packs/features/glitch/async/list_adder.js delete mode 100644 priv/static/packs/features/glitch/async/list_adder.js.map delete mode 100644 priv/static/packs/features/glitch/async/search.js delete mode 100644 priv/static/packs/features/glitch/async/search.js.map delete mode 100644 priv/static/packs/features/hashtag_timeline.js delete mode 100644 priv/static/packs/features/hashtag_timeline.js.map delete mode 100644 priv/static/packs/features/home_timeline.js delete mode 100644 priv/static/packs/features/home_timeline.js.map delete mode 100644 priv/static/packs/features/keyboard_shortcuts.js delete mode 100644 priv/static/packs/features/keyboard_shortcuts.js.map delete mode 100644 priv/static/packs/features/list_adder.js delete mode 100644 priv/static/packs/features/list_adder.js.map delete mode 100644 priv/static/packs/features/list_editor.js delete mode 100644 priv/static/packs/features/list_editor.js.map delete mode 100644 priv/static/packs/features/list_timeline.js delete mode 100644 priv/static/packs/features/list_timeline.js.map delete mode 100644 priv/static/packs/features/lists.js delete mode 100644 priv/static/packs/features/lists.js.map delete mode 100644 priv/static/packs/features/mutes.js delete mode 100644 priv/static/packs/features/mutes.js.map delete mode 100644 priv/static/packs/features/notifications.js delete mode 100644 priv/static/packs/features/notifications.js.map delete mode 100644 priv/static/packs/features/pinned_statuses.js delete mode 100644 priv/static/packs/features/pinned_statuses.js.map delete mode 100644 priv/static/packs/features/public_timeline.js delete mode 100644 priv/static/packs/features/public_timeline.js.map delete mode 100644 priv/static/packs/features/reblogs.js delete mode 100644 priv/static/packs/features/reblogs.js.map delete mode 100644 priv/static/packs/features/search.js delete mode 100644 priv/static/packs/features/search.js.map delete mode 100644 priv/static/packs/features/status.js delete mode 100644 priv/static/packs/features/status.js.map (limited to 'priv/static/packs/features') diff --git a/priv/static/packs/features/account_gallery.js b/priv/static/packs/features/account_gallery.js deleted file mode 100644 index 6afdba220..000000000 --- a/priv/static/packs/features/account_gallery.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{863:function(t,e,a){"use strict";a.r(e),a.d(e,"default",(function(){return z}));var n=a(0),o=a(2),c=a(9),i=a(6),s=a(8),r=a(1),l=a(3),d=a.n(l),p=a(15),u=a(16),h=a.n(u),b=a(5),m=a.n(b),f=a(26),O=a(36),g=a(306),j=a(757),v=a(764),y=a(21),_=a(210),I=a(215),M=a(14),L=a.n(M),w=a(27),R=a(22),x=a(120);var S=function(t){Object(s.a)(a,t);var e;e=a;function a(){for(var e,a=arguments.length,n=new Array(a),c=0;c0?e.props.attachments.last().getIn(["status","id"]):void 0)})),Object(r.a)(Object(o.a)(e),"handleScroll",(function(t){var a=t.target,n=a.scrollTop;150>a.scrollHeight-n-a.clientHeight&&!e.props.isLoading&&e.handleScrollToBottom()})),Object(r.a)(Object(o.a)(e),"handleLoadMore",(function(t){e.props.dispatch(Object(O.p)(e.props.params.accountId,{maxId:t}))})),Object(r.a)(Object(o.a)(e),"handleLoadOlder",(function(t){t.preventDefault(),e.handleScrollToBottom()})),Object(r.a)(Object(o.a)(e),"handleOpenMedia",(function(t){if("video"===t.get("type"))e.props.dispatch(Object(E.d)("VIDEO",{media:t,status:t.get("status")}));else if("audio"===t.get("type"))e.props.dispatch(Object(E.d)("AUDIO",{media:t,status:t.get("status")}));else{var a=t.getIn(["status","media_attachments"]),n=a.findIndex((function(e){return e.get("id")===t.get("id")}));e.props.dispatch(Object(E.d)("MEDIA",{media:a,index:n,status:t.get("status")}))}})),Object(r.a)(Object(o.a)(e),"handleRef",(function(t){t&&e.setState({width:t.offsetWidth})})),e}var a=e.prototype;return a.componentDidMount=function(){this.props.dispatch(Object(f.A)(this.props.params.accountId)),this.props.dispatch(Object(O.p)(this.props.params.accountId))},a.componentWillReceiveProps=function(t){t.params.accountId!==this.props.params.accountId&&t.params.accountId&&(this.props.dispatch(Object(f.A)(t.params.accountId)),this.props.dispatch(Object(O.p)(this.props.params.accountId)))},a.render=function(){var t=this,e=this.props,a=e.attachments,o=e.shouldUpdateScroll,c=e.isLoading,i=e.hasMore,s=e.isAccount,r=e.multiColumn,l=this.state.width;if(!s)return Object(n.a)(j.a,{},void 0,Object(n.a)(q.a,{}));if(!a&&c)return Object(n.a)(j.a,{},void 0,Object(n.a)(g.a,{}));var p=null;return!i||c&&0===a.size||(p=Object(n.a)(k.a,{visible:!c,onClick:this.handleLoadOlder})),Object(n.a)(j.a,{},void 0,Object(n.a)(v.a,{multiColumn:r}),Object(n.a)(A.a,{scrollKey:"account_gallery",shouldUpdateScroll:o},void 0,Object(n.a)("div",{className:"scrollable scrollable--flex",onScroll:this.handleScroll},void 0,Object(n.a)(T.a,{accountId:this.props.params.accountId}),d.a.createElement("div",{role:"feed",className:"account-gallery__container",ref:this.handleRef},a.map((function(e,o){return null===e?Object(n.a)(W,{maxId:o>0?a.getIn(o-1,"id"):null,onLoadMore:t.handleLoadMore},"more:"+a.getIn(o+1,"id")):Object(n.a)(S,{attachment:e,displayWidth:l,onOpenMedia:t.handleOpenMedia},e.get("id"))})),p),c&&0===a.size&&Object(n.a)("div",{className:"scrollable__append"},void 0,Object(n.a)(g.a,{})))))},e}(y.a),Object(r.a)(C,"propTypes",{params:m.a.object.isRequired,dispatch:m.a.func.isRequired,attachments:h.a.list.isRequired,isLoading:m.a.bool,hasMore:m.a.bool,isAccount:m.a.bool,multiColumn:m.a.bool}),D=N))||D}}]); -//# sourceMappingURL=account_gallery.js.map \ No newline at end of file diff --git a/priv/static/packs/features/account_gallery.js.map b/priv/static/packs/features/account_gallery.js.map deleted file mode 100644 index 6c6a30c94..000000000 --- a/priv/static/packs/features/account_gallery.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/account_gallery/components/media_item.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/account_gallery/index.js"],"names":["MediaItem","visible","displayMedia","props","attachment","getIn","loaded","c","canvas","setState","e","hoverToPlay","target","play","pause","currentTime","button","ctrlKey","metaKey","preventDefault","state","onOpenMedia","componentDidMount","this","get","_decode","componentDidUpdate","prevProps","hash","pixels","decode","ctx","getContext","imageData","ImageData","putImageData","autoPlayGif","indexOf","render","icon","displayWidth","width","Math","floor","height","status","title","thumbnail","className","id","x","y","src","alt","style","objectPosition","onLoad","handleImageLoad","autoPlay","isIOS","label","classNames","autoplay","aria-label","role","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","loop","muted","href","onClick","handleClick","rel","ref","setCanvasRef","ImmutablePureComponent","ImmutablePropTypes","map","isRequired","PropTypes","number","func","LoadMoreMedia","onLoadMore","maxId","disabled","handleLoadMore","shouldUpdateScroll","string","AccountGallery","connect","isAccount","params","accountId","attachments","getAccountGallery","isLoading","hasMore","size","last","undefined","scrollTop","scrollHeight","clientHeight","handleScrollToBottom","dispatch","expandAccountMediaTimeline","openModal","media","index","findIndex","offsetWidth","fetchAccount","componentWillReceiveProps","nextProps","multiColumn","loadOlder","handleLoadOlder","scrollKey","onScroll","handleScroll","handleRef","handleOpenMedia","object","list","bool"],"mappings":"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","file":"features/account_gallery.js","sourcesContent":["import { decode } from 'blurhash';\nimport classNames from 'classnames';\nimport Icon from 'mastodon/components/icon';\nimport { autoPlayGif, displayMedia } from 'mastodon/initial_state';\nimport { isIOS } from 'mastodon/is_mobile';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nexport default class MediaItem extends ImmutablePureComponent {\n\n static propTypes = {\n attachment: ImmutablePropTypes.map.isRequired,\n displayWidth: PropTypes.number.isRequired,\n onOpenMedia: PropTypes.func.isRequired,\n };\n\n state = {\n visible: displayMedia !== 'hide_all' && !this.props.attachment.getIn(['status', 'sensitive']) || displayMedia === 'show_all',\n loaded: false,\n };\n\n componentDidMount () {\n if (this.props.attachment.get('blurhash')) {\n this._decode();\n }\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.attachment.get('blurhash') !== this.props.attachment.get('blurhash') && this.props.attachment.get('blurhash')) {\n this._decode();\n }\n }\n\n _decode () {\n const hash = this.props.attachment.get('blurhash');\n const pixels = decode(hash, 32, 32);\n\n if (pixels) {\n const ctx = this.canvas.getContext('2d');\n const imageData = new ImageData(pixels, 32, 32);\n\n ctx.putImageData(imageData, 0, 0);\n }\n }\n\n setCanvasRef = c => {\n this.canvas = c;\n }\n\n handleImageLoad = () => {\n this.setState({ loaded: true });\n }\n\n handleMouseEnter = e => {\n if (this.hoverToPlay()) {\n e.target.play();\n }\n }\n\n handleMouseLeave = e => {\n if (this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n }\n\n hoverToPlay () {\n return !autoPlayGif && ['gifv', 'video'].indexOf(this.props.attachment.get('type')) !== -1;\n }\n\n handleClick = e => {\n if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n\n if (this.state.visible) {\n this.props.onOpenMedia(this.props.attachment);\n } else {\n this.setState({ visible: true });\n }\n }\n }\n\n render () {\n const { attachment, displayWidth } = this.props;\n const { visible, loaded } = this.state;\n\n const width = `${Math.floor((displayWidth - 4) / 3) - 4}px`;\n const height = width;\n const status = attachment.get('status');\n const title = status.get('spoiler_text') || attachment.get('description');\n\n let thumbnail = '';\n let icon;\n\n if (attachment.get('type') === 'unknown') {\n // Skip\n } else if (attachment.get('type') === 'audio') {\n thumbnail = (\n \n \n \n );\n } else if (attachment.get('type') === 'image') {\n const focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;\n const focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;\n const x = ((focusX / 2) + .5) * 100;\n const y = ((focusY / -2) + .5) * 100;\n\n thumbnail = (\n \n );\n } else if (['gifv', 'video'].indexOf(attachment.get('type')) !== -1) {\n const autoPlay = !isIOS() && autoPlayGif;\n const label = attachment.get('type') === 'video' ? : 'GIF';\n\n thumbnail = (\n
\n \n\n {label}\n
\n );\n }\n\n if (!visible) {\n icon = (\n \n \n \n );\n }\n\n return (\n
\n \n \n {visible && thumbnail}\n {!visible && icon}\n \n
\n );\n }\n\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { fetchAccount } from 'mastodon/actions/accounts';\nimport { expandAccountMediaTimeline } from '../../actions/timelines';\nimport LoadingIndicator from 'mastodon/components/loading_indicator';\nimport Column from '../ui/components/column';\nimport ColumnBackButton from 'mastodon/components/column_back_button';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { getAccountGallery } from 'mastodon/selectors';\nimport MediaItem from './components/media_item';\nimport HeaderContainer from '../account_timeline/containers/header_container';\nimport { ScrollContainer } from 'react-router-scroll-4';\nimport LoadMore from 'mastodon/components/load_more';\nimport MissingIndicator from 'mastodon/components/missing_indicator';\nimport { openModal } from 'mastodon/actions/modal';\n\nconst mapStateToProps = (state, props) => ({\n isAccount: !!state.getIn(['accounts', props.params.accountId]),\n attachments: getAccountGallery(state, props.params.accountId),\n isLoading: state.getIn(['timelines', `account:${props.params.accountId}:media`, 'isLoading']),\n hasMore: state.getIn(['timelines', `account:${props.params.accountId}:media`, 'hasMore']),\n});\n\nclass LoadMoreMedia extends ImmutablePureComponent {\n\n static propTypes = {\n shouldUpdateScroll: PropTypes.func,\n maxId: PropTypes.string,\n onLoadMore: PropTypes.func.isRequired,\n };\n\n handleLoadMore = () => {\n this.props.onLoadMore(this.props.maxId);\n }\n\n render () {\n return (\n \n );\n }\n\n}\n\nexport default @connect(mapStateToProps)\nclass AccountGallery extends ImmutablePureComponent {\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n attachments: ImmutablePropTypes.list.isRequired,\n isLoading: PropTypes.bool,\n hasMore: PropTypes.bool,\n isAccount: PropTypes.bool,\n multiColumn: PropTypes.bool,\n };\n\n state = {\n width: 323,\n };\n\n componentDidMount () {\n this.props.dispatch(fetchAccount(this.props.params.accountId));\n this.props.dispatch(expandAccountMediaTimeline(this.props.params.accountId));\n }\n\n componentWillReceiveProps (nextProps) {\n if (nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) {\n this.props.dispatch(fetchAccount(nextProps.params.accountId));\n this.props.dispatch(expandAccountMediaTimeline(this.props.params.accountId));\n }\n }\n\n handleScrollToBottom = () => {\n if (this.props.hasMore) {\n this.handleLoadMore(this.props.attachments.size > 0 ? this.props.attachments.last().getIn(['status', 'id']) : undefined);\n }\n }\n\n handleScroll = e => {\n const { scrollTop, scrollHeight, clientHeight } = e.target;\n const offset = scrollHeight - scrollTop - clientHeight;\n\n if (150 > offset && !this.props.isLoading) {\n this.handleScrollToBottom();\n }\n }\n\n handleLoadMore = maxId => {\n this.props.dispatch(expandAccountMediaTimeline(this.props.params.accountId, { maxId }));\n };\n\n handleLoadOlder = e => {\n e.preventDefault();\n this.handleScrollToBottom();\n }\n\n handleOpenMedia = attachment => {\n if (attachment.get('type') === 'video') {\n this.props.dispatch(openModal('VIDEO', { media: attachment, status: attachment.get('status') }));\n } else if (attachment.get('type') === 'audio') {\n this.props.dispatch(openModal('AUDIO', { media: attachment, status: attachment.get('status') }));\n } else {\n const media = attachment.getIn(['status', 'media_attachments']);\n const index = media.findIndex(x => x.get('id') === attachment.get('id'));\n\n this.props.dispatch(openModal('MEDIA', { media, index, status: attachment.get('status') }));\n }\n }\n\n handleRef = c => {\n if (c) {\n this.setState({ width: c.offsetWidth });\n }\n }\n\n render () {\n const { attachments, shouldUpdateScroll, isLoading, hasMore, isAccount, multiColumn } = this.props;\n const { width } = this.state;\n\n if (!isAccount) {\n return (\n \n \n \n );\n }\n\n if (!attachments && isLoading) {\n return (\n \n \n \n );\n }\n\n let loadOlder = null;\n\n if (hasMore && !(isLoading && attachments.size === 0)) {\n loadOlder = ;\n }\n\n return (\n \n \n\n \n
\n \n\n
\n {attachments.map((attachment, index) => attachment === null ? (\n 0 ? attachments.getIn(index - 1, 'id') : null} onLoadMore={this.handleLoadMore} />\n ) : (\n \n ))}\n\n {loadOlder}\n
\n\n {isLoading && attachments.size === 0 && (\n
\n \n
\n )}\n
\n
\n
\n );\n }\n\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/features/account_timeline.js b/priv/static/packs/features/account_timeline.js deleted file mode 100644 index 792bf05f0..000000000 --- a/priv/static/packs/features/account_timeline.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{819:function(t,a,e){"use strict";e.r(a),e.d(a,"default",(function(){return _}));var s,o,i,c=e(0),n=e(2),p=(e(9),e(6),e(8)),r=e(1),u=(e(3),e(15)),d=e(16),l=e.n(d),h=e(5),b=e.n(h),m=e(26),j=e(36),I=e(1065),O=e(306),f=e(757),w=e(1084),v=e(764),g=e(4),R=e(21),y=e(7),M=e(291),L=e(1057);var S=Object(g.List)(),_=Object(u.connect)((function(t,a){var e=a.params.accountId,s=a.withReplies,o=void 0!==s&&s,i=o?e+":with_replies":e;return{isAccount:!!t.getIn(["accounts",e]),statusIds:t.getIn(["timelines","account:"+i,"items"],S),featuredStatusIds:o?Object(g.List)():t.getIn(["timelines","account:"+e+":pinned","items"],S),isLoading:t.getIn(["timelines","account:"+i,"isLoading"]),hasMore:t.getIn(["timelines","account:"+i,"hasMore"]),blockedBy:t.getIn(["relationships",e,"blocked_by"],!1)}}))((i=o=function(t){Object(p.a)(e,t);var a;a=e;function e(){for(var a,e=arguments.length,s=new Array(e),o=0;o {\n const path = withReplies ? `${accountId}:with_replies` : accountId;\n\n return {\n isAccount: !!state.getIn(['accounts', accountId]),\n statusIds: state.getIn(['timelines', `account:${path}`, 'items'], emptyList),\n featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], emptyList),\n isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']),\n hasMore: state.getIn(['timelines', `account:${path}`, 'hasMore']),\n blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false),\n };\n};\n\nexport default @connect(mapStateToProps)\nclass AccountTimeline extends ImmutablePureComponent {\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n statusIds: ImmutablePropTypes.list,\n featuredStatusIds: ImmutablePropTypes.list,\n isLoading: PropTypes.bool,\n hasMore: PropTypes.bool,\n withReplies: PropTypes.bool,\n blockedBy: PropTypes.bool,\n isAccount: PropTypes.bool,\n multiColumn: PropTypes.bool,\n };\n\n componentWillMount () {\n const { params: { accountId }, withReplies } = this.props;\n\n this.props.dispatch(fetchAccount(accountId));\n this.props.dispatch(fetchAccountIdentityProofs(accountId));\n\n if (!withReplies) {\n this.props.dispatch(expandAccountFeaturedTimeline(accountId));\n }\n\n this.props.dispatch(expandAccountTimeline(accountId, { withReplies }));\n }\n\n componentWillReceiveProps (nextProps) {\n if ((nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) || nextProps.withReplies !== this.props.withReplies) {\n this.props.dispatch(fetchAccount(nextProps.params.accountId));\n this.props.dispatch(fetchAccountIdentityProofs(nextProps.params.accountId));\n\n if (!nextProps.withReplies) {\n this.props.dispatch(expandAccountFeaturedTimeline(nextProps.params.accountId));\n }\n\n this.props.dispatch(expandAccountTimeline(nextProps.params.accountId, { withReplies: nextProps.params.withReplies }));\n }\n }\n\n handleLoadMore = maxId => {\n this.props.dispatch(expandAccountTimeline(this.props.params.accountId, { maxId, withReplies: this.props.withReplies }));\n }\n\n render () {\n const { shouldUpdateScroll, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, isAccount, multiColumn } = this.props;\n\n if (!isAccount) {\n return (\n \n \n \n \n );\n }\n\n if (!statusIds && isLoading) {\n return (\n \n \n \n );\n }\n\n const emptyMessage = blockedBy ? : ;\n\n return (\n \n \n\n }\n alwaysPrepend\n scrollKey='account_timeline'\n statusIds={blockedBy ? emptyList : statusIds}\n featuredStatusIds={featuredStatusIds}\n isLoading={isLoading}\n hasMore={hasMore}\n onLoadMore={this.handleLoadMore}\n shouldUpdateScroll={shouldUpdateScroll}\n emptyMessage={emptyMessage}\n bindToDocument={!multiColumn}\n timelineId='account'\n />\n \n );\n }\n\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/features/blocks.js b/priv/static/packs/features/blocks.js deleted file mode 100644 index b41df4ce4..000000000 --- a/priv/static/packs/features/blocks.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{827:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return q}));var o,n,c,s=a(0),r=a(2),i=(a(9),a(6),a(8)),u=a(1),l=a(65),d=a.n(l),b=(a(3),a(15)),p=a(7),h=a(21),f=a(16),j=a.n(f),O=a(5),m=a.n(O),g=a(306),M=a(757),v=a(763),k=a(1053),y=a(230),w=a(1049);var I=Object(p.f)({heading:{id:"column.blocks",defaultMessage:"Blocked users"}}),q=Object(b.connect)((function(e){return{accountIds:e.getIn(["user_lists","blocks","items"]),hasMore:!!e.getIn(["user_lists","blocks","next"])}}))(o=Object(p.g)((c=n=function(e){Object(i.a)(a,e);var t;t=a;function a(){for(var t,a=arguments.length,o=new Array(a),n=0;n ({\n accountIds: state.getIn(['user_lists', 'blocks', 'items']),\n hasMore: !!state.getIn(['user_lists', 'blocks', 'next']),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Blocks extends ImmutablePureComponent {\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n accountIds: ImmutablePropTypes.list,\n hasMore: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n multiColumn: PropTypes.bool,\n };\n\n componentWillMount () {\n this.props.dispatch(fetchBlocks());\n }\n\n handleLoadMore = debounce(() => {\n this.props.dispatch(expandBlocks());\n }, 300, { leading: true });\n\n render () {\n const { intl, accountIds, shouldUpdateScroll, hasMore, multiColumn } = this.props;\n\n if (!accountIds) {\n return (\n \n \n \n );\n }\n\n const emptyMessage = ;\n\n return (\n \n \n \n {accountIds.map(id =>\n ,\n )}\n \n \n );\n }\n\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/features/bookmarked_statuses.js b/priv/static/packs/features/bookmarked_statuses.js deleted file mode 100644 index 15ff22331..000000000 --- a/priv/static/packs/features/bookmarked_statuses.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{826:function(t,e,o){"use strict";o.r(e),o.d(e,"default",(function(){return C}));var a,n,s,i=o(0),c=o(2),r=(o(9),o(6),o(8)),l=o(1),d=o(65),u=o.n(d),b=o(3),h=o.n(b),p=o(15),m=o(5),k=o.n(m),O=o(16),f=o.n(O),j=o(209),g=o(757),M=o(759),v=o(253),I=o(1065),w=o(7),y=o(21);var L=Object(w.f)({heading:{id:"column.bookmarks",defaultMessage:"Bookmarks"}}),C=Object(p.connect)((function(t){return{statusIds:t.getIn(["status_lists","bookmarks","items"]),isLoading:t.getIn(["status_lists","bookmarks","isLoading"],!0),hasMore:!!t.getIn(["status_lists","bookmarks","next"])}}))(a=Object(w.g)((s=n=function(t){Object(r.a)(o,t);var e;e=o;function o(){for(var e,o=arguments.length,a=new Array(o),n=0;n ({\n statusIds: state.getIn(['status_lists', 'bookmarks', 'items']),\n isLoading: state.getIn(['status_lists', 'bookmarks', 'isLoading'], true),\n hasMore: !!state.getIn(['status_lists', 'bookmarks', 'next']),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Bookmarks extends ImmutablePureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n statusIds: ImmutablePropTypes.list.isRequired,\n intl: PropTypes.object.isRequired,\n columnId: PropTypes.string,\n multiColumn: PropTypes.bool,\n hasMore: PropTypes.bool,\n isLoading: PropTypes.bool,\n };\n\n componentWillMount () {\n this.props.dispatch(fetchBookmarkedStatuses());\n }\n\n handlePin = () => {\n const { columnId, dispatch } = this.props;\n\n if (columnId) {\n dispatch(removeColumn(columnId));\n } else {\n dispatch(addColumn('BOOKMARKS', {}));\n }\n }\n\n handleMove = (dir) => {\n const { columnId, dispatch } = this.props;\n dispatch(moveColumn(columnId, dir));\n }\n\n handleHeaderClick = () => {\n this.column.scrollTop();\n }\n\n setRef = c => {\n this.column = c;\n }\n\n handleLoadMore = debounce(() => {\n this.props.dispatch(expandBookmarkedStatuses());\n }, 300, { leading: true })\n\n render () {\n const { intl, shouldUpdateScroll, statusIds, columnId, multiColumn, hasMore, isLoading } = this.props;\n const pinned = !!columnId;\n\n const emptyMessage = ;\n\n return (\n \n \n\n \n \n );\n }\n\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/features/community_timeline.js b/priv/static/packs/features/community_timeline.js deleted file mode 100644 index 69d215446..000000000 --- a/priv/static/packs/features/community_timeline.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{861:function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return U}));var o,i,c,a=n(0),l=n(2),d=(n(9),n(6),n(8)),r=n(1),s=n(3),u=n.n(s),m=n(15),p=n(7),h=n(5),b=n.n(h),f=n(1063),y=n(762),j=n(759),O=n(36),M=n(253),g=n(1172),v=n(74),I=Object(m.connect)((function(e,t){var n=t.columnId,o=e.getIn(["settings","columns"]),i=o.findIndex((function(e){return e.get("uuid")===n}));return{settings:n&&i>=0?o.get(i).get("params"):e.getIn(["settings","community"])}}),(function(e,t){var n=t.columnId;return{onChange:function(t,o){e(n?Object(M.f)(n,t,o):Object(v.c)(["community"].concat(t),o))}}}))(g.a),C=n(766);var w=Object(p.f)({title:{id:"column.community",defaultMessage:"Local timeline"}}),U=Object(m.connect)((function(e,t){var n=t.columnId,o=n,i=e.getIn(["settings","columns"]),c=i.findIndex((function(e){return e.get("uuid")===o})),a=n&&c>=0?i.get(c).getIn(["params","other","onlyMedia"]):e.getIn(["settings","community","other","onlyMedia"]),l=e.getIn(["timelines","community"+(a?":media":"")]);return{hasUnread:!!l&&l.get("unread")>0,onlyMedia:a}}))(o=Object(p.g)((c=i=function(e){Object(d.a)(n,e);var t;t=n;function n(){for(var t,n=arguments.length,o=new Array(n),i=0;i {\n const uuid = columnId;\n const columns = state.getIn(['settings', 'columns']);\n const index = columns.findIndex(c => c.get('uuid') === uuid);\n\n return {\n settings: (uuid && index >= 0) ? columns.get(index).get('params') : state.getIn(['settings', 'community']),\n };\n};\n\nconst mapDispatchToProps = (dispatch, { columnId }) => {\n return {\n onChange (key, checked) {\n if (columnId) {\n dispatch(changeColumnParams(columnId, key, checked));\n } else {\n dispatch(changeSetting(['community', ...key], checked));\n }\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport PropTypes from 'prop-types';\nimport StatusListContainer from '../ui/containers/status_list_container';\nimport Column from '../../components/column';\nimport ColumnHeader from '../../components/column_header';\nimport { expandCommunityTimeline } from '../../actions/timelines';\nimport { addColumn, removeColumn, moveColumn } from '../../actions/columns';\nimport ColumnSettingsContainer from './containers/column_settings_container';\nimport { connectCommunityStream } from '../../actions/streaming';\n\nconst messages = defineMessages({\n title: { id: 'column.community', defaultMessage: 'Local timeline' },\n});\n\nconst mapStateToProps = (state, { columnId }) => {\n const uuid = columnId;\n const columns = state.getIn(['settings', 'columns']);\n const index = columns.findIndex(c => c.get('uuid') === uuid);\n const onlyMedia = (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'community', 'other', 'onlyMedia']);\n const timelineState = state.getIn(['timelines', `community${onlyMedia ? ':media' : ''}`]);\n\n return {\n hasUnread: !!timelineState && timelineState.get('unread') > 0,\n onlyMedia,\n };\n};\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass CommunityTimeline extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static defaultProps = {\n onlyMedia: false,\n };\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n shouldUpdateScroll: PropTypes.func,\n columnId: PropTypes.string,\n intl: PropTypes.object.isRequired,\n hasUnread: PropTypes.bool,\n multiColumn: PropTypes.bool,\n onlyMedia: PropTypes.bool,\n };\n\n handlePin = () => {\n const { columnId, dispatch, onlyMedia } = this.props;\n\n if (columnId) {\n dispatch(removeColumn(columnId));\n } else {\n dispatch(addColumn('COMMUNITY', { other: { onlyMedia } }));\n }\n }\n\n handleMove = (dir) => {\n const { columnId, dispatch } = this.props;\n dispatch(moveColumn(columnId, dir));\n }\n\n handleHeaderClick = () => {\n this.column.scrollTop();\n }\n\n componentDidMount () {\n const { dispatch, onlyMedia } = this.props;\n\n dispatch(expandCommunityTimeline({ onlyMedia }));\n this.disconnect = dispatch(connectCommunityStream({ onlyMedia }));\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.onlyMedia !== this.props.onlyMedia) {\n const { dispatch, onlyMedia } = this.props;\n\n this.disconnect();\n dispatch(expandCommunityTimeline({ onlyMedia }));\n this.disconnect = dispatch(connectCommunityStream({ onlyMedia }));\n }\n }\n\n componentWillUnmount () {\n if (this.disconnect) {\n this.disconnect();\n this.disconnect = null;\n }\n }\n\n setRef = c => {\n this.column = c;\n }\n\n handleLoadMore = maxId => {\n const { dispatch, onlyMedia } = this.props;\n\n dispatch(expandCommunityTimeline({ maxId, onlyMedia }));\n }\n\n render () {\n const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn, onlyMedia } = this.props;\n const pinned = !!columnId;\n\n return (\n \n \n \n \n\n }\n shouldUpdateScroll={shouldUpdateScroll}\n bindToDocument={!multiColumn}\n />\n \n );\n }\n\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/priv/static/packs/features/compose.js b/priv/static/packs/features/compose.js deleted file mode 100644 index fc3398284..000000000 --- a/priv/static/packs/features/compose.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{404:function(e,t,o){"use strict";(function(e){o.d(t,"a",(function(){return u}));var a=o(0),n=(o(9),o(6),o(8)),s=o(3),i=o.n(s),c=o(83),r=o.n(c);var l=e.env.CDN_HOST||"",u=function(e){Object(n.a)(o,e);var t;t=o;function o(){return e.apply(this,arguments)||this}return o.prototype.render=function(){var e,t=this.props.emoji;if(t.custom)e=t.imageUrl;else{var o=r.a[t.native]||r.a[t.native.replace(/\uFE0F$/,"")];if(!o)return null;e=l+"/emoji/"+o.filename+".svg"}return(Object(a.a)("div",{className:"autosuggest-emoji"},void 0,Object(a.a)("img",{className:"emojione",src:e,alt:t.native||t.colons}),t.colons))},o}(i.a.PureComponent)}).call(this,o(50))},588:function(e,t,o){"use strict";var a,n,s,i=o(15),c=o(0),r=o(2),l=o(9),u=o(6),p=o(8),d=o(1),g=o(3),b=o.n(g),f=o(320),m=o(110),h=o(16),O=o.n(h),v=o(5),j=o.n(v),y=o(23),_=o(210),C=o(115),S=o(53),M=o(122),k=o(7),w=o(21),x=o(222),T=o(282);var R=Object(k.f)({cancel:{id:"reply_indicator.cancel",defaultMessage:"Cancel"}}),N=Object(k.g)((s=n=function(e){Object(p.a)(o,e);var t;t=o;function o(){for(var t,o=arguments.length,a=new Array(o),n=0;n0&&Object(c.a)(T.a,{compact:!0,media:t.get("media_attachments")}))},o}(w.a),Object(d.a)(n,"contextTypes",{router:j.a.object}),Object(d.a)(n,"propTypes",{status:O.a.map,onCancel:j.a.func.isRequired,intl:j.a.object.isRequired}),a=s))||a,D=Object(i.connect)((function(){var e=Object(_.f)();return function(t){return{status:e(t,{id:t.getIn(["compose","in_reply_to"])})}}}),(function(e){return{onCancel:function(){e(Object(y.M)())}}}))(N);var I=function(e){Object(p.a)(o,e);var t;t=o;function o(){return e.apply(this,arguments)||this}return o.prototype.render=function(){var e=this.props.account;return(Object(c.a)("div",{className:"autosuggest-account",title:e.get("acct")},void 0,Object(c.a)("div",{className:"autosuggest-account-icon"},void 0,Object(c.a)(C.a,{account:e,size:18})),Object(c.a)(M.a,{account:e})))},o}(w.a);Object(d.a)(I,"propTypes",{account:O.a.map.isRequired});var P=Object(i.connect)((function(){var e=Object(_.d)();return function(t,o){var a=o.id;return{account:e(t,a)}}}))(I),F=o(404),q=o(421);var A=function(e){Object(p.a)(o,e);var t;t=o;function o(){return e.apply(this,arguments)||this}return o.prototype.render=function(){var e=this.props.tag,t=e.history&&Object(q.a)(e.history.reduce((function(e,t){return e+1*t.uses}),0));return Object(c.a)("div",{className:"autosuggest-hashtag"},void 0,Object(c.a)("div",{className:"autosuggest-hashtag__name"},void 0,"#",Object(c.a)("strong",{},void 0,e.name)),void 0!==e.history&&Object(c.a)("div",{className:"autosuggest-hashtag__uses"},void 0,Object(c.a)(k.b,{id:"autosuggest_hashtag.per_week",defaultMessage:"{count} per week",values:{count:t}})))},o}(b.a.PureComponent),E=o(151),K=o(14),U=o.n(K);var W=function(e,t){var o,a=e.slice(0,t).search(/\S+$/),n=e.slice(t).search(/\s/);return!(o=n<0?e.slice(a):e.slice(a,n+t))||o.trim().length<3||-1===["@",":","#"].indexOf(o[0])?[null,null]:(o=o.trim().toLowerCase()).length>0?[a+1,o]:[null,null]},L=function(e){Object(p.a)(o,e);var t;t=o;function o(){for(var t,o=arguments.length,a=new Array(o),n=0;n0&&!c&&(e.preventDefault(),t.setState({selectedSuggestion:Math.min(i+1,a.size-1)}));break;case"ArrowUp":a.size>0&&!c&&(e.preventDefault(),t.setState({selectedSuggestion:Math.max(i-1,0)}));break;case"Enter":case"Tab":null!==t.state.lastToken&&a.size>0&&!c&&(e.preventDefault(),e.stopPropagation(),t.props.onSuggestionSelected(t.state.tokenStart,t.state.lastToken,a.get(i)))}!e.defaultPrevented&&t.props.onKeyDown&&t.props.onKeyDown(e)}})),Object(d.a)(Object(r.a)(t),"onBlur",(function(){t.setState({suggestionsHidden:!0,focused:!1})})),Object(d.a)(Object(r.a)(t),"onFocus",(function(e){t.setState({focused:!0}),t.props.onFocus&&t.props.onFocus(e)})),Object(d.a)(Object(r.a)(t),"onSuggestionClick",(function(e){var o=t.props.suggestions.get(e.currentTarget.getAttribute("data-index"));e.preventDefault(),t.props.onSuggestionSelected(t.state.tokenStart,t.state.lastToken,o),t.textarea.focus()})),Object(d.a)(Object(r.a)(t),"setTextarea",(function(e){t.textarea=e})),Object(d.a)(Object(r.a)(t),"onPaste",(function(e){e.clipboardData&&1===e.clipboardData.files.length&&(t.props.onPaste(e.clipboardData.files),e.preventDefault())})),Object(d.a)(Object(r.a)(t),"renderSuggestion",(function(e,o){var a,n,s=t.state.selectedSuggestion;return"emoji"===e.type?(a=Object(c.a)(F.a,{emoji:e}),n=e.id):"hashtag"===e.type?(a=Object(c.a)(A,{tag:e}),n=e.name):"account"===e.type&&(a=Object(c.a)(P,{id:e.id}),n=e.id),Object(c.a)("div",{role:"button",tabIndex:"0","data-index":o,className:U()("autosuggest-textarea__suggestions__item",{selected:o===s}),onMouseDown:t.onSuggestionClick},n,a)})),t}var a=o.prototype;return a.componentWillReceiveProps=function(e){e.suggestions!==this.props.suggestions&&e.suggestions.size>0&&this.state.suggestionsHidden&&this.state.focused&&this.setState({suggestionsHidden:!1})},a.render=function(){var e=this.props,t=e.value,o=e.suggestions,a=e.disabled,n=e.placeholder,s=e.onKeyUp,i=e.autoFocus,r=e.children,l=this.state.suggestionsHidden,u={direction:"ltr"};return Object(x.a)(t)&&(u.direction="rtl"),[Object(c.a)("div",{className:"compose-form__autosuggest-wrapper"},"autosuggest-wrapper",Object(c.a)("div",{className:"autosuggest-textarea"},void 0,Object(c.a)("label",{},void 0,Object(c.a)("span",{style:{display:"none"}},void 0,n),Object(c.a)(E.a,{inputRef:this.setTextarea,className:"autosuggest-textarea__textarea",disabled:a,placeholder:n,autoFocus:i,value:t,onChange:this.onChange,onKeyDown:this.onKeyDown,onKeyUp:s,onFocus:this.onFocus,onBlur:this.onBlur,onPaste:this.onPaste,style:u,"aria-autocomplete":"list"}))),r),Object(c.a)("div",{className:"autosuggest-textarea__suggestions-wrapper"},"suggestions-wrapper",Object(c.a)("div",{className:"autosuggest-textarea__suggestions "+(l||o.isEmpty()?"":"autosuggest-textarea__suggestions--visible")},void 0,o.map(this.renderSuggestion)))]},o}(w.a);Object(d.a)(L,"propTypes",{value:j.a.string,suggestions:O.a.list,disabled:j.a.bool,placeholder:j.a.string,onSuggestionSelected:j.a.func.isRequired,onSuggestionsClearRequested:j.a.func.isRequired,onSuggestionsFetchRequested:j.a.func.isRequired,onChange:j.a.func.isRequired,onKeyUp:j.a.func,onKeyDown:j.a.func,onPaste:j.a.func.isRequired,autoFocus:j.a.bool}),Object(d.a)(L,"defaultProps",{autoFocus:!0});var H=o(4);var z,B=function(e,t,o){var a,n=e.slice(0,t).search(/\S+$/),s=e.slice(t).search(/\s/);return!(a=s<0?e.slice(n):e.slice(n,s+t))||a.trim().length<3||-1===o.indexOf(a[0])?[null,null]:(a=a.trim().toLowerCase()).length>0?[n+1,a]:[null,null]},G=function(e){Object(p.a)(o,e);var t;t=o;function o(){for(var t,o=arguments.length,a=new Array(o),n=0;n0&&!c&&(e.preventDefault(),t.setState({selectedSuggestion:Math.min(i+1,a.size-1)}));break;case"ArrowUp":a.size>0&&!c&&(e.preventDefault(),t.setState({selectedSuggestion:Math.max(i-1,0)}));break;case"Enter":case"Tab":null!==t.state.lastToken&&a.size>0&&!c&&(e.preventDefault(),e.stopPropagation(),t.props.onSuggestionSelected(t.state.tokenStart,t.state.lastToken,a.get(i)))}!e.defaultPrevented&&t.props.onKeyDown&&t.props.onKeyDown(e)}})),Object(d.a)(Object(r.a)(t),"onBlur",(function(){t.setState({suggestionsHidden:!0,focused:!1})})),Object(d.a)(Object(r.a)(t),"onFocus",(function(){t.setState({focused:!0})})),Object(d.a)(Object(r.a)(t),"onSuggestionClick",(function(e){var o=t.props.suggestions.get(e.currentTarget.getAttribute("data-index"));e.preventDefault(),t.props.onSuggestionSelected(t.state.tokenStart,t.state.lastToken,o),t.input.focus()})),Object(d.a)(Object(r.a)(t),"setInput",(function(e){t.input=e})),Object(d.a)(Object(r.a)(t),"renderSuggestion",(function(e,o){var a,n,s=t.state.selectedSuggestion;return"emoji"===e.type?(a=Object(c.a)(F.a,{emoji:e}),n=e.id):"hashtag"===e.type?(a=Object(c.a)(A,{tag:e}),n=e.name):"account"===e.type&&(a=Object(c.a)(P,{id:e.id}),n=e.id),Object(c.a)("div",{role:"button",tabIndex:"0","data-index":o,className:U()("autosuggest-textarea__suggestions__item",{selected:o===s}),onMouseDown:t.onSuggestionClick},n,a)})),t}var a=o.prototype;return a.componentWillReceiveProps=function(e){e.suggestions!==this.props.suggestions&&e.suggestions.size>0&&this.state.suggestionsHidden&&this.state.focused&&this.setState({suggestionsHidden:!1})},a.render=function(){var e=this.props,t=e.value,o=e.suggestions,a=e.disabled,n=e.placeholder,s=e.onKeyUp,i=e.autoFocus,r=e.className,l=e.id,u=e.maxLength,p=this.state.suggestionsHidden,d={direction:"ltr"};return Object(x.a)(t)&&(d.direction="rtl"),Object(c.a)("div",{className:"autosuggest-input"},void 0,Object(c.a)("label",{},void 0,Object(c.a)("span",{style:{display:"none"}},void 0,n),b.a.createElement("input",{type:"text",ref:this.setInput,disabled:a,placeholder:n,autoFocus:i,value:t,onChange:this.onChange,onKeyDown:this.onKeyDown,onKeyUp:s,onFocus:this.onFocus,onBlur:this.onBlur,style:d,"aria-autocomplete":"list",id:l,className:r,maxLength:u})),Object(c.a)("div",{className:"autosuggest-textarea__suggestions "+(p||o.isEmpty()?"":"autosuggest-textarea__suggestions--visible")},void 0,o.map(this.renderSuggestion)))},o}(w.a);Object(d.a)(G,"propTypes",{value:j.a.string,suggestions:O.a.list,disabled:j.a.bool,placeholder:j.a.string,onSuggestionSelected:j.a.func.isRequired,onSuggestionsClearRequested:j.a.func.isRequired,onSuggestionsFetchRequested:j.a.func.isRequired,onChange:j.a.func.isRequired,onKeyUp:j.a.func,onKeyDown:j.a.func,autoFocus:j.a.bool,className:j.a.string,id:j.a.string,searchTokens:j.a.arrayOf(j.a.string),maxLength:j.a.number}),Object(d.a)(G,"defaultProps",{autoFocus:!0,searchTokens:Object(H.List)(["@",":","#"])});var V,Y,X,J=Object(k.f)({add_poll:{id:"poll_button.add_poll",defaultMessage:"Add a poll"},remove_poll:{id:"poll_button.remove_poll",defaultMessage:"Remove poll"}}),Z={height:null,lineHeight:"27px"},$=Object(k.g)(z=function(e){Object(p.a)(o,e);var t;t=o;function o(){for(var t,o=arguments.length,a=new Array(o),n=0;n0,active:null!==e.getIn(["compose","poll"])}}),(function(e){return{onClick:function(){e((function(t,o){o().getIn(["compose","poll"])?e(Object(y.eb)()):e(Object(y.K)())}))}}}))($);var ee=Object(k.f)({upload:{id:"upload_button.label",defaultMessage:"Add media ({formats})"}}),te={height:null,lineHeight:"27px"},oe=Object(i.connect)((function(){return function(e){return{acceptContentTypes:e.getIn(["media_attachments","accept_content_types"])}}}))(V=Object(k.g)((X=Y=function(e){Object(p.a)(o,e);var t;t=o;function o(){for(var t,o=arguments.length,a=new Array(o),n=0;n0&&t.props.onSelectFile(e.target.files)})),Object(d.a)(Object(r.a)(t),"handleClick",(function(){t.fileElement.click()})),Object(d.a)(Object(r.a)(t),"setRef",(function(e){t.fileElement=e})),t}return o.prototype.render=function(){var e=this.props,t=e.intl,o=e.resetFileKey,a=e.unavailable,n=e.disabled;e.acceptContentTypes;return a?null:Object(c.a)("div",{className:"compose-form__upload-button"},void 0,Object(c.a)(S.a,{icon:"paperclip",title:t.formatMessage(ee.upload,{formats:"JPEG, PNG, GIF, WebM, MP4, MOV, OGG, WAV, MP3, FLAC"}),disabled:n,onClick:this.handleClick,className:"compose-form__upload-button-icon",size:18,inverted:!0,style:te}),Object(c.a)("label",{},void 0,Object(c.a)("span",{style:{display:"none"}},void 0,t.formatMessage(ee.upload,{formats:"JPEG, PNG, GIF, WebM, MP4, MOV, OGG, WAV, MP3, FLAC"})),b.a.createElement("input",{key:o,ref:this.setRef,type:"file",multiple:!0,onChange:this.handleChange,disabled:n,style:{display:"none"}})))},o}(w.a),Object(d.a)(Y,"propTypes",{disabled:j.a.bool,unavailable:j.a.bool,onSelectFile:j.a.func.isRequired,style:j.a.object,resetFileKey:j.a.number,acceptContentTypes:O.a.listOf(j.a.string).isRequired,intl:j.a.object.isRequired}),V=X))||V)||V,ae=Object(i.connect)((function(e){return{disabled:e.getIn(["compose","is_uploading"])||e.getIn(["compose","media_attachments"]).size+e.getIn(["compose","pending_media_attachments"])>3||e.getIn(["compose","media_attachments"]).some((function(e){return["video","audio"].includes(e.get("type"))})),unavailable:null!==e.getIn(["compose","poll"]),resetFileKey:e.getIn(["compose","resetFileKey"])}}),(function(e){return{onSelectFile:function(t){e(Object(y.mb)(t))}}}))(oe);var ne,se={height:null,lineHeight:"27px",width:"23.14285722px"},ie=function(e){Object(p.a)(o,e);var t;t=o;function o(){for(var t,o=arguments.length,a=new Array(o),n=0;n