@@ -15,6 +15,7 @@ import {
1515 formatAndFetchState ,
1616 getProposal ,
1717} from 'src/data/subgraph/requests/proposalQuery'
18+ import { Proposal_Filter } from 'src/data/subgraph/sdk.generated'
1819import { getDaoLayout } from 'src/layouts/DaoLayout'
1920import { DaoContractAddresses , SectionHandler } from 'src/modules/dao'
2021import {
@@ -107,7 +108,7 @@ export default VotePage
107108
108109export const getServerSideProps : GetServerSideProps = async ( { params, req, res } ) => {
109110 const collection = params ?. token as AddressType
110- const proposalId = params ?. id as `0x${string } `
111+ const proposalIdOrNumber = params ?. id as `0x${string } `
111112 const network = params ?. network as string
112113
113114 const chain = PUBLIC_DEFAULT_CHAINS . find ( ( x ) => x . slug === network )
@@ -121,11 +122,22 @@ export const getServerSideProps: GetServerSideProps = async ({ params, req, res
121122 const env = process . env . VERCEL_ENV || 'development'
122123 const protocol = env === 'development' ? 'http' : 'https'
123124
124- const data = await SDK . connect ( chain . id ) . proposalOGMetadata ( {
125- proposalId,
126- } )
125+ let where : Proposal_Filter
127126
128- if ( ! data . proposal ) {
127+ where = proposalIdOrNumber . startsWith ( '0x' )
128+ ? {
129+ proposalId : proposalIdOrNumber ,
130+ }
131+ : { proposalNumber : parseInt ( proposalIdOrNumber ) , dao : collection . toLowerCase ( ) }
132+
133+ const data = await SDK . connect ( chain . id )
134+ . proposalOGMetadata ( {
135+ where,
136+ first : 1 ,
137+ } )
138+ . then ( ( x ) => ( x . proposals . length > 0 ? x . proposals [ 0 ] : undefined ) )
139+
140+ if ( ! data ) {
129141 return {
130142 notFound : true ,
131143 }
@@ -156,7 +168,7 @@ export const getServerSideProps: GetServerSideProps = async ({ params, req, res
156168 governorAddress,
157169 treasuryAddress,
158170 auctionAddress,
159- } = data . proposal . dao
171+ } = data . dao
160172
161173 const ogMetadata : ProposalOgMetadata = {
162174 proposal : {
@@ -200,7 +212,7 @@ export const getServerSideProps: GetServerSideProps = async ({ params, req, res
200212 } ,
201213 daoName : name ,
202214 ogImageURL,
203- proposalId,
215+ proposalId : proposal . proposalId ,
204216 addresses,
205217 } ,
206218 }
0 commit comments