diff --git a/packages/web/src/components/modals/instanceSettingsPanels/RegistrationPanel.tsx b/packages/web/src/components/modals/instanceSettingsPanels/RegistrationPanel.tsx index 9b5358e0..83303aed 100644 --- a/packages/web/src/components/modals/instanceSettingsPanels/RegistrationPanel.tsx +++ b/packages/web/src/components/modals/instanceSettingsPanels/RegistrationPanel.tsx @@ -294,7 +294,6 @@ interface ExpirySelectorProps { function ExpirySelector({ value, customDateTime, onChange, showKeep, disabled }: ExpirySelectorProps) { return (
-
{showKeep && ( @@ -907,6 +922,10 @@ function ReinstateInviteModal({ invite, onClose, onReinstated }: ReinstateInvite } }; + const subtitle = isRevoked + ? 'This invite was revoked. Reinstating generates a new link with a different URL — the old URL stays inactive.' + : 'This invite has lapsed. Reinstating reactivates the same URL — anyone who saved it will be able to use it again.'; + return createPortal(
e.stopPropagation()} > + {/* Header */} +
+
+ + + + +
+
+

Reinstate "{invite.name}"

+

{subtitle}

+
+
+ { e.preventDefault(); handleReinstate(); }} - className="p-6 space-y-5" + className="px-5 pt-4 pb-5 space-y-5" > -

Reinstate "{invite.name}"

- - {isRevoked ? ( -

- This will generate a new link.{' '} - The previously revoked URL stays inactive — anyone who had the old link will - not be able to use it. -

- ) : ( -

- The same link will start working again.{' '} - Anyone who saved the URL will be able to use it. -

+ {/* Amber callout — only for revoked variant to reinforce the "new URL" consequence */} + {isRevoked && ( +
+ A new link will be generated. Anyone who had the old URL will not be able to use it. +
)} {/* Max uses */}
- +
+ Max uses (current: {invite.maxUses ?? '∞'}, used: {invite.usedCount}) +