ghost-portal/packages/app-staking/src/util.ts
Jaco Greeff 3b8a763a3e
Display heartbeats via state (#1806)
* Display heartbeats via state

* Bump deps with API support

* Update sigs

* More linting
2019-10-29 12:48:33 +01:00

31 lines
1.1 KiB
TypeScript

// Copyright 2017-2019 @polkadot/app-staking authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
import { AccountId } from '@polkadot/types/interfaces';
import { DerivedStakingOnlineStatus, DerivedHeartbeats } from '@polkadot/api-derive/types';
export function updateOnlineStatus (recentlyOnline: DerivedHeartbeats = {}): (sessionIds: AccountId[] | null, onlineStatus: DerivedStakingOnlineStatus) => DerivedStakingOnlineStatus {
return (sessionIds: AccountId[] | null, onlineStatus: DerivedStakingOnlineStatus): DerivedStakingOnlineStatus => {
if (!recentlyOnline || !sessionIds) {
return onlineStatus;
}
const available = Object.keys(recentlyOnline);
const sessionId = sessionIds.find((sessionId): boolean => available.includes(sessionId.toString()));
return {
...onlineStatus,
...(
sessionId
? {
online: {
isOnline: recentlyOnline[sessionId.toString()]
}
}
: {}
)
};
};
}