Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions dapp/src/components/dialogs/ConnectToAddressDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@ export function ConnectToAddressDialog({ name, setOpen }: ConnectToAddressDialog
const showAddressWarning = !!addressName && addressName !== name && editIsPublicName;
const errorMessage =
editTargetAddress && !isValidAddressOrEmpty ? 'Not a valid IOTA address' : undefined;
const txError = updateNameError || updateNameTransaction?.effects.status.error;

return (
<Dialog open onOpenChange={setOpen}>
<DialogContent containerId="overlay-portal-container" position={DialogPosition.Right}>
Expand Down Expand Up @@ -318,13 +320,13 @@ export function ConnectToAddressDialog({ name, setOpen }: ConnectToAddressDialog
)}
</div>
<div className="flex flex-col w-full gap-y-md">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex w-full flex-row gap-x-xs">
Expand Down
6 changes: 4 additions & 2 deletions dapp/src/components/dialogs/CreateSubnameDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,8 @@ export function CreateSubnameDialog({ name, setOpen }: CreateSubnameProps) {

const cleanName = normalizeIotaName(name, 'at', { truncateLongParts: true });

const txError = updateNameError || updateNameTransaction?.effects.status.error;

return (
<Dialog open onOpenChange={setOpen}>
<DialogContent containerId="overlay-portal-container" position={DialogPosition.Right}>
Expand Down Expand Up @@ -261,13 +263,13 @@ export function CreateSubnameDialog({ name, setOpen }: CreateSubnameProps) {
</div>
</div>
<div className="flex flex-col w-full gap-y-md">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex w-full flex-row gap-x-xs">
Expand Down
5 changes: 3 additions & 2 deletions dapp/src/components/dialogs/DeleteNameDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ export function DeleteNameDialog({ nft, setOpen }: DeleteNameDialogProps) {

return () => clearInterval(id);
}, [deleteActionNotAllowed]);
const txError = updateNameError || updateNameTransaction?.effects.status.error;

return (
<Dialog open onOpenChange={setOpen}>
Expand Down Expand Up @@ -143,13 +144,13 @@ export function DeleteNameDialog({ nft, setOpen }: DeleteNameDialogProps) {
</div>
</div>
<div className="flex flex-col w-full gap-y-md">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex w-full flex-row gap-x-xs">
Expand Down
5 changes: 3 additions & 2 deletions dapp/src/components/dialogs/EditMetadata.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ export function EditMetadataDialog({ name, setOpen }: EditMetadataDialogProps) {
const hasEmptyRequiredFields = hasSelectedEmptyFields();
const hasValidationErrors = Object.values(validationErrors).some((error) => error);
const isLoading = isUpdateNameLoading || isSigning || isSaving;
const txError = updateNameError || updateNameTransaction?.effects.status.error;
const disableApply =
isLoading ||
updates.length === 0 ||
Expand Down Expand Up @@ -261,13 +262,13 @@ export function EditMetadataDialog({ name, setOpen }: EditMetadataDialogProps) {
</div>
</DialogBody>
<div className="flex flex-col gap-y-md gap-2 p-md--rs">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex w-full flex-row gap-x-xs">
Expand Down
5 changes: 3 additions & 2 deletions dapp/src/components/dialogs/PersonalizeAvatarDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ export function PersonalizeAvatarDialog({ name, setOpen }: PersonalizeAvatarDial
}
return selectedAsset?.objectId === currentAvatar;
})();
const txError = updateNameError || updateNameTransaction?.effects.status.error;

return (
<Dialog open onOpenChange={setOpen}>
Expand Down Expand Up @@ -309,13 +310,13 @@ export function PersonalizeAvatarDialog({ name, setOpen }: PersonalizeAvatarDial
</div>
</DialogBody>
<div className="flex flex-col gap-y-md gap-2 p-md--rs">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex w-full flex-row gap-x-xs">
Expand Down
7 changes: 4 additions & 3 deletions dapp/src/components/dialogs/PurchaseNameDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,8 @@ export function PurchaseNameDialog({ name, open, setOpen, onCompleted }: Purchas
Number(coinBalance?.totalBalance) > finalPrice &&
nameRecordData?.type === 'available';

const hasErrors = updateNameError || coinBalanceError;
const txError = updateNameError || coinBalanceError || updateNameData?.effects.status.error;
const hasErrors = !!(txError || updateNameData?.effects.status.status === 'failure');

const isLoadingData =
isNameRecordLoading ||
Expand Down Expand Up @@ -313,13 +314,13 @@ export function PurchaseNameDialog({ name, open, setOpen, onCompleted }: Purchas
</div>
</div>
<div className="flex flex-col w-full gap-y-md">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<Panel bgColor="bg-names-neutral-10">
Expand Down
7 changes: 4 additions & 3 deletions dapp/src/components/dialogs/RenewNameDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -230,8 +230,9 @@ export function RenewNameDialog({ setOpen, name, onRenew }: RenewDialogProps) {
isLoadingUpdateNameTransaction || isSendingTransaction || isSigning || isLoadingData;

const disableEdit = isSendingTransaction || isSigning || renewOptions.length === 0;
const disableSave = isLoading || !canRenew || !renewYears || !updateNameTransaction;
const cleanName = normalizeIotaName(nameRecord?.nameRecord?.name || name);
const txError = updateNameError || updateNameTransaction?.effects.status.error;
const disableSave = isLoading || !canRenew || !renewYears || !!txError;

return (
<Dialog open onOpenChange={setOpen}>
Expand Down Expand Up @@ -277,13 +278,13 @@ export function RenewNameDialog({ setOpen, name, onRenew }: RenewDialogProps) {
)}
</div>
<div className="flex flex-col w-full gap-y-md">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex flex-row gap-x-sm w-full">
Expand Down
5 changes: 3 additions & 2 deletions dapp/src/components/dialogs/RenewSubameDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ export function RenewSubnameDialog({ setOpen, name, onRenew }: RenewDialogProps)
const disableSave =
isLoading || !canRenew || !updateNameTransaction || isBelowMinimumRenewalPeriod;
const cleanName = normalizeIotaName(nameRecord?.nameRecord?.name || name);
const txError = updateNameError || updateNameTransaction?.effects.status.error;

return (
<Dialog open onOpenChange={setOpen}>
Expand All @@ -213,13 +214,13 @@ export function RenewSubnameDialog({ setOpen, name, onRenew }: RenewDialogProps)
)}
</div>
<div className="flex flex-col w-full gap-y-md">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex flex-row gap-x-sm w-full">
Expand Down
5 changes: 3 additions & 2 deletions dapp/src/components/dialogs/SetPermissionsDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ export function SetPermissionsDialog({ name, setOpen }: CreateSubnameProps) {

const disableEdit = isNameRecordLoading || isSendingTransaction || isExpired;
const disableSave = updates.length === 0 || isLoading || isExpired || !updateNameTransaction;
const txError = updateNameError || updateNameTransaction?.effects.status.error;

return (
<Dialog open onOpenChange={setOpen}>
Expand Down Expand Up @@ -199,13 +200,13 @@ export function SetPermissionsDialog({ name, setOpen }: CreateSubnameProps) {
</div>
</div>
<div className="flex flex-col w-full gap-y-md">
{updateNameError ? (
{txError ? (
<InfoBox
type={InfoBoxType.Error}
style={InfoBoxStyle.Elevated}
icon={<Warning />}
title="Error"
supportingText={getUserFriendlyErrorMessage(updateNameError)}
supportingText={getUserFriendlyErrorMessage(txError)}
/>
) : null}
<div className="flex w-full flex-row gap-x-xs">
Expand Down
9 changes: 3 additions & 6 deletions dapp/src/hooks/useUpdateNameTransaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,17 +203,13 @@ export function useUpdateNameTransaction({ address, updates }: UseUpdateNameTran
client,
});

const txDryRun = await client.dryRunTransactionBlock({
const dryRun = await client.dryRunTransactionBlock({
transactionBlock: txBytes,
});

if (txDryRun.effects.status.status !== 'success') {
throw new Error(txDryRun.effects.status.error || 'Transaction dry run failed');
}

return {
txBytes,
txDryRun,
txDryRun: dryRun,
};
},
enabled: !!address && !!updates.length,
Expand All @@ -222,6 +218,7 @@ export function useUpdateNameTransaction({ address, updates }: UseUpdateNameTran
return {
transaction: Transaction.from(txBytes),
gasSummary: getGasSummary(txDryRun),
effects: txDryRun.effects,
};
},
});
Expand Down
Loading