pinnedHosts: actions
This commit is contained in:
parent
86d5bcb5d7
commit
a5460bb97e
|
@ -0,0 +1,24 @@
|
|||
import { getSettings, changeSetting } from 'soapbox/actions/settings';
|
||||
|
||||
const getPinnedPosts = state => {
|
||||
const settings = getSettings(state);
|
||||
return settings.getIn(['remote_timeline', 'pinnedHosts']);
|
||||
};
|
||||
|
||||
export function pinHost(host) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const pinnedHosts = getPinnedPosts(state);
|
||||
|
||||
return dispatch(changeSetting(['remote_timeline', 'pinnedHosts'], pinnedHosts.add(host)));
|
||||
};
|
||||
}
|
||||
|
||||
export function unpinHost(host) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const pinnedHosts = getPinnedPosts(state);
|
||||
|
||||
return dispatch(changeSetting(['remote_timeline', 'pinnedHosts'], pinnedHosts.delete(host)));
|
||||
};
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
import { debounce } from 'lodash';
|
||||
import { showAlertForError } from './alerts';
|
||||
import { patchMe } from 'soapbox/actions/me';
|
||||
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
||||
import { Map as ImmutableMap, List as ImmutableList, OrderedSet as ImmutableOrderedSet } from 'immutable';
|
||||
import { isLoggedIn } from 'soapbox/utils/auth';
|
||||
import uuid from '../uuid';
|
||||
import { createSelector } from 'reselect';
|
||||
|
@ -143,6 +143,10 @@ export const defaultSettings = ImmutableMap({
|
|||
ImmutableMap({ id: 'HOME', uuid: uuid(), params: {} }),
|
||||
ImmutableMap({ id: 'NOTIFICATIONS', uuid: uuid(), params: {} }),
|
||||
]),
|
||||
|
||||
remote_timeline: ImmutableMap({
|
||||
pinnedHosts: ImmutableOrderedSet(),
|
||||
}),
|
||||
});
|
||||
|
||||
export const getSettings = createSelector([
|
||||
|
|
Loading…
Reference in New Issue