ghost-portal/packages/ui-app/src/util/shouldDisplaySection.ts
Luke Schoen 0748a27426 fix: Fixes #94 by adding missing filter for extrinsics timestamp (#165)
* refactor: Rename InputStorage key to method to be consistent with InputExtrinsic

* fix: Add filter to both section and method that considers isHidden prop

* refactor: Move into meaningful private functions

* fix: Fix linting errors

* test: Add Unit Tests to check shouldDisplaySection function

* fix: Remove unnecessary import

* restore file naming

* refactor: Move shouldDisplaySection into utils folder

* refactor: Move more common functionality into util

* remove unused isObject

* restore by removing unnecessary types. propose private type for storage

* fix: Remove explicit passing through the type for storage since its default

* feat: Use shared logic for showing section and methods in InputRpc

* refactor: Move shared types into util folder with section visibility type

* fix: type is public or private

* WIP: methods[name] TypeScript error

Element implicitly has an 'any' type because type '{}' has no index signature

* fix: Fix TSLint errors using jacos solution
2018-08-03 13:46:17 +02:00

35 lines
990 B
TypeScript

// Copyright 2017-2018 @polkadot/ui-app authors & contributors
// This software may be modified and distributed under the terms
// of the ISC license. See the LICENSE file for details.
import { Section, SectionItems } from '@polkadot/params/types';
import { SectionVisibilityAll } from '../util/types';
import isUndefined from '@polkadot/util/is/undefined';
import isNull from '@polkadot/util/is/null';
function anyMethodToDisplay <T> (methods: SectionItems<T>) {
if (isUndefined(methods) || isNull(methods)) {
return false;
}
return Object
.keys(methods)
.filter((name) => {
const { isDeprecated, isHidden } = methods[name];
return !isDeprecated && !isHidden;
})
.length !== 0;
}
export function shouldDisplaySection<T> (section: Section<T>, type: SectionVisibilityAll) {
if (isUndefined(section)) {
return false;
}
const methods = section[type];
return !section.isDeprecated && !section.isHidden && anyMethodToDisplay(methods);
}