on master help sign in
senate: clean up, improve code style
4704c60fang
src/views/Senate/Documents.js+23−32
@@ -1,4 +1,4 @@
1−import React, { useCallback, useMemo, useState } from 'react';
1+import React, { useCallback, useMemo, useEffect, useState } from 'react';
2import { Grid, Text, P, LinkButton } from 'indigo-react';
2import { Grid, Text, P, LinkButton } from 'indigo-react';
3import * as azimuth from 'azimuth-js';
3import * as azimuth from 'azimuth-js';
4
4
@@ -64,25 +64,26 @@ export default function Documents() {
64 //TODO update every second?
64 //TODO update every second?
65 const now = Math.round(new Date().getTime() / 1000);
65 const now = Math.round(new Date().getTime() / 1000);
66
66
67+ useEffect(() => {
67− useMemo(async () => {
68+ (async () => {
68− let proposals = await azimuth.polls.getDocumentProposals(_contracts);
69+ let proposals = await azimuth.polls.getDocumentProposals(_contracts);
69− let majorities = await azimuth.polls.getDocumentMajorities(_contracts);
70+ let majorities = await azimuth.polls.getDocumentMajorities(_contracts);
70− let polls = {};
71+ let polls = {};
71− for (let doc of proposals) {
72+ for (let doc of proposals) {
72− let poll = await azimuth.polls.getDocumentPoll(_contracts, doc);
73+ let poll = await azimuth.polls.getDocumentPoll(_contracts, doc);
73− poll.endTime = convertToInt(poll.start) + convertToInt(poll.duration);
74+ poll.endTime = convertToInt(poll.start) + convertToInt(poll.duration);
74− poll.hasVoted = await azimuth.polls.hasVotedOnDocumentPoll(
75+ poll.hasVoted = await azimuth.polls.hasVotedOnDocumentPoll(
75− _contracts,
76+ _contracts,
76− _point,
77+ _point,
77− doc
78+ doc
78− );
79+ );
79− polls[doc] = poll;
80+ polls[doc] = poll;
80− }
81+ }
81− setMajorities(majorities);
82+ setMajorities(majorities);
82− setProposals(proposals);
83+ setProposals(proposals);
83− setPolls(polls);
84+ setPolls(polls);
84− setLoading(false);
85+ setLoading(false);
85− return;
86+ })();
86 }, [_contracts, _point]);
87 }, [_contracts, _point]);
87
88
88 // eslint-disable-next-line
89 // eslint-disable-next-line
@@ -105,7 +106,7 @@ export default function Documents() {
105 construct(hash, accept);
106 construct(hash, accept);
106 setVotingOn({ hash, accept });
107 setVotingOn({ hash, accept });
107 },
108 },
108− [construct, setVotingOn]
109+ [construct]
109 );
110 );
110
111
111 const didVote = useCallback(() => {
112 const didVote = useCallback(() => {
@@ -171,15 +172,6 @@ export default function Documents() {
171 });
172 });
172 }, [open, polls, votingOn, doVote]);
173 }, [open, polls, votingOn, doVote]);
173
174
174− const onDocumentChange = useCallback(({ valid, values }) => {
175− // if (values.document) {
176− // const hash = '0x' + keccak256(values.document.trim()).toString('hex');
177− // setDocumentHash(hash);
178− // } else {
179− // setDocumentHash('0x...');
180− // }
181− }, []);
182−
183 return (
175 return (
184 <View pop={pop} inset>
176 <View pop={pop} inset>
185 <Grid>
177 <Grid>
@@ -205,9 +197,8 @@ export default function Documents() {
205 {openList}
197 {openList}
206 </Grid.Item>
198 </Grid.Item>
207
199
208− <BridgeForm onValues={onDocumentChange}>
200+ <BridgeForm>
209 {({ onSubmit, values }) => (
201 {({ onSubmit, values }) => (
210− // <>
211 <Grid.Item
202 <Grid.Item
212 full
203 full
213 as={InlineEthereumTransaction}
204 as={InlineEthereumTransaction}
src/views/Senate/Upgrades.js+20−20
@@ -1,4 +1,4 @@
1−import React, { useCallback, useMemo, useState } from 'react';
1+import React, { useCallback, useMemo, useEffect, useState } from 'react';
2import { Grid, Text, P, LinkButton } from 'indigo-react';
2import { Grid, Text, P, LinkButton } from 'indigo-react';
3import * as azimuth from 'azimuth-js';
3import * as azimuth from 'azimuth-js';
4
4
@@ -58,23 +58,24 @@ export default function Upgrades() {
58 //TODO update every second?
58 //TODO update every second?
59 const now = Math.round(new Date().getTime() / 1000);
59 const now = Math.round(new Date().getTime() / 1000);
60
60
61+ useEffect(() => {
61− useMemo(async () => {
62+ (async () => {
62− let proposals = await azimuth.polls.getUpgradeProposals(_contracts);
63+ let proposals = await azimuth.polls.getUpgradeProposals(_contracts);
63− let polls = {};
64+ let polls = {};
64− for (let address of proposals) {
65+ for (let address of proposals) {
65− let poll = await azimuth.polls.getUpgradePoll(_contracts, address);
66+ let poll = await azimuth.polls.getUpgradePoll(_contracts, address);
66− poll.endTime = convertToInt(poll.start) + convertToInt(poll.duration);
67+ poll.endTime = convertToInt(poll.start) + convertToInt(poll.duration);
67− poll.hasVoted = await azimuth.polls.hasVotedOnUpgradePoll(
68+ poll.hasVoted = await azimuth.polls.hasVotedOnUpgradePoll(
68− _contracts,
69+ _contracts,
69− _point,
70+ _point,
70− address
71+ address
71− );
72+ );
72− polls[address] = poll;
73+ polls[address] = poll;
73− }
74+ }
74− setProposals(proposals);
75+ setProposals(proposals);
75− setPolls(polls);
76+ setPolls(polls);
76− setLoading(false);
77+ setLoading(false);
77− return;
78+ })();
78 }, [_contracts, _point]);
79 }, [_contracts, _point]);
79
80
80 // eslint-disable-next-line
81 // eslint-disable-next-line
@@ -97,7 +98,7 @@ export default function Upgrades() {
97 construct(address, accept);
98 construct(address, accept);
98 setVotingOn({ address, accept });
99 setVotingOn({ address, accept });
99 },
100 },
100− [construct, setVotingOn]
101+ [construct]
101 );
102 );
102
103
103 const didVote = useCallback(() => {
104 const didVote = useCallback(() => {
@@ -182,7 +183,6 @@ export default function Upgrades() {
182
183
183 <BridgeForm>
184 <BridgeForm>
184 {({ onSubmit, values }) => (
185 {({ onSubmit, values }) => (
185− // <>
186 <Grid.Item
186 <Grid.Item
187 full
187 full
188 as={InlineEthereumTransaction}
188 as={InlineEthereumTransaction}