RemoveStatusService fleshed out, still doesn't send Salmon slaps though
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
export const TIMELINE_SET    = 'TIMELINE_SET';
 | 
			
		||||
export const TIMELINE_UPDATE = 'TIMELINE_UPDATE';
 | 
			
		||||
 | 
			
		||||
export const TIMELINE_DELETE = 'TIMELINE_DELETE';
 | 
			
		||||
 | 
			
		||||
export function setTimeline(timeline, statuses) {
 | 
			
		||||
  return {
 | 
			
		||||
@@ -17,3 +17,10 @@ export function updateTimeline(timeline, status) {
 | 
			
		||||
    status: status
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function deleteFromTimeline(id) {
 | 
			
		||||
  return {
 | 
			
		||||
    type: TIMELINE_DELETE,
 | 
			
		||||
    id: id
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
import { Provider }                    from 'react-redux';
 | 
			
		||||
import configureStore                  from '../store/configureStore';
 | 
			
		||||
import Frontend                        from '../components/frontend';
 | 
			
		||||
import { setTimeline, updateTimeline } from '../actions/timelines';
 | 
			
		||||
import { setAccessToken }              from '../actions/meta';
 | 
			
		||||
import PureRenderMixin                 from 'react-addons-pure-render-mixin';
 | 
			
		||||
import { Provider }                                         from 'react-redux';
 | 
			
		||||
import configureStore                                       from '../store/configureStore';
 | 
			
		||||
import Frontend                                             from '../components/frontend';
 | 
			
		||||
import { setTimeline, updateTimeline, deleteFromTimelines } from '../actions/timelines';
 | 
			
		||||
import { setAccessToken }                                   from '../actions/meta';
 | 
			
		||||
import PureRenderMixin                                      from 'react-addons-pure-render-mixin';
 | 
			
		||||
 | 
			
		||||
const store = configureStore();
 | 
			
		||||
 | 
			
		||||
@@ -32,7 +32,11 @@ const Root = React.createClass({
 | 
			
		||||
        disconnected: function() {},
 | 
			
		||||
 | 
			
		||||
        received: function(data) {
 | 
			
		||||
          return store.dispatch(updateTimeline(data.timeline, JSON.parse(data.message)));
 | 
			
		||||
          if (data.type === 'update') {
 | 
			
		||||
            return store.dispatch(updateTimeline(data.timeline, JSON.parse(data.message)));
 | 
			
		||||
          } else if (data.type === 'delete') {
 | 
			
		||||
            return store.dispatch(deleteFromTimelines(data.id));
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
import { TIMELINE_SET, TIMELINE_UPDATE }    from '../actions/timelines';
 | 
			
		||||
import { REBLOG_SUCCESS, FAVOURITE_SUCCESS } from '../actions/interactions';
 | 
			
		||||
import Immutable                            from 'immutable';
 | 
			
		||||
import { TIMELINE_SET, TIMELINE_UPDATE, TIMELINE_DELETE } from '../actions/timelines';
 | 
			
		||||
import { REBLOG_SUCCESS, FAVOURITE_SUCCESS }              from '../actions/interactions';
 | 
			
		||||
import Immutable                                          from 'immutable';
 | 
			
		||||
 | 
			
		||||
const initialState = Immutable.Map({
 | 
			
		||||
  home: Immutable.List(),
 | 
			
		||||
  mentions: Immutable.List(),
 | 
			
		||||
  home: Immutable.List([]),
 | 
			
		||||
  mentions: Immutable.List([]),
 | 
			
		||||
  statuses: Immutable.Map(),
 | 
			
		||||
  accounts: Immutable.Map()
 | 
			
		||||
});
 | 
			
		||||
@@ -44,12 +44,22 @@ function updateTimelineWithMaps(state, timeline, status) {
 | 
			
		||||
  return state;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
function deleteStatus(state, id) {
 | 
			
		||||
  ['home', 'mentions'].forEach(function (timeline) {
 | 
			
		||||
    state = state.update(timeline, list => list.filterNot(item => item === id));
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return state.deleteIn(['statuses', id]);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default function timelines(state = initialState, action) {
 | 
			
		||||
  switch(action.type) {
 | 
			
		||||
    case TIMELINE_SET:
 | 
			
		||||
      return timelineToMaps(state, action.timeline, Immutable.fromJS(action.statuses));
 | 
			
		||||
    case TIMELINE_UPDATE:
 | 
			
		||||
      return updateTimelineWithMaps(state, action.timeline,Immutable.fromJS(action.status));
 | 
			
		||||
      return updateTimelineWithMaps(state, action.timeline, Immutable.fromJS(action.status));
 | 
			
		||||
    case TIMELINE_DELETE:
 | 
			
		||||
      return deleteStatus(state, action.id);
 | 
			
		||||
    case REBLOG_SUCCESS:
 | 
			
		||||
    case FAVOURITE_SUCCESS:
 | 
			
		||||
      return statusToMaps(state, Immutable.fromJS(action.response));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user