diff --git a/CHANGELOG.md b/CHANGELOG.md index 037d02cb..45822b01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,9 @@ Changes: - Add option to not ask password for 15 minutes (when signing transactions) - Derived accounts uses the parent genesisHash by default (attaches to same chain) - Make import from seed, QR & JSON options available on first-start +- Adjust popup width, allowing full display of e.g. addresses +- Handling signing rejections (any order) transparently +- Small overall UI and use adjustments - Latest upstream polkadot-js dependencies diff --git a/packages/extension-ui/src/util/nextDerivationPath.ts b/packages/extension-ui/src/util/nextDerivationPath.ts index 72d51f5c..1d6820bb 100644 --- a/packages/extension-ui/src/util/nextDerivationPath.ts +++ b/packages/extension-ui/src/util/nextDerivationPath.ts @@ -4,12 +4,8 @@ import { AccountJson } from '@polkadot/extension-base/background/types'; -function childrenCount (accounts: AccountJson[], parentAddress: string): number { - return accounts.filter((account) => account.parentAddress === parentAddress).length; -} - -export const nextDerivationPath = (accounts: AccountJson[], parentAddress: string): string => { - const siblingsCount = childrenCount(accounts, parentAddress); +export function nextDerivationPath (accounts: AccountJson[], parentAddress: string): string { + const siblingsCount = accounts.filter((account) => account.parentAddress === parentAddress).length; return `//${siblingsCount}`; -}; +} diff --git a/packages/extension-ui/src/util/validators.ts b/packages/extension-ui/src/util/validators.ts index c86d020d..e4a57a95 100644 --- a/packages/extension-ui/src/util/validators.ts +++ b/packages/extension-ui/src/util/validators.ts @@ -6,7 +6,8 @@ interface InputError { errorDescription: string; } -export type Result = { error: InputError } | { ok: T } +export type Result = { error: InputError } | { ok: T }; + export const Result = { error: (errorDescription: string): Result => ({ error: { errorDescription } }), isError (value: Result): value is ({ error: InputError }) { @@ -20,31 +21,32 @@ export const Result = { export declare type Validator = (value: T) => Result | Promise>; -export const allOf = (...validators: Validator[]): Validator => async (value: T): Promise> => { - for (const validator of validators) { - const validationResult = await validator(value); +export function allOf (...validators: Validator[]): Validator { + return async (value: T): Promise> => { + for (const validator of validators) { + const validationResult = await validator(value); - if (Result.isError(validationResult)) { - return validationResult; - } - } - - return Result.ok(value); -}; - -export const isNotShorterThan = (minLength: number, errorText: string): Validator => - (value: string): Result => { - if (value.length < minLength) { - return Result.error(errorText); + if (Result.isError(validationResult)) { + return validationResult; + } } return Result.ok(value); }; +} -export const isSameAs = (expectedValue: T, errorText: string): Validator => (value: T): Result => { - if (value !== expectedValue) { - return Result.error(errorText); - } +export function isNotShorterThan (minLength: number, errorText: string): Validator { + return (value: string): Result => { + return value.length < minLength + ? Result.error(errorText) + : Result.ok(value); + }; +} - return Result.ok(value); -}; +export function isSameAs (expectedValue: T, errorText: string): Validator { + return (value: T): Result => { + return value !== expectedValue + ? Result.error(errorText) + : Result.ok(value); + }; +}