@@ -1,4 +1,4 @@
1−import { useCallback, useEffect, useMemo, useState } from 'react';
1+import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
22import * as azimuth from 'azimuth-js';
33import * as need from 'lib/need';
44import SecureLS from 'secure-ls';
@@ -92,13 +92,12 @@ export default function useRoller() {
9292 const { setNextRoll } = useTimerStore();
9393
9494 const {
95− invitesLoading,
9695 nextBatchTime,
9796 point,
9897 points,
9998 pointList,
10099 nextQuotaTime,
101− removeInvite,
100+ addInvite,
102101 setNextBatchTime,
103102 setNextQuotaTime,
104103 setPendingTransactions,
@@ -107,11 +106,11 @@ export default function useRoller() {
107106 setInvitesLoading,
108107 setModalText,
109108 setPoints,
110− updateInvite,
111109 updatePoint,
112110 storePendingL1Txn,
113111 deletePendingL1Txn,
114112 } = useRollerStore();
113+ const generatingInvites = useRef(false);
115114 const [config, setConfig] = useState<Config | null>(null);
116115
117116 const options: Options = useMemo(() => {
@@ -360,10 +359,11 @@ export default function useRoller() {
360359 };
361360
362361 const getInvites = useCallback(async () => {
363− if (invitesLoading) {
362+ if (generatingInvites.current) {
364363 return;
365364 }
366365
366+ generatingInvites.current = true;
367367 try {
368368 setInvitesLoading(true);
369369 const curPoint: number = Number(need.point(pointCursor));
@@ -397,10 +397,7 @@ export default function useRoller() {
397397 .filter((p: number) => !pendingSpawns.has(p))
398398 .sort();
399399
400− setInvites(
401− curPoint,
402− invitePlanets.map(p => inviteTemplate(p))
403− );
400+ setInvites(curPoint, []);
404401
405402 const newInvites: Invite[] = [];
406403 // Iterate over all of the stored invites, generating wallet info as necessary
@@ -422,23 +419,23 @@ export default function useRoller() {
422419 planetInfo.ownership?.owner?.address &&
423420 planetInfo.dominion === POINT_DOMINIONS.L2
424421 ) {
422+ addInvite(curPoint, invite);
425423 newInvites.push(invite);
426− updateInvite(curPoint, invite);
427− } else {
428− removeInvite(curPoint, invite.planet);
429424 }
430425
431426 if (storedInvite) {
432427 setStoredInvite(ls, invite);
433428 }
434429 }
435− setInvites(curPoint, newInvites);
430+
436431 setInvitesLoading(false);
437432 return newInvites;
438433 }
439434 } catch (error) {
440435 console.warn('ERROR GETTING INVITES', error);
441436 }
437+
438+ generatingInvites.current = false;
442439 }, [
443440 api,
444441 authToken,
@@ -447,12 +444,11 @@ export default function useRoller() {
447444 ls,
448445 point,
449446 pointList,
450− removeInvite,
447+ addInvite,
451448 setInvites,
452449 setInvitesLoading,
453450 setInviteGeneratingNum,
454451 setPendingTransactions,
455− updateInvite,
456452 ]);
457453
458454 const generateInviteCodes = useCallback(
@@ -571,6 +567,7 @@ export default function useRoller() {
571567 }
572568
573569 setStoredInvites(ls, invites);
570+ console.log('getting invites from code generation');
574571 getInvites();
575572 showNotification(
576573 `Your invite${invites.length > 1 ? 's have' : ' has'} been generated!`
@@ -1053,6 +1050,7 @@ export default function useRoller() {
10531050
10541051 setTimeout(() => {
10551052 if (!point.isDefault) {
1053+ console.log('getting invites from batch time');
10561054 getInvites(); // This will also get pending txns
10571055 }
10581056 }, TEN_SECONDS); // Should this be more like a minute?