Skip to content

Commit e21a526

Browse files
committed
SHIELDING_THRESHOLD UI
1 parent 5bdc24c commit e21a526

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

packages/web-wallet/src/components/Button/Button.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import cn from 'classnames';
33

44
type ButtonVariant = 'primary' | 'secondary';
55

6-
interface ButtonProps {
6+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
77
onClick: () => void;
88
label: string;
99
classNames?: string;
@@ -17,10 +17,12 @@ function Button({
1717
classNames = '',
1818
variant = 'primary',
1919
icon,
20+
...rest
2021
}: ButtonProps) {
2122
const buttonClasses = cn(
2223
'min-w-[228px] px-6 py-3 rounded-3xl text-base font-medium leading-normal',
23-
'cursor-pointer transition-all hover:transition-all',
24+
'transition-all hover:transition-all',
25+
{ 'cursor-not-allowed': rest.disabled, 'cursor-pointer': !rest.disabled },
2426
{
2527
'bg-[#0e0e0e] text-white border hover:bg-buttonBlackGradientHover':
2628
variant === 'primary',
@@ -31,7 +33,7 @@ function Button({
3133
);
3234

3335
return (
34-
<button onClick={onClick} className={buttonClasses}>
36+
<button onClick={onClick} className={buttonClasses} {...rest}>
3537
<div className="flex items-center justify-center">
3638
{icon && <span className="mr-2 flex items-center">{icon}</span>}
3739
<span>{label}</span>

packages/web-wallet/src/pages/ShieldBalance/ShieldBalance.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useState } from 'react';
1+
import React, { useEffect, useMemo, useState } from 'react';
22
import { ZcashYellowPNG } from '../../assets';
33
import PageHeading from '../../components/PageHeading/PageHeading';
44
import useBalance from '../../hooks/useBalance';
@@ -45,6 +45,10 @@ export function ShieldBalance(): React.JSX.Element {
4545
handlePcztShieldTransaction(1, addresses.unifiedAddress, unshieldedBalance.toString());
4646
}
4747

48+
const isMinimalShieldAmount = useMemo(()=>{
49+
return unshieldedBalance > 100000;
50+
},[unshieldedBalance])
51+
4852
return (
4953
<div className="flex flex-col w-full">
5054
<PageHeading title="Shield Balance">
@@ -88,11 +92,17 @@ export function ShieldBalance(): React.JSX.Element {
8892
</div>
8993
</div>
9094
<div className="self-stretch pt-6 flex-col justify-center items-center gap-3 flex">
91-
<div className="justify-start items-start inline-flex">
95+
<div className="flex flex-col items-center justify-center">
9296
<Button
9397
onClick={handleShieldBalance}
9498
label={'Shield balance'}
99+
disabled={!isMinimalShieldAmount}
95100
/>
101+
{!isMinimalShieldAmount && (
102+
<div className="text-red-500 text-sm mt-2">
103+
The minimum shielding balance required is 0.001 ZEC.
104+
</div>
105+
)}
96106
</div>
97107
</div>
98108
</div>

0 commit comments

Comments
 (0)