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>