fix: show error message correctly (#2705)

This commit is contained in:
Dexter Edwards 2023-01-24 11:29:42 +00:00 committed by GitHub
parent e883ef5c5e
commit 01e7b8caee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 10 deletions

View File

@ -5,12 +5,14 @@ interface StakeFailureProps {
nodeName: string; nodeName: string;
isDialogVisible: boolean; isDialogVisible: boolean;
toggleDialog: () => void; toggleDialog: () => void;
error: Error | null;
} }
export const StakeFailure = ({ export const StakeFailure = ({
nodeName, nodeName,
isDialogVisible, isDialogVisible,
toggleDialog, toggleDialog,
error,
}: StakeFailureProps) => { }: StakeFailureProps) => {
const { t } = useTranslation(); const { t } = useTranslation();
return ( return (
@ -20,11 +22,15 @@ export const StakeFailure = ({
open={isDialogVisible} open={isDialogVisible}
onChange={toggleDialog} onChange={toggleDialog}
> >
{error ? (
<p>{error.message}</p>
) : (
<p> <p>
{t('stakeFailed', { {t('stakeFailed', {
node: nodeName, node: nodeName,
})} })}
</p> </p>
)}
</Dialog> </Dialog>
); );
}; };

View File

@ -13,6 +13,7 @@ interface StakeFormTxStatusesProps {
removeType: RemoveType; removeType: RemoveType;
isDialogVisible: boolean; isDialogVisible: boolean;
toggleDialog: () => void; toggleDialog: () => void;
error: Error | null;
} }
export const StakingFormTxStatuses = ({ export const StakingFormTxStatuses = ({
@ -23,6 +24,7 @@ export const StakingFormTxStatuses = ({
removeType, removeType,
isDialogVisible, isDialogVisible,
toggleDialog, toggleDialog,
error,
}: StakeFormTxStatusesProps) => { }: StakeFormTxStatusesProps) => {
switch (formState) { switch (formState) {
case FormState.Requested: case FormState.Requested:
@ -59,6 +61,7 @@ export const StakingFormTxStatuses = ({
nodeName={nodeName} nodeName={nodeName}
isDialogVisible={isDialogVisible} isDialogVisible={isDialogVisible}
toggleDialog={toggleDialog} toggleDialog={toggleDialog}
error={error}
/> />
); );
default: default:

View File

@ -70,6 +70,7 @@ export const StakingForm = ({
const { appState } = useAppState(); const { appState } = useAppState();
const { sendTx } = useVegaWallet(); const { sendTx } = useVegaWallet();
const [formState, setFormState] = React.useState(FormState.Default); const [formState, setFormState] = React.useState(FormState.Default);
const [error, setError] = useState<Error | null>(null);
const [isDialogVisible, setIsDialogVisible] = useState(false); const [isDialogVisible, setIsDialogVisible] = useState(false);
const { t } = useTranslation(); const { t } = useTranslation();
const [action, setAction] = React.useState<StakeAction>( const [action, setAction] = React.useState<StakeAction>(
@ -135,12 +136,15 @@ export const StakingForm = ({
// await success via poll // await success via poll
} catch (err) { } catch (err) {
if (err instanceof Error) {
setError(err);
}
setFormState(FormState.Failure); setFormState(FormState.Failure);
Sentry.captureException(err); Sentry.captureException(err);
} }
} }
const [delegationSearch, { data, error }] = usePartyDelegationsLazyQuery({ const [delegationSearch, { data }] = usePartyDelegationsLazyQuery({
variables: { variables: {
partyId: pubKey, partyId: pubKey,
}, },
@ -170,10 +174,6 @@ export const StakingForm = ({
clearInterval(interval); clearInterval(interval);
} }
} }
if (error) {
Sentry.captureException(error);
}
}, 1000); }, 1000);
} }
@ -306,6 +306,7 @@ export const StakingForm = ({
removeType={removeType} removeType={removeType}
isDialogVisible={isDialogVisible} isDialogVisible={isDialogVisible}
toggleDialog={toggleDialog} toggleDialog={toggleDialog}
error={error}
/> />
</> </>
); );