diff --git a/apps/governance/src/routes/proposals/components/proposal-terms/proposal-terms.tsx b/apps/governance/src/routes/proposals/components/proposal-terms/proposal-terms.tsx
index d40d011fa..232cde5b8 100644
--- a/apps/governance/src/routes/proposals/components/proposal-terms/proposal-terms.tsx
+++ b/apps/governance/src/routes/proposals/components/proposal-terms/proposal-terms.tsx
@@ -33,22 +33,28 @@ const getParsedValue = (value: unknown) => {
}
};
-const renderKeyValue = (key: string, value: string | number) => (
+const RenderKeyValue = ({
+ title,
+ value,
+}: {
+ title: string;
+ value: string | number;
+}) => (
- {key}
+ {title}
{value}
);
-const renderArray = (key: string, array: unknown[]) => {
+const RenderArray = ({ title, array }: { title: string; array: unknown[] }) => {
if (array.every((item) => typeof item === 'string')) {
- return renderKeyValue(key, array.join(', '));
+ return ;
} else {
return (
-
{key}
+
{title}
{array.map((item, index) => (
} />
@@ -60,31 +66,33 @@ const renderArray = (key: string, array: unknown[]) => {
};
// Working with 'unknown' type as a proposal's terms can be in many shapes
-const renderTerm = (key: string, value: unknown) => {
+const RenderTerm = ({ title, value }: { title: string; value: unknown }) => {
const parsedValue = getParsedValue(value);
if (parsedValue === null || typeof parsedValue === 'boolean') {
- return renderKeyValue(key, String(parsedValue));
+ return ;
} else if (
typeof parsedValue === 'string' ||
typeof parsedValue === 'number'
) {
- return renderKeyValue(key, parsedValue);
+ return ;
} else if (typeof parsedValue === 'object') {
if (Array.isArray(parsedValue)) {
- return renderArray(key, parsedValue);
+ return ;
} else {
return (
);
}
+ } else if (parsedValue === undefined) {
+ return {'undefined'};
} else {
- return JSON.stringify(parsedValue);
+ return {String(parsedValue)};
}
};
@@ -99,7 +107,9 @@ const ProposalTermsRenderer = ({ data }: ProposalTermsProps) => {
)
)
.map((key, index) => (
- {renderTerm(key, data[key])}
+
+
+
))}
);