Skip to content

Commit

Permalink
Fix message payload display if unable to decode (#1294)
Browse files Browse the repository at this point in the history
  • Loading branch information
nikitayutanov authored Jun 6, 2023
1 parent ade2717 commit ef0602b
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions idea/frontend/src/entities/message/ui/messageInfo/MessageInfo.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { CreateType, ProgramMetadata } from '@gear-js/api';
import { InputWrapper } from '@gear-js/ui';
import { useAlert } from '@gear-js/react-hooks';
import { AnyJson, Codec } from '@polkadot/types/types';
import { useEffect, useState } from 'react';
import { generatePath, Link } from 'react-router-dom';
Expand All @@ -22,6 +23,8 @@ type Props = {
const MessageInfo = ({ metadata, message, isLoading }: Props) => {
const { id, source, value, destination, replyToMessageId, entry } = message ?? {};

const alert = useAlert();

const [decodedPayload, setDecodedPayload] = useState<string>();

useEffect(() => {
Expand All @@ -37,17 +40,25 @@ const MessageInfo = ({ metadata, message, isLoading }: Props) => {

let payload: AnyJson | Codec;

if (!message.exitCode) {
if (metadata) {
payload = getDecodedMessagePayload(metadata, message);
try {
if (!message.exitCode) {
if (metadata) {
payload = getDecodedMessagePayload(metadata, message);
} else {
payload = CreateType.create('Bytes', message.payload).toHuman();
}
} else {
payload = CreateType.create('Bytes', message.payload).toHuman();
payload = CreateType.create('String', message.payload).toHuman();
}
} else {
payload = CreateType.create('String', message.payload).toHuman();
} catch (error) {
alert.error(String(error));

payload = message.payload;
}

setDecodedPayload(payload ? getPreformattedText(payload) : '-');

// eslint-disable-next-line react-hooks/exhaustive-deps
}, [metadata, message, isLoading]);

const isPayloadLoading = decodedPayload === undefined || isLoading;
Expand Down

0 comments on commit ef0602b

Please sign in to comment.