diff --git a/native/invite-links/view-invite-links-screen.react.js b/native/invite-links/view-invite-links-screen.react.js --- a/native/invite-links/view-invite-links-screen.react.js +++ b/native/invite-links/view-invite-links-screen.react.js @@ -6,13 +6,16 @@ import { TouchableOpacity } from 'react-native-gesture-handler'; import { primaryInviteLinksSelector } from 'lib/selectors/invite-links-selectors.js'; +import { threadHasPermission } from 'lib/shared/thread-utils.js'; import type { InviteLink } from 'lib/types/link-types.js'; +import { threadPermissions } from 'lib/types/thread-permission-types.js'; import type { ThreadInfo } from 'lib/types/thread-types.js'; import SWMansionIcon from '../components/swmansion-icon.react.js'; import { displayActionResultModal } from '../navigation/action-result-modal.js'; import type { RootNavigationProp } from '../navigation/root-navigator.react.js'; import type { NavigationRoute } from '../navigation/route-names.js'; +import { ManagePublicLinkRouteName } from '../navigation/route-names.js'; import { useSelector } from '../redux/redux-utils.js'; import { useStyles, useColors } from '../themes/colors.js'; @@ -41,8 +44,41 @@ setTimeout(confirmCopy); }, [linkUrl]); + const { navigate } = props.navigation; + const onEditButtonClick = React.useCallback(() => { + navigate<'ManagePublicLink'>({ + name: ManagePublicLinkRouteName, + params: { + community, + }, + }); + }, [community, navigate]); let publicLinkSection = null; - if (inviteLink) { + if ( + inviteLink || + threadHasPermission(community, threadPermissions.MANAGE_INVITE_LINKS) + ) { + let description; + if (threadHasPermission(community, threadPermissions.MANAGE_INVITE_LINKS)) { + description = ( + <> + + Public links allow unlimited uses and never expire. + + + + Edit public link + + + + ); + } else { + description = ( + + Use this public link to invite your friends into the community! + + ); + } publicLinkSection = ( <> PUBLIC LINK @@ -58,9 +94,7 @@ Copy - - Use this public link to invite your friends into the community! - + {description} ); @@ -92,6 +126,7 @@ link: { paddingHorizontal: 16, paddingVertical: 9, + marginBottom: 16, backgroundColor: 'inviteLinkButtonBackground', borderRadius: 20, flexDirection: 'row', @@ -119,7 +154,9 @@ fontWeight: '400', lineHeight: 18, color: 'modalForegroundLabel', - paddingTop: 16, + }, + editLinkButton: { + color: 'purpleLink', }, };