mirror of
https://github.com/pezkuwichain/pezkuwi-apps.git
synced 2026-05-01 08:57:59 +00:00
feat: initial Pezkuwi Apps rebrand from polkadot-apps
Rebranded terminology: - Polkadot → Pezkuwi - Kusama → Dicle - Westend → Zagros - Rococo → PezkuwiChain - Substrate → Bizinikiwi - parachain → teyrchain Custom logos with Kurdistan brand colors (#e6007a → #86e62a): - bizinikiwi-hexagon.svg - sora-bizinikiwi.svg - hezscanner.svg - heztreasury.svg - pezkuwiscan.svg - pezkuwistats.svg - pezkuwiassembly.svg - pezkuwiholic.svg
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
// Copyright 2017-2025 @pezkuwi/react-components authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { AccountId, AccountIndex, Address } from '@pezkuwi/types/interfaces';
|
||||
import type { BN } from '@pezkuwi/util';
|
||||
|
||||
import React from 'react';
|
||||
|
||||
import { BalanceFree, FormatBalance } from '@pezkuwi/react-query';
|
||||
import { BN_ZERO } from '@pezkuwi/util';
|
||||
|
||||
export interface RenderProps {
|
||||
className?: string;
|
||||
label?: React.ReactNode;
|
||||
value?: BN | BN[];
|
||||
}
|
||||
|
||||
export interface Props {
|
||||
balance?: BN | BN[];
|
||||
className?: string;
|
||||
label?: React.ReactNode;
|
||||
params?: AccountId | AccountIndex | Address | string | Uint8Array | null;
|
||||
withLabel?: boolean;
|
||||
}
|
||||
|
||||
export function renderProvided ({ className = '', label, value }: RenderProps): React.ReactNode {
|
||||
let others: undefined | React.ReactNode;
|
||||
|
||||
if (Array.isArray(value)) {
|
||||
const totals = value.filter((_, index): boolean => index !== 0);
|
||||
const total = totals.reduce((total, value): BN => total.add(value), BN_ZERO).gtn(0);
|
||||
|
||||
if (total) {
|
||||
others = totals.map((balance, index): React.ReactNode =>
|
||||
<FormatBalance
|
||||
key={index}
|
||||
value={balance}
|
||||
/>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<FormatBalance
|
||||
className={`${className} ui--Balance`}
|
||||
label={label}
|
||||
value={Array.isArray(value) ? value[0] : value}
|
||||
>
|
||||
{others && (
|
||||
<span> (+{others})</span>
|
||||
)}
|
||||
</FormatBalance>
|
||||
);
|
||||
}
|
||||
|
||||
function BalanceDisplay (props: Props): React.ReactElement<Props> | null {
|
||||
const { balance, className = '', label, params } = props;
|
||||
|
||||
if (!params) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return balance
|
||||
? <>{renderProvided({ className, label, value: balance })}</>
|
||||
: (
|
||||
<BalanceFree
|
||||
className={`${className} ui--Balance`}
|
||||
label={label}
|
||||
params={params}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export default React.memo(BalanceDisplay);
|
||||
Reference in New Issue
Block a user