on master help sign in
Merge pull request #506 from urbit/m/various

invites: handle error cases slightly better

commit73fcf3a7e3147ebace8fe7157804b4771a86c332 authorFang <git@fang.io> dateFri 24 Jul 2020, 23:45 (6 years ago) parente1eacd982af141
4 files changed+23−20
package-lock.json+10 package.json+1−1 src/components/Sigil.js+2−2 src/lib/useInviter.js+10−17
package-lock.json+10
@@ -1815,6 +1815,16 @@
18151815 "loader-utils": "^1.1.0"
18161816 }
18171817 },
1818+ "@tlon/sigil-js": {
1819+ "version": "1.4.1",
1820+ "resolved": "https://registry.npmjs.org/@tlon/sigil-js/-/sigil-js-1.4.1.tgz",
1821+ "integrity": "sha512-+ajy1lqChGzpFzYE03IhSBmn+IugcgjSVhMurWN6CUb50Wc4z7epPpNk2xFvyfY5BilQlgtxDvMpIcNS54Iw2Q==",
1822+ "requires": {
1823+ "invariant": "^2.2.4",
1824+ "svgson": "^4.0.0",
1825+ "transformation-matrix": "2.1.1"
1826+ }
1827+ },
18181828 "@types/babel__core": {
18191829 "version": "7.1.9",
18201830 "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
package.json+1−1
@@ -18,6 +18,7 @@
1818 "@hot-loader/react-dom": "^16.8.6",
1919 "@ledgerhq/hw-app-eth": "^5.5.0",
2020 "@ledgerhq/hw-transport-u2f": "^5.5.0",
21+ "@tlon/sigil-js": "^1.4.1",
2122 "@welldone-software/why-did-you-render": "^3.2.3",
2223 "async-retry": "^1.2.3",
2324 "azimuth-js": "^0.19.0",
@@ -54,7 +55,6 @@
5455 "urbit-key-generation": "^0.17.4",
5556 "urbit-ob": "^4.1.4",
5657 "urbit-paper-renderer": "^2.0.9",
57− "urbit-sigil-js": "^1.3.5",
5858 "web3": "1.0.0-beta.54",
5959 "web3-utils": "^1.0.0-beta.52"
6060 },
src/components/Sigil.js+2−2
@@ -1,4 +1,4 @@
1−import { sigil, reactRenderer } from 'urbit-sigil-js';
1+import { sigil, reactRenderer } from '@tlon/sigil-js';
22
33export default function Sigil({ patp, size, colors, ...rest }) {
44 return sigil({
@@ -6,7 +6,7 @@ export default function Sigil({ patp, size, colors, ...rest }) {
66 renderer: reactRenderer,
77 style: { width: '100%', height: '100%' }, // NOTE: scale to container
88 size,
9− margin: size / 8,
9+ margin: true,
1010 colors,
1111 ...rest,
1212 });
src/lib/useInviter.js+10−17
@@ -100,7 +100,6 @@ const useInviter = () => {
100100
101101 // NB(shrugs) - must be processed in serial because main thread, etc
102102 let signedInvites = [];
103− let errorCount = 0;
104103 for (let i = 0; i < numInvites; i++) {
105104 setProgress(x => x + 1);
106105 try {
@@ -159,7 +158,7 @@ const useInviter = () => {
159158 () => setNeedFunds(undefined)
160159 );
161160
162− let unsentInvites = [];
161+ let inviteErrors = [];
163162 let confirmedInvites = [];
164163 const txAndMailings = signedInvites.map(async invite => {
165164 try {
@@ -172,8 +171,12 @@ const useInviter = () => {
172171 await waitForTransactionConfirm(_web3, txHash);
173172 confirmedInvites.push(invite);
174173 } catch (error) {
175− console.error(error);
176− unsentInvites.push(invite);
174+ console.error('Error sending invite tx:', error);
175+ if (typeof error === 'string') {
176+ inviteErrors.push(error);
177+ } else if (typeof error === 'object' && error.message) {
178+ inviteErrors.push(error.message);
179+ }
177180 return;
178181 }
179182 });
@@ -183,24 +186,14 @@ const useInviter = () => {
183186 setTxStatus(STATUS.SUCCESS);
184187 setInvites(confirmedInvites);
185188
186− if (unsentInvites.length > 0) {
187− return { errors: { [FORM_ERROR]: unsentInvites } };
188− }
189−
190− if (errorCount > 0) {
189+ if (inviteErrors.length > 0) {
191190 return {
192191 errors: {
193− [WARNING]: `There ${pluralize(
194− errorCount,
195− 'was',
196− 'were'
197− )} ${pluralize(
198− errorCount,
199− 'error'
200− )} while generating wallets. You can still send the invites that generated correctly.`,
192+ [FORM_ERROR]: ['Error sending invites: ', ...inviteErrors],
201193 },
202194 };
203195 }
196+
204197 return { invites: confirmedInvites };
205198 },
206199 [