Skip to content

Commit

Permalink
Merge pull request #760 from alleslabs/feat/cfe-209-proposal-messages
Browse files Browse the repository at this point in the history
Feat/cfe 209 proposal messages
  • Loading branch information
songwongtp committed Feb 5, 2024
2 parents 3ab23be + 14bc0cb commit acdb809
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 15 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Features

- [#760](https://github.com/alleslabs/celatone-frontend/pull/760) Add proposal messages
- [#764](https://github.com/alleslabs/celatone-frontend/pull/764) api v1 - proposal params
- [#759](https://github.com/alleslabs/celatone-frontend/pull/759) Add proposal description and metadata
- [#762](https://github.com/alleslabs/celatone-frontend/pull/762) api v1 - proposal validator votes info
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { Flex, Heading } from "@chakra-ui/react";
import { useState } from "react";

import { CustomIcon } from "lib/components/icon";
import JsonReadOnly from "lib/components/json/JsonReadOnly";
import { CustomIcon } from "../icon";

import JsonReadOnly from "./JsonReadOnly";

interface JsonInfoProps {
header: string;
Expand Down Expand Up @@ -30,7 +31,7 @@ export const JsonInfo = ({
cursor="pointer"
onClick={() => setExpand((prev) => !prev)}
>
<Heading as="h6" variant="h6">
<Heading as="h6" variant="h6" wordBreak="break-word">
{header}
</Heading>
<CustomIcon
Expand Down
2 changes: 1 addition & 1 deletion src/lib/pages/contract-details/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { AssetsSection } from "lib/components/asset";
import { CustomTab } from "lib/components/CustomTab";
import { DelegationsSection } from "lib/components/delegations";
import { CustomIcon } from "lib/components/icon";
import { JsonInfo } from "lib/components/json/JsonInfo";
import { Loading } from "lib/components/Loading";
import PageContainer from "lib/components/PageContainer";
import { ErrorFetching, InvalidState } from "lib/components/state";
Expand All @@ -34,7 +35,6 @@ import { ContractDesc } from "./components/contract-description";
import { ContractStates } from "./components/contract-states";
import { ContractTop } from "./components/ContractTop";
import { InstantiateInfo } from "./components/InstantiateInfo";
import { JsonInfo } from "./components/JsonInfo";
import { ContractTables } from "./components/tables";
import { useContractData } from "./data";
import { TabIndex, zContractDetailsQueryParams } from "./types";
Expand Down
27 changes: 18 additions & 9 deletions src/lib/pages/proposal-details/components/ProposalOverview.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { Flex, Grid, GridItem, Heading, Text, Box } from "@chakra-ui/react";

import { JsonInfo } from "lib/components/json/JsonInfo";
import { Markdown } from "lib/components/Markdown";
import type { ProposalData } from "lib/types";
import { isUrl } from "lib/utils";
import { isUrl, jsonPrettify } from "lib/utils";

const ProposalStatus = () => {
return (
Expand Down Expand Up @@ -107,14 +108,22 @@ export const ProposalOverview = ({ proposalData }: ProposalOverviewProps) => {
<Heading as="h6" variant="h6">
Proposal Messages
</Heading>
<Flex
background="gray.900"
minH={64}
alignItems="center"
justifyContent="center"
>
Proposal message content
</Flex>
{proposalData.messages?.length ? (
<>
{proposalData.messages.map((item, i) => (
<JsonInfo
header={`[${i}] ${item["@type"]}`}
jsonString={jsonPrettify(JSON.stringify(item))}
defaultExpand={proposalData.messages?.length === 1}
key={`msg-${item}`}
/>
))}
</>
) : (
<Text variant="body1" color="text.dark">
No Messages
</Text>
)}
</Flex>
</Flex>
</GridItem>
Expand Down
8 changes: 7 additions & 1 deletion src/lib/services/proposal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,13 @@ const zProposalDataResponse = z.object({
created_timestamp: zUtcDate.nullable(),
created_tx_hash: z.string().nullable(),
description: z.string(),
messages: z.unknown().array().nullable(),
messages: z
.object({
"@type": z.string(),
})
.passthrough()
.array()
.nullable(),
metadata: z.string(),
proposal_deposits: z
.object({
Expand Down
8 changes: 7 additions & 1 deletion src/lib/types/proposal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,18 @@ export interface ProposalDeposit {
txHash: string;
}

// TODO: combine with MsgBody in services/tx.ts
interface Message {
"@type": string;
[key: string]: unknown;
}

export interface ProposalData extends Proposal {
createdHeight: Nullable<number>;
createdTimestamp: Nullable<Date>;
createdTxHash: Nullable<string>;
description: string;
messages: Nullable<unknown[]>;
messages: Nullable<Message[]>;
metadata: string;
proposalDeposits: ProposalDeposit[];
resolvedTimestamp: Nullable<Date>;
Expand Down

0 comments on commit acdb809

Please sign in to comment.