diff options
Diffstat (limited to 'app/assets/javascripts/components/features/ui/containers/status_list_container.jsx')
-rw-r--r-- | app/assets/javascripts/components/features/ui/containers/status_list_container.jsx | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/app/assets/javascripts/components/features/ui/containers/status_list_container.jsx b/app/assets/javascripts/components/features/ui/containers/status_list_container.jsx deleted file mode 100644 index 1599000b5..000000000 --- a/app/assets/javascripts/components/features/ui/containers/status_list_container.jsx +++ /dev/null @@ -1,74 +0,0 @@ -import { connect } from 'react-redux'; -import StatusList from '../../../components/status_list'; -import { expandTimeline, scrollTopTimeline } from '../../../actions/timelines'; -import Immutable from 'immutable'; -import { createSelector } from 'reselect'; -import { debounce } from 'react-decoration'; - -const makeGetStatusIds = () => createSelector([ - (state, { type }) => state.getIn(['settings', type], Immutable.Map()), - (state, { type }) => state.getIn(['timelines', type, 'items'], Immutable.List()), - (state) => state.get('statuses'), - (state) => state.getIn(['meta', 'me']) -], (columnSettings, statusIds, statuses, me) => statusIds.filter(id => { - const statusForId = statuses.get(id); - let showStatus = true; - - if (columnSettings.getIn(['shows', 'reblog']) === false) { - showStatus = showStatus && statusForId.get('reblog') === null; - } - - if (columnSettings.getIn(['shows', 'reply']) === false) { - showStatus = showStatus && (statusForId.get('in_reply_to_id') === null || statusForId.get('in_reply_to_account_id') === me); - } - - if (columnSettings.getIn(['regex', 'body'], '').trim().length > 0) { - try { - if (showStatus) { - const regex = new RegExp(columnSettings.getIn(['regex', 'body']).trim(), 'i'); - showStatus = !regex.test(statusForId.get('reblog') ? statuses.getIn([statusForId.get('reblog'), 'unescaped_content']) : statusForId.get('unescaped_content')); - } - } catch(e) { - // Bad regex, don't affect filters - } - } - - return showStatus; -})); - -const makeMapStateToProps = () => { - const getStatusIds = makeGetStatusIds(); - - const mapStateToProps = (state, props) => ({ - scrollKey: props.scrollKey, - shouldUpdateScroll: props.shouldUpdateScroll, - statusIds: getStatusIds(state, props), - isLoading: state.getIn(['timelines', props.type, 'isLoading'], true), - isUnread: state.getIn(['timelines', props.type, 'unread']) > 0, - hasMore: !!state.getIn(['timelines', props.type, 'next']) - }); - - return mapStateToProps; -}; - -const mapDispatchToProps = (dispatch, { type, id }) => ({ - - @debounce(300, true) - onScrollToBottom () { - dispatch(scrollTopTimeline(type, false)); - dispatch(expandTimeline(type, id)); - }, - - @debounce(100) - onScrollToTop () { - dispatch(scrollTopTimeline(type, true)); - }, - - @debounce(100) - onScroll () { - dispatch(scrollTopTimeline(type, false)); - } - -}); - -export default connect(makeMapStateToProps, mapDispatchToProps)(StatusList); |