-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add note to clarify the workspace join link functionality #45374
Merged
Merged
Changes from 1 commit
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
8848236
feat: add note to clarify the workspace join link functionality
dominictb da87f49
fix: update padding
dominictb c3a1164
Merge remote-tracking branch 'origin/main' into fix/45303-note-join
dominictb 13a3243
Merge remote-tracking branch 'origin/main' into fix/45303-note-join
dominictb 4e43547
chore: update translation msg
dominictb 5c33ee3
Merge remote-tracking branch 'origin/main' into fix/45303-note-join
dominictb d5f54b7
Merge remote-tracking branch 'origin/main' into fix/45303-note-join
dominictb File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
import React, {useRef} from 'react'; | ||
import React, {useMemo, useRef} from 'react'; | ||
import {View} from 'react-native'; | ||
import type {ImageSourcePropType} from 'react-native'; | ||
import expensifyLogo from '@assets/images/expensify-logo-round-transparent.png'; | ||
|
@@ -10,19 +10,24 @@ import QRShare from '@components/QRShare'; | |
import type {QRShareHandle} from '@components/QRShare/types'; | ||
import ScreenWrapper from '@components/ScreenWrapper'; | ||
import ScrollView from '@components/ScrollView'; | ||
import Text from '@components/Text'; | ||
import TextLink from '@components/TextLink'; | ||
import useEnvironment from '@hooks/useEnvironment'; | ||
import useLocalize from '@hooks/useLocalize'; | ||
import useThemeStyles from '@hooks/useThemeStyles'; | ||
import useWindowDimensions from '@hooks/useWindowDimensions'; | ||
import Clipboard from '@libs/Clipboard'; | ||
import Navigation from '@libs/Navigation/Navigation'; | ||
import * as ReportUtils from '@libs/ReportUtils'; | ||
import * as Url from '@libs/Url'; | ||
import CONST from '@src/CONST'; | ||
import ROUTES from '@src/ROUTES'; | ||
import AccessOrNotFoundWrapper from './AccessOrNotFoundWrapper'; | ||
import withPolicy from './withPolicy'; | ||
import type {WithPolicyProps} from './withPolicy'; | ||
|
||
const adminsRoomMentionText = '#admins'; | ||
|
||
dominictb marked this conversation as resolved.
Show resolved
Hide resolved
|
||
function WorkspaceProfileSharePage({policy}: WithPolicyProps) { | ||
const themeStyles = useThemeStyles(); | ||
const {translate} = useLocalize(); | ||
|
@@ -37,6 +42,22 @@ function WorkspaceProfileSharePage({policy}: WithPolicyProps) { | |
const urlWithTrailingSlash = Url.addTrailingForwardSlash(environmentURL); | ||
|
||
const url = `${urlWithTrailingSlash}${ROUTES.WORKSPACE_JOIN_USER.getRoute(id, adminEmail)}`; | ||
const adminRoom = useMemo(() => { | ||
if (!policy?.id) { | ||
return undefined; | ||
} | ||
return ReportUtils.getRoom(CONST.REPORT.CHAT_TYPE.POLICY_ADMINS, policy?.id); | ||
}, [policy?.id]); | ||
|
||
const shareNote = useMemo(() => { | ||
const header = translate('workspace.common.shareNote.header'); | ||
const content = translate('workspace.common.shareNote.content'); | ||
const adminRoomMentionIndex = content.indexOf(adminsRoomMentionText); | ||
return { | ||
header, | ||
contentParts: [content.slice(0, adminRoomMentionIndex), content.slice(adminRoomMentionIndex + adminsRoomMentionText.length)], | ||
}; | ||
}, [translate]); | ||
|
||
return ( | ||
<AccessOrNotFoundWrapper | ||
|
@@ -53,6 +74,27 @@ function WorkspaceProfileSharePage({policy}: WithPolicyProps) { | |
/> | ||
<ScrollView style={[themeStyles.flex1, themeStyles.pt2]}> | ||
<View style={[themeStyles.flex1, isSmallScreenWidth ? themeStyles.workspaceSectionMobile : themeStyles.workspaceSection]}> | ||
<View style={[themeStyles.mh5, themeStyles.mv1]}> | ||
<Text style={[themeStyles.textHeadlineH1, themeStyles.mt2]}>{shareNote.header}</Text> | ||
dominictb marked this conversation as resolved.
Show resolved
Hide resolved
|
||
</View> | ||
<View style={[themeStyles.mh5, themeStyles.mt1, themeStyles.mb9]}> | ||
<Text style={[themeStyles.textNormal, themeStyles.mt2]}> | ||
{shareNote.contentParts[0]} | ||
<TextLink | ||
style={themeStyles.link} | ||
onPress={() => { | ||
if (!adminRoom?.reportID) { | ||
return; | ||
} | ||
Navigation.navigate(ROUTES.REPORT_WITH_ID.getRoute(adminRoom.reportID)); | ||
}} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The navigation logic from this line led to the following issue: because the RHP modal was not being closed before navigating. We fixed the issue by using Navigation.dismissModal(adminRoom.reportID); which does both, dismiss the modal and then navigate to the room. |
||
> | ||
#admins | ||
</TextLink> | ||
dominictb marked this conversation as resolved.
Show resolved
Hide resolved
|
||
{shareNote.contentParts[1]} | ||
</Text> | ||
</View> | ||
|
||
<View style={[themeStyles.workspaceSectionMobile, themeStyles.ph9]}> | ||
{/* | ||
Right now QR code download button is not shown anymore | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dominictb I think it is better to divide this text into two parts:
Share this QR code or copy the link below to make it easy for members to request access to your workspace. All requests to join the workspace will show up in the
room for your review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With this approach, we don't need to apply logic to split the content in the component