@@ -2,11 +2,16 @@ import { useAtomValue } from "jotai";
22import { generatePath , useNavigate } from "react-router-dom" ;
33
44import { Modal } from "@namada/components" ;
5- import { PgfIbcTarget , PgfTarget , Proposal } from "@namada/types" ;
5+ import {
6+ PgfIbcTarget ,
7+ PgfTarget ,
8+ ProposalData ,
9+ ProposalWithData ,
10+ } from "@namada/types" ;
611import { assertNever , copyToClipboard } from "@namada/utils" ;
712import { ModalContainer } from "App/Common/ModalContainer" ;
813import { routes } from "App/routes" ;
9- import { proposalFamily } from "atoms/proposals" ;
14+ import { proposalWithDataFamily } from "atoms/proposals" ;
1015import clsx from "clsx" ;
1116import { useProposalIdParam } from "hooks" ;
1217import { useState } from "react" ;
@@ -70,16 +75,16 @@ const formatIbcPgfTarget = (value: PgfIbcTarget): PgfIbcTargetJson => ({
7075 } ,
7176} ) ;
7277
73- const formatData = ( proposal : Proposal ) : DataJson => {
74- switch ( proposal . proposalType . type ) {
78+ const formatData = ( proposalData : ProposalData ) : DataJson => {
79+ switch ( proposalData . type ) {
7580 case "default" :
7681 return undefined ;
7782
7883 case "default_with_wasm" :
79- return proposal . proposalType . data ;
84+ return proposalData . data ;
8085
8186 case "pgf_steward" :
82- const addRemove = proposal . proposalType . data ;
87+ const addRemove = proposalData . data ;
8388
8489 // deliberately specify keys to ensure no unwanted data is printed
8590 return {
@@ -88,7 +93,7 @@ const formatData = (proposal: Proposal): DataJson => {
8893 } ;
8994
9095 case "pgf_payment" :
91- const pgfActions = proposal . proposalType . data ;
96+ const pgfActions = proposalData . data ;
9297
9398 const continuous = [
9499 ...pgfActions . continuous . add ,
@@ -113,11 +118,12 @@ const formatData = (proposal: Proposal): DataJson => {
113118 return { continuous, retro } ;
114119
115120 default :
116- return assertNever ( proposal . proposalType ) ;
121+ return assertNever ( proposalData ) ;
117122 }
118123} ;
119124
120- const getProposalJsonString = ( proposal : Proposal ) : string => {
125+ const getProposalJsonString = ( proposalWithData : ProposalWithData ) : string => {
126+ const { proposal, decodedData } = proposalWithData ;
121127 const proposalJson : ProposalJson = {
122128 proposal : {
123129 id : proposal . id ,
@@ -127,7 +133,7 @@ const getProposalJsonString = (proposal: Proposal): string => {
127133 voting_end_epoch : proposal . endEpoch ,
128134 activation_epoch : proposal . activationEpoch ,
129135 } ,
130- data : formatData ( proposal ) ,
136+ data : formatData ( decodedData ) ,
131137 } ;
132138
133139 const stringified = JSON . stringify (
@@ -151,7 +157,7 @@ const getProposalJsonString = (proposal: Proposal): string => {
151157 2
152158 ) ;
153159
154- const { type } = proposal . proposalType ;
160+ const { type } = decodedData ;
155161
156162 if ( type === "default_with_wasm" ) {
157163 // remove double quotes around WASM data
@@ -187,17 +193,24 @@ export const ViewJson: React.FC = () => {
187193} ;
188194
189195const WithProposalId : React . FC < { proposalId : bigint } > = ( { proposalId } ) => {
190- const proposal = useAtomValue ( proposalFamily ( proposalId ) ) ;
196+ const proposalWithDataQuery = useAtomValue (
197+ proposalWithDataFamily ( proposalId )
198+ ) ;
191199
192- return proposal . status === "pending" || proposal . status === "error" ?
200+ return (
201+ proposalWithDataQuery . status === "pending" ||
202+ proposalWithDataQuery . status === "error"
203+ ) ?
193204 null
194- : < Loaded proposal = { proposal . data } /> ;
205+ : < Loaded proposalWithData = { proposalWithDataQuery . data } /> ;
195206} ;
196207
197- const Loaded : React . FC < { proposal : Proposal } > = ( { proposal } ) => {
208+ const Loaded : React . FC < { proposalWithData : ProposalWithData } > = ( {
209+ proposalWithData,
210+ } ) => {
198211 const [ copied , setCopied ] = useState ( false ) ;
199212
200- const jsonString = getProposalJsonString ( proposal ) ;
213+ const jsonString = getProposalJsonString ( proposalWithData ) ;
201214
202215 const onCopy = ( ) : void => {
203216 if ( ! copied ) {
0 commit comments