const widgetProvider = props.widgetProvider; const account = props.account || "marketing.sputnik-dao.near"; const apiUrl = `https://api.pikespeak.ai/daos/proposals/${account}`; const publicApiKey = "36f2b87a-7ee6-40d8-80b9-5e68e587a5b5"; const forgeUrl = (apiUrl, params) => apiUrl + Object.keys(params).reduce( (paramString, p) => paramString + `${p}=${params[p]}&`, "?" ); const resPerPage = 10; State.init({ params: { offset: 0, }, }); const columns = [ { id: "submission_time", label: "Submission time", }, { id: "proposal_id", label: "Proposal Id", }, { id: "status", label: "Status", }, { id: "proposal_type", label: "type", }, ]; const nextPage = () => { State.update({ offset: state.offset + resPerPage }); }; const previousPage = () => { State.update({ offset: state.offset - resPerPage }); }; const GenericTable = ( <Widget src={`${widgetProvider}/widget/generic_table`} props={{ title: `${account} proposals`, columns, data: state.proposals, nextPage, previousPage, offset: state.offset, resPerPage, }} /> ); const fetchTransfers = (params) => { const proposals = fetch(forgeUrl(apiUrl, params), { mode: "cors", headers: { "x-api-key": publicApiKey, }, }); proposals.body && State.update({ proposals: proposals.body }); }; fetchTransfers(state.params); console.log("PROPOSALS", state.proposals); return <>{GenericTable}</>;