Skip to content

Commit 49697c4

Browse files
committed
fix: delay member list refetch after extra seat purchase
1 parent eb82aa9 commit 49697c4

1 file changed

Lines changed: 18 additions & 2 deletions

File tree

apps/builder/app/dashboard/workspace/manage-members-dialog.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,11 @@ export const ManageMembersDialog = ({
461461
});
462462
};
463463

464-
const performInvite = async (emails: string[], relation: Role) => {
464+
const performInvite = async (
465+
emails: string[],
466+
relation: Role,
467+
{ boughtExtraSeats = false } = {}
468+
) => {
465469
setErrors(undefined);
466470
setInviting(true);
467471

@@ -487,6 +491,16 @@ export const ManageMembersDialog = ({
487491
formRef.current?.reset();
488492
}
489493

494+
// When the invite triggered a Stripe Seats subscription, the webhook
495+
// needs time to update the DB. Delay refetch so the banner doesn't flash.
496+
if (boughtExtraSeats && succeeded.length > 0) {
497+
setTimeout(() => {
498+
handleRefresh();
499+
revalidator.revalidate();
500+
}, 4000);
501+
return;
502+
}
503+
490504
handleRefresh();
491505
revalidator.revalidate();
492506
};
@@ -527,7 +541,9 @@ export const ManageMembersDialog = ({
527541
onConfirm={async () => {
528542
const confirm = pendingConfirm;
529543
setPendingConfirm(undefined);
530-
await performInvite(confirm.emails, confirm.relation);
544+
await performInvite(confirm.emails, confirm.relation, {
545+
boughtExtraSeats: true,
546+
});
531547
}}
532548
/>
533549
)}

0 commit comments

Comments
 (0)