Perform doFetchModBlockedList in splash. #7671

Closed
Ruk33 wants to merge 1 commit from 7668-improve-startup-performance-while-fetching-comment-moderation-info into master
5 changed files with 58 additions and 59 deletions

View file

@ -30,7 +30,7 @@ import {
doSetActiveChannel, doSetActiveChannel,
doSetIncognito, doSetIncognito,
} from 'redux/actions/app'; } from 'redux/actions/app';
import { doFetchModBlockedList, doFetchCommentModAmIList } from 'redux/actions/comments'; import { doFetchCommentModAmIList } from 'redux/actions/comments';
import App from './view'; import App from './view';
const select = (state) => ({ const select = (state) => ({
@ -67,7 +67,6 @@ const perform = (dispatch) => ({
setReferrer: (referrer, doClaim) => dispatch(doUserSetReferrer(referrer, doClaim)), setReferrer: (referrer, doClaim) => dispatch(doUserSetReferrer(referrer, doClaim)),
setActiveChannelIfNotSet: () => dispatch(doSetActiveChannel()), setActiveChannelIfNotSet: () => dispatch(doSetActiveChannel()),
setIncognito: () => dispatch(doSetIncognito()), setIncognito: () => dispatch(doSetIncognito()),
fetchModBlockedList: () => dispatch(doFetchModBlockedList()),
resolveUris: (uris) => dispatch(doResolveUris(uris)), resolveUris: (uris) => dispatch(doResolveUris(uris)),
fetchModAmIList: () => dispatch(doFetchCommentModAmIList()), fetchModAmIList: () => dispatch(doFetchCommentModAmIList()),
}); });

View file

@ -73,7 +73,6 @@ type Props = {
subscriptions: Array<Subscription>, subscriptions: Array<Subscription>,
setActiveChannelIfNotSet: () => void, setActiveChannelIfNotSet: () => void,
setIncognito: (boolean) => void, setIncognito: (boolean) => void,
fetchModBlockedList: () => void,
resolveUris: (Array<string>) => void, resolveUris: (Array<string>) => void,
fetchModAmIList: () => void, fetchModAmIList: () => void,
isUpdateModalDisplayed: boolean, isUpdateModalDisplayed: boolean,
@ -108,7 +107,6 @@ function App(props: Props) {
activeChannelId, activeChannelId,
setActiveChannelIfNotSet, setActiveChannelIfNotSet,
setIncognito, setIncognito,
fetchModBlockedList,
resolveUris, resolveUris,
subscriptions, subscriptions,
fetchModAmIList, fetchModAmIList,
@ -233,7 +231,6 @@ function App(props: Props) {
} }
if (hasMyChannels) { if (hasMyChannels) {
fetchModBlockedList();
fetchModAmIList(); fetchModAmIList();
} }
}, [hasMyChannels, hasNoChannels, hasActiveChannelClaim, setActiveChannelIfNotSet, setIncognito]); }, [hasMyChannels, hasNoChannels, hasActiveChannelClaim, setActiveChannelIfNotSet, setIncognito]);

View file

@ -2,6 +2,7 @@ import * as MODALS from 'constants/modal_types';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { selectDaemonVersionMatched, selectModal, selectSplashAnimationEnabled } from 'redux/selectors/app'; import { selectDaemonVersionMatched, selectModal, selectSplashAnimationEnabled } from 'redux/selectors/app';
import { doCheckDaemonVersion, doOpenModal, doHideModal, doToggleSplashAnimation } from 'redux/actions/app'; import { doCheckDaemonVersion, doOpenModal, doHideModal, doToggleSplashAnimation } from 'redux/actions/app';
import { doFetchModBlockedList } from 'redux/actions/comments';
import { doClearDaemonSetting } from 'redux/actions/settings'; import { doClearDaemonSetting } from 'redux/actions/settings';
import * as DAEMON_SETTINGS from 'constants/daemon_settings'; import * as DAEMON_SETTINGS from 'constants/daemon_settings';
import { doToast } from 'redux/actions/notifications'; import { doToast } from 'redux/actions/notifications';
@ -21,6 +22,7 @@ const perform = (dispatch) => ({
toggleSplashAnimation: () => dispatch(doToggleSplashAnimation()), toggleSplashAnimation: () => dispatch(doToggleSplashAnimation()),
clearWalletServers: () => dispatch(doClearDaemonSetting(DAEMON_SETTINGS.LBRYUM_SERVERS)), clearWalletServers: () => dispatch(doClearDaemonSetting(DAEMON_SETTINGS.LBRYUM_SERVERS)),
doShowSnackBar: (message) => dispatch(doToast({ isError: true, message })), doShowSnackBar: (message) => dispatch(doToast({ isError: true, message })),
fetchModBlockedList: () => dispatch(doFetchModBlockedList()),
}); });
export default connect(select, perform)(SplashScreen); export default connect(select, perform)(SplashScreen);

View file

@ -31,6 +31,7 @@ type Props = {
toggleSplashAnimation: () => void, toggleSplashAnimation: () => void,
clearWalletServers: () => void, clearWalletServers: () => void,
doShowSnackBar: (string) => void, doShowSnackBar: (string) => void,
fetchModBlockedList: () => Promise<any>,
}; };
type State = { type State = {
@ -197,10 +198,14 @@ export default class SplashScreen extends React.PureComponent<Props, State> {
this.setState({ launchWithIncompatibleDaemon: true }, () => this.continueAppLaunch()); this.setState({ launchWithIncompatibleDaemon: true }, () => this.continueAppLaunch());
} }
continueAppLaunch() { continueAppLaunch = async () => {
const { daemonVersionMatched, onReadyToLaunch } = this.props; const { daemonVersionMatched, onReadyToLaunch } = this.props;
const { isRunning, launchWithIncompatibleDaemon } = this.state; const { isRunning, launchWithIncompatibleDaemon } = this.state;
try {
await this.props.fetchModBlockedList();
} catch (e) {}
if (daemonVersionMatched) { if (daemonVersionMatched) {
onReadyToLaunch(); onReadyToLaunch();
} else if (launchWithIncompatibleDaemon && isRunning) { } else if (launchWithIncompatibleDaemon && isRunning) {
@ -209,7 +214,7 @@ export default class SplashScreen extends React.PureComponent<Props, State> {
// If it isn't running, this function will be called after the daemon is started // If it isn't running, this function will be called after the daemon is started
onReadyToLaunch(); onReadyToLaunch();
} }
} };
timeout: ?TimeoutID; timeout: ?TimeoutID;

View file

@ -1186,11 +1186,7 @@ export function doFetchModBlockedList() {
const moderatorTimeoutMap = {}; const moderatorTimeoutMap = {};
const blockListsPerChannel = res.map((r) => r.value); const blockListsPerChannel = res.map((r) => r.value);
blockListsPerChannel blockListsPerChannel.forEach((channelBlockLists) => {
.sort((a, b) => {
return 1;
})
.forEach((channelBlockLists) => {
const storeList = (fetchedList, blockedList, timeoutMap, blockedByMap) => { const storeList = (fetchedList, blockedList, timeoutMap, blockedByMap) => {
if (fetchedList) { if (fetchedList) {
fetchedList.forEach((blockedChannel) => { fetchedList.forEach((blockedChannel) => {