Don't spin when rewards have just been claimed (#3799)
* Don't spin when rewards have just been claimed * No pre-emptive spinner stop
This commit is contained in:
parent
b1f9b04bb4
commit
c4737e77ce
@ -14,7 +14,7 @@ import useCall from './useCall';
|
||||
import useIsMountedRef from './useIsMountedRef';
|
||||
import { useOwnStashIds } from './useOwnStashes';
|
||||
|
||||
interface OwnRewards {
|
||||
interface State {
|
||||
allRewards?: Record<string, DeriveStakerReward[]> | null;
|
||||
isLoadingRewards: boolean;
|
||||
rewardCount: number;
|
||||
@ -30,7 +30,7 @@ interface Filtered {
|
||||
validatorEras: ValidatorWithEras[];
|
||||
}
|
||||
|
||||
function getRewards ([[stashIds], available]: [[string[]], DeriveStakerReward[][]]): OwnRewards {
|
||||
function getRewards ([[stashIds], available]: [[string[]], DeriveStakerReward[][]]): State {
|
||||
const allRewards: Record<string, DeriveStakerReward[]> = {};
|
||||
|
||||
stashIds.forEach((stashId, index): void => {
|
||||
@ -44,7 +44,7 @@ function getRewards ([[stashIds], available]: [[string[]], DeriveStakerReward[][
|
||||
};
|
||||
}
|
||||
|
||||
function getValRewards (validatorEras: ValidatorWithEras[], erasPoints: DeriveEraPoints[], erasRewards: DeriveEraRewards[]): OwnRewards {
|
||||
function getValRewards (validatorEras: ValidatorWithEras[], erasPoints: DeriveEraPoints[], erasRewards: DeriveEraRewards[]): State {
|
||||
const allRewards: Record<string, DeriveStakerReward[]> = {};
|
||||
|
||||
validatorEras.forEach(({ eras, stashId }): void => {
|
||||
@ -87,13 +87,13 @@ function getValRewards (validatorEras: ValidatorWithEras[], erasPoints: DeriveEr
|
||||
};
|
||||
}
|
||||
|
||||
export default function useOwnEraRewards (maxEras?: number, ownValidators?: StakerState[]): OwnRewards {
|
||||
export default function useOwnEraRewards (maxEras?: number, ownValidators?: StakerState[]): State {
|
||||
const { api } = useApi();
|
||||
const mountedRef = useIsMountedRef();
|
||||
const stashIds = useOwnStashIds();
|
||||
const allEras = useCall<EraIndex[]>(api.derive.staking?.erasHistoric);
|
||||
const [{ filteredEras, validatorEras }, setFiltered] = useState<Filtered>({ filteredEras: [], validatorEras: [] });
|
||||
const [state, setState] = useState<OwnRewards>({ isLoadingRewards: true, rewardCount: 0 });
|
||||
const [state, setState] = useState<State>({ isLoadingRewards: true, rewardCount: 0 });
|
||||
const stakerRewards = useCall<[[string[]], DeriveStakerReward[][]]>(!ownValidators?.length && !!filteredEras.length && stashIds && api.derive.staking?.stakerRewardsMultiEras, [stashIds, filteredEras], { withParams: true });
|
||||
const erasPoints = useCall<DeriveEraPoints[]>(!!validatorEras.length && !!filteredEras.length && api.derive.staking._erasPoints, [filteredEras, false]);
|
||||
const erasRewards = useCall<DeriveEraRewards[]>(!!validatorEras.length && !!filteredEras.length && api.derive.staking._erasRewards, [filteredEras, false]);
|
||||
@ -117,6 +117,15 @@ export default function useOwnEraRewards (maxEras?: number, ownValidators?: Stak
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// When we have just claimed, we have filtered eras, but no validator eras - set accordingly
|
||||
if (filteredEras.length && !validatorEras.length) {
|
||||
setState({
|
||||
allRewards: {},
|
||||
isLoadingRewards: false,
|
||||
rewardCount: 0
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
setFiltered({ filteredEras, validatorEras });
|
||||
|
||||
Loading…
Reference in New Issue
Block a user