Skip to content

Commit

Permalink
Merge pull request #22 from IntersectMBO/Bugfix-(change-request)-#2378
Browse files Browse the repository at this point in the history
Bugfix (change request) #2378
  • Loading branch information
teske00 authored Nov 26, 2024
2 parents cc23127 + 7bc54d3 commit c8c8520
Show file tree
Hide file tree
Showing 8 changed files with 349 additions and 211 deletions.
2 changes: 1 addition & 1 deletion pdf-ui/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@intersect.mbo/pdf-ui",
"version": "0.4.1",
"version": "0.5.0",
"description": "Proposal discussion ui",
"main": "./src/index.js",
"exports": {
Expand Down
37 changes: 20 additions & 17 deletions pdf-ui/src/components/CreateGovernanceActionDialog/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,32 +29,31 @@ const CreateGovernanceActionDialog = ({ open = false, onClose = false }) => {
const [step, setStep] = useState(1);
const [proposalData, setProposalData] = useState({
proposal_links: [],
proposal_withdrawals: []
});


const [governanceActionTypes, setGovernanceActionTypes] = useState([]);
const [isContinueDisabled, setIsContinueDisabled] = useState(true);
const [showDraftSuccessfulModal, setShowDraftSuccessfulModal] =
useState(false);
const [showDraftSuccessfulModal, setShowDraftSuccessfulModal] = useState(false);
const [selectedDraftId, setSelectedDraftId] = useState(null);
const [errors, setErrors] = useState({
name: false,
abstract: false,
motivation: false,
rationale: false,
address: false,
amount: false,
// address: false,
// amount: false,
});
const [helperText, setHelperText] = useState({
name: '',
abstract: '',
motivation: '',
rationale: '',
address: ``,
amount: ``,
});

const [linksErrors, setLinksErrors] = useState({});

const [withdrawalsErrors, setWithdrawalsErrors ] = useState({});
const isSmallScreen = useMediaQuery((theme) =>
theme.breakpoints.down('sm')
);
Expand Down Expand Up @@ -101,23 +100,25 @@ const CreateGovernanceActionDialog = ({ open = false, onClose = false }) => {
)?.label;

if (selectedLabel === 'Treasury') {
if (
proposalData?.prop_receiving_address &&
!errors?.address &&
proposalData?.prop_amount &&
!errors?.amount
) {
setIsContinueDisabled(false);
} else {
setIsContinueDisabled(true);
if (proposalData?.proposal_withdravals) {
if (
proposalData?.proposal_withdravals?.some(
(proposal_withdraval) => !proposal_withdraval.prop_receiving_address || !proposal_withdraval.prop_amount
) ||
Object.values(withdrawalsErrors).some((error) => error.url)
) {
return setIsContinueDisabled(true);
} else {
setIsContinueDisabled(false);
}
}
} else {
setIsContinueDisabled(false);
}
} else {
setIsContinueDisabled(true);
}
}, [proposalData, errors, linksErrors]); // proposalData is a dependency
}, [proposalData, errors, linksErrors, withdrawalsErrors]); // proposalData is a dependency

const handleCreateProposal = async (isDraft = false) => {
setLoading(true);
Expand Down Expand Up @@ -262,6 +263,8 @@ const CreateGovernanceActionDialog = ({ open = false, onClose = false }) => {
setHelperText={setHelperText}
linksErrors={linksErrors}
setLinksErrors={setLinksErrors}
withdrawalsErrors={withdrawalsErrors}
setWithdrawalsErrors={setWithdrawalsErrors}
/>
)}

Expand Down
193 changes: 105 additions & 88 deletions pdf-ui/src/components/CreationGoveranceAction/Step2.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
Typography,
} from '@mui/material';
import { useEffect, useState } from 'react';
import { LinkManager } from '.';
import { LinkManager, WithdrawalsManager } from '.';
import { useAppContext } from '../../context/context';
import { getGovernanceActionTypes } from '../../lib/api';
import {
Expand All @@ -32,6 +32,8 @@ const Step2 = ({
setHelperText,
linksErrors,
setLinksErrors,
withdrawalsErrors,
setWithdrawalsErrors,
}) => {
const titleMaxLength = 80;
const abstractMaxLength = 2500;
Expand All @@ -43,87 +45,87 @@ const Step2 = ({
)?.label || ''
);

const handleAddressChange = async (e) => {
const newAddress = e.target.value?.trim();
setProposalData((prev) => ({
...prev,
prop_receiving_address: newAddress,
}));

if (newAddress === '') {
setErrors((prev) => ({
...prev,
address: false,
}));
setHelperText((prev) => ({
...prev,
address: ``,
}));
return;
}

const validationResult = await isRewardAddress(newAddress);
if (validationResult === true) {
setErrors((prev) => ({
...prev,
address: false,
}));
setHelperText((prev) => ({
...prev,
address: ``,
}));
} else {
setErrors((prev) => ({
...prev,
address: true,
}));
setHelperText((prev) => ({
...prev,
address: validationResult,
}));
}
};

const handleAmountChange = (e) => {
const newAmount = e.target.value?.trim();
setProposalData((prev) => ({
...prev,
prop_amount: newAmount,
}));

if (newAmount === '') {
setErrors((prev) => ({
...prev,
amount: false,
}));
setHelperText((prev) => ({
...prev,
amount: ``,
}));
return;
}

const validationResult = numberValidation(newAmount);
if (validationResult === true) {
setErrors((prev) => ({
...prev,
amount: false,
}));
setHelperText((prev) => ({
...prev,
amount: ``,
}));
} else {
setErrors((prev) => ({
...prev,
amount: true,
}));
setHelperText((prev) => ({
...prev,
amount: validationResult,
}));
}
};
// const handleAddressChange = async (e) => {
// const newAddress = e.target.value?.trim();
// setProposalData((prev) => ({
// ...prev,
// prop_receiving_address: newAddress,
// }));

// if (newAddress === '') {
// setErrors((prev) => ({
// ...prev,
// address: false,
// }));
// setHelperText((prev) => ({
// ...prev,
// address: ``,
// }));
// return;
// }

// const validationResult = await isRewardAddress(newAddress);
// if (validationResult === true) {
// setErrors((prev) => ({
// ...prev,
// address: false,
// }));
// setHelperText((prev) => ({
// ...prev,
// address: ``,
// }));
// } else {
// setErrors((prev) => ({
// ...prev,
// address: true,
// }));
// setHelperText((prev) => ({
// ...prev,
// address: validationResult,
// }));
// }
// };

// const handleAmountChange = (e) => {
// const newAmount = e.target.value?.trim();
// setProposalData((prev) => ({
// ...prev,
// prop_amount: newAmount,
// }));

// if (newAmount === '') {
// setErrors((prev) => ({
// ...prev,
// amount: false,
// }));
// setHelperText((prev) => ({
// ...prev,
// amount: ``,
// }));
// return;
// }

// const validationResult = numberValidation(newAmount);
// if (validationResult === true) {
// setErrors((prev) => ({
// ...prev,
// amount: false,
// }));
// setHelperText((prev) => ({
// ...prev,
// amount: ``,
// }));
// } else {
// setErrors((prev) => ({
// ...prev,
// amount: true,
// }));
// setHelperText((prev) => ({
// ...prev,
// amount: validationResult,
// }));
// }
// };

const handleChange = (e) => {
const selectedValue = e.target.value;
Expand All @@ -134,8 +136,7 @@ const Step2 = ({
setProposalData((prev) => ({
...prev,
gov_action_type_id: selectedValue,
prop_receiving_address: null,
prop_amount: null,
proposal_withdrawals:[{ prop_receiving_address: null, prop_amount: null }]
}));

setSelectedGovActionName(selectedLabel);
Expand Down Expand Up @@ -449,7 +450,21 @@ const Step2 = ({

{selectedGovActionName === 'Treasury' ? (
<>
<TextField
<Box
sx={{
align: 'center',
textAlign: 'center',
mt: 2,
}}
>
<WithdrawalsManager
proposalData={proposalData}
setProposalData={setProposalData}
withdrawalsErrors={withdrawalsErrors}
setWithdrawalsErrors={setWithdrawalsErrors}
/>

{/* <TextField
margin='normal'
label='Receiving stake address'
variant='outlined'
Expand All @@ -458,7 +473,7 @@ const Step2 = ({
proposalData?.prop_receiving_address || ''
}
fullWidth
onChange={handleAddressChange}
// onChange={handleWithdrawalChange}
required
inputProps={{
'data-testid': 'receiving-address-input',
Expand All @@ -479,7 +494,7 @@ const Step2 = ({
placeholder='e.g. 2000 ada'
value={proposalData?.prop_amount || ''}
fullWidth
onChange={handleAmountChange}
//onChange={handleWithdrawalChange}
required
inputProps={{
'data-testid': 'amount-input',
Expand All @@ -489,8 +504,10 @@ const Step2 = ({
FormHelperTextProps={{
'data-testid': 'amount-text-error',
}}
/>
/> */}
</Box>
</>

) : null}

<Box
Expand Down
Loading

0 comments on commit c8c8520

Please sign in to comment.