diff --git a/lib/hooks/invite-links.js b/lib/hooks/invite-links.js
--- a/lib/hooks/invite-links.js
+++ b/lib/hooks/invite-links.js
@@ -44,6 +44,7 @@
 ): {
   +error: ?string,
   +isLoading: boolean,
+  +isChanged: boolean,
   +name: string,
   +setName: SetState<string>,
   +createOrUpdateInviteLink: () => mixed,
@@ -107,12 +108,20 @@
     () => ({
       error,
       isLoading,
+      isChanged: name !== inviteLink?.name,
       name,
       setName,
       createOrUpdateInviteLink,
       disableInviteLink,
     }),
-    [createOrUpdateInviteLink, disableInviteLink, error, isLoading, name],
+    [
+      createOrUpdateInviteLink,
+      disableInviteLink,
+      error,
+      inviteLink?.name,
+      isLoading,
+      name,
+    ],
   );
 }
 
diff --git a/native/invite-links/manage-public-link-screen.react.js b/native/invite-links/manage-public-link-screen.react.js
--- a/native/invite-links/manage-public-link-screen.react.js
+++ b/native/invite-links/manage-public-link-screen.react.js
@@ -35,6 +35,7 @@
   const {
     error,
     isLoading,
+    isChanged,
     name,
     setName,
     createOrUpdateInviteLink,
@@ -122,7 +123,7 @@
         <Button
           style={[styles.button, styles.buttonPrimary]}
           onPress={createOrUpdateInviteLink}
-          disabled={isLoading}
+          disabled={isLoading || !isChanged}
         >
           <Text style={styles.buttonText}>Save & enable public link</Text>
         </Button>
diff --git a/web/invite-links/manage/edit-link-modal.react.js b/web/invite-links/manage/edit-link-modal.react.js
--- a/web/invite-links/manage/edit-link-modal.react.js
+++ b/web/invite-links/manage/edit-link-modal.react.js
@@ -33,8 +33,14 @@
   const { inviteLink, enterViewMode, enterDisableMode, community } = props;
   const { popModal } = useModalContext();
 
-  const { error, isLoading, name, setName, createOrUpdateInviteLink } =
-    useInviteLinksActions(community.id, inviteLink);
+  const {
+    error,
+    isLoading,
+    isChanged,
+    name,
+    setName,
+    createOrUpdateInviteLink,
+  } = useInviteLinksActions(community.id, inviteLink);
   const onChangeName = React.useCallback(
     (event: SyntheticEvent<HTMLInputElement>) => {
       setName(event.currentTarget.value);
@@ -103,7 +109,7 @@
             <Button
               variant="filled"
               onClick={createOrUpdateInviteLink}
-              disabled={isLoading}
+              disabled={isLoading || !isChanged}
             >
               Save & enable public link
             </Button>