Skip to content

Commit 80872c9

Browse files
committed
refactor: remove partial withdrawal menu button
1 parent 3b35169 commit 80872c9

5 files changed

Lines changed: 31 additions & 39 deletions

File tree

features/validators/const.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { WEI_PER_ETHER } from 'consts/tx';
22

33
export enum VALIDATOR_MODALS {
4-
partialWithdrawal = 'partialWithdrawal',
5-
fullWithdrawal = 'fullWithdrawal',
4+
withdrawalToVault = 'withdrawalToVault',
65
topUpValidator = 'topUpValidator',
76
}
87

features/validators/modals/withdraw-to-vault-modal/components/withdrawal-type/withdrawal-type.tsx

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,31 @@
11
import { type FC, useCallback } from 'react';
22

3-
import {
4-
type ModalData,
5-
useValidatorModal,
6-
} from 'features/validators/contexts';
7-
import { VALIDATOR_MODALS } from 'features/validators/const';
8-
93
import { SwitcherItemStyled, SwitcherStyled } from './styles';
104

5+
export type WithdrawalVariant = 'partial' | 'full';
6+
117
type WithdrawalTypeProps = {
12-
modalData: ModalData;
8+
value: WithdrawalVariant;
9+
onChange: (value: WithdrawalVariant) => void;
1310
};
1411

15-
export const WithdrawalType: FC<WithdrawalTypeProps> = ({ modalData }) => {
16-
const { openModal } = useValidatorModal();
17-
const { currentModal } = modalData;
18-
const isPartial = VALIDATOR_MODALS.partialWithdrawal === currentModal;
19-
const isFull = VALIDATOR_MODALS.fullWithdrawal === currentModal;
12+
export const WithdrawalType: FC<WithdrawalTypeProps> = ({
13+
value,
14+
onChange,
15+
}) => {
16+
const isFull = value === 'full';
2017

2118
const openPartialWithdrawal = useCallback(() => {
22-
openModal({
23-
...modalData,
24-
currentModal: VALIDATOR_MODALS.partialWithdrawal,
25-
});
26-
}, [openModal, modalData]);
19+
onChange('partial');
20+
}, [onChange]);
2721

2822
const openFullWithdrawal = useCallback(() => {
29-
openModal({
30-
...modalData,
31-
currentModal: VALIDATOR_MODALS.fullWithdrawal,
32-
});
33-
}, [openModal, modalData]);
23+
onChange('full');
24+
}, [onChange]);
3425

3526
return (
3627
<SwitcherStyled>
37-
<SwitcherItemStyled active={isPartial} onClick={openPartialWithdrawal}>
28+
<SwitcherItemStyled active={!isFull} onClick={openPartialWithdrawal}>
3829
Partial withdrawal
3930
</SwitcherItemStyled>
4031
<SwitcherItemStyled active={isFull} onClick={openFullWithdrawal}>

features/validators/modals/withdraw-to-vault-modal/withdraw-to-vault-modal.tsx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { FC } from 'react';
1+
import { type FC, useState, useCallback } from 'react';
22
import { Modal, Text } from '@lidofinance/lido-ui';
33

44
import { vaultTexts } from 'modules/vaults';
@@ -25,29 +25,37 @@ export const WithdrawToVaultModal: FC<WithdrawToVaultModalProps> = ({
2525
modalData,
2626
onCloseModal,
2727
}) => {
28+
const [withdrawalType, setWithdrawalType] = useState<'partial' | 'full'>(
29+
'partial',
30+
);
31+
32+
const handleCloseModal = useCallback(() => {
33+
onCloseModal();
34+
setWithdrawalType('partial');
35+
}, [onCloseModal]);
36+
2837
if (!modalData) {
2938
return null;
3039
}
3140

3241
const { currentModal, pubKey, index, balance } = modalData;
42+
const isPartial = withdrawalType === 'partial';
3343
const availableToPartialWithdraw = bigIntMax(
3444
0n,
3545
balance - MIN_ACTIVATION_BALANCE,
3646
);
37-
const isPartial = VALIDATOR_MODALS.partialWithdrawal === currentModal;
38-
const isFull = VALIDATOR_MODALS.fullWithdrawal === currentModal;
3947

4048
return (
4149
<Modal
42-
open={isPartial || isFull}
43-
onClose={onCloseModal}
50+
open={VALIDATOR_MODALS.withdrawalToVault === currentModal}
51+
onClose={handleCloseModal}
4452
windowSize="md"
4553
title={title}
4654
>
4755
<ContentContainer>
4856
<Text size="xs">{description}</Text>
4957
<ValidatorInfo pubKey={pubKey} index={index} balance={balance} />
50-
<WithdrawalType modalData={modalData} />
58+
<WithdrawalType value={withdrawalType} onChange={setWithdrawalType} />
5159
<WithdrawToVaultModalForm
5260
isPartial={isPartial}
5361
availableToPartialWithdraw={availableToPartialWithdraw}

features/validators/shared/hooks/use-validator-menu-actions.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type ValidatorMenuActionItem = {
1212
modal: ValidatorsModalItem;
1313
};
1414

15-
const { topUpValidator, partialWithdrawal, withdrawToStVault } =
15+
const { topUpValidator, withdrawToStVault } =
1616
vaultTexts.actions.validators.table.menu;
1717

1818
export const useValidatorMenuActions = () => {
@@ -26,15 +26,10 @@ export const useValidatorMenuActions = () => {
2626
label: topUpValidator,
2727
modal: VALIDATOR_MODALS.topUpValidator,
2828
},
29-
{
30-
hasPermission: isAdmin || hasWithdrawalPermission,
31-
label: partialWithdrawal,
32-
modal: VALIDATOR_MODALS.partialWithdrawal,
33-
},
3429
{
3530
hasPermission: isAdmin || hasWithdrawalPermission,
3631
label: withdrawToStVault,
37-
modal: VALIDATOR_MODALS.fullWithdrawal,
32+
modal: VALIDATOR_MODALS.withdrawalToVault,
3833
},
3934
],
4035
[isAdmin, hasDepositorPermission, hasWithdrawalPermission],

modules/vaults/consts/texts.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,6 @@ export const vaultTexts = {
333333
'Failed to load validator data. Please try again later',
334334
},
335335
menu: {
336-
partialWithdrawal: 'Partial withdrawal',
337336
topUpValidator: 'Top up validator',
338337
withdrawToStVault: 'Withdraw to stVault',
339338
},

0 commit comments

Comments
 (0)