lbry-desktop/ui/redux/actions/blocked.js

62 lines
1.7 KiB
JavaScript
Raw Normal View History

// @flow
import { Lbryio } from 'lbryinc';
import * as ACTIONS from 'constants/action_types';
import { selectPrefsReady } from 'redux/selectors/sync';
import { doAlertWaitingForSync } from 'redux/actions/app';
2021-06-11 22:49:18 +02:00
import { doToast } from 'redux/actions/notifications';
2021-06-11 22:49:18 +02:00
export function doToggleMuteChannel(uri: string, showLink: boolean, unmute: boolean = false) {
return async (dispatch: Dispatch, getState: GetState) => {
const state = getState();
const ready = selectPrefsReady(state);
2021-06-11 22:49:18 +02:00
if (!ready) {
return dispatch(doAlertWaitingForSync());
}
2021-06-11 22:49:18 +02:00
dispatch({
type: ACTIONS.TOGGLE_BLOCK_CHANNEL,
data: {
uri,
},
});
dispatch(doToast({
message: __(!unmute ? 'Channel muted. You will not see them again.' : 'Channel unmuted!'),
linkText: __(showLink ? 'See All' : ''),
linkTarget: '/settings/block_and_mute',
}));
};
}
export function doChannelMute(uri: string, showLink: boolean = true) {
return (dispatch: Dispatch) => {
return dispatch(doToggleMuteChannel(uri, showLink));
};
}
export function doChannelUnmute(uri: string, showLink: boolean = true) {
return (dispatch: Dispatch) => {
return dispatch(doToggleMuteChannel(uri, showLink, true));
};
}
export function doFetchGeoBlockedList() {
return (dispatch: Dispatch) => {
dispatch({ type: ACTIONS.FETCH_GBL_STARTED });
const success = (response: GBL) => {
dispatch({
type: ACTIONS.FETCH_GBL_DONE,
data: response,
});
};
const failure = (error) => {
dispatch({ type: ACTIONS.FETCH_GBL_FAILED, data: error });
};
Lbryio.call('geo', 'blocked_list').then(success, failure);
};
}