* 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
35 lines
990 B
TypeScript
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);
|
|
}
|