Skip to content
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

Add support for viewing full screen Group Chat custom avatars #41586

Merged
merged 38 commits into from
Jul 19, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
7ce2242
enable view photo for group chat
nexarvo May 3, 2024
b12d3ef
create variable for filename
nexarvo May 6, 2024
349ea43
Merge branch 'main' into feat/39850
nexarvo May 12, 2024
5b6a7c6
add support for new chat view photo
nexarvo May 17, 2024
66d8edc
revert removing extension
nexarvo May 20, 2024
7d122da
use file name for new group chat draft
nexarvo May 20, 2024
91f73c8
add newGroupChat query param for report avatar
nexarvo May 23, 2024
20294f6
clean code
nexarvo May 23, 2024
c9993e8
Merge branch 'main' into feat/39850
nexarvo May 24, 2024
e4ae8b4
remove shouldDisableViewPhoto param
nexarvo May 24, 2024
b26a166
add: conditional for route depending on isNewGroupChat
nexarvo May 24, 2024
1e29cab
add: parser to convert isNewGroupChat to boolean
nexarvo May 24, 2024
0b0da6c
update: made isNewGroupChat query param optional
nexarvo May 24, 2024
10eade0
refactor: clean code
nexarvo May 24, 2024
232e787
fix: lint issues
nexarvo May 24, 2024
8ff95be
fix: lint issues
nexarvo May 24, 2024
284d1f0
fix: minor logic issues
nexarvo May 27, 2024
3bf6bcf
fix: shouldShowNotFoundPage condition
nexarvo May 29, 2024
2992240
Merge branch 'main' into feat/39850
nexarvo May 29, 2024
a4315b7
Merge branch 'main' into feat/39850
nexarvo Jun 4, 2024
f6f582c
fix: handle edge cases for group chat name
nexarvo Jun 4, 2024
cf3f942
fix: report title edge cases
nexarvo Jun 6, 2024
b91c010
fix: changes WIP
nexarvo Jun 6, 2024
9c5b15e
Merge branch 'main' into feat/39850
nexarvo Jun 10, 2024
c0db9ef
fix: remove policy from not found
nexarvo Jun 10, 2024
6d6953f
fix: lint issues
nexarvo Jun 10, 2024
9d4a66f
add: originalFileName to report onyx
nexarvo Jun 12, 2024
38d7f5b
fix: null checks for title
nexarvo Jun 12, 2024
530df19
fix: lint issues
nexarvo Jun 12, 2024
bc18cf6
add: handle offline behaviour for view photo
nexarvo Jul 4, 2024
55b8487
Merge branch 'main' into feat/39850
nexarvo Jul 4, 2024
db65135
add: isNewGroupChat to types after merge main
nexarvo Jul 4, 2024
86fb5e7
fix: view photo when chat created offline(optimistic)
nexarvo Jul 7, 2024
12d1da7
fix: lint issues
nexarvo Jul 7, 2024
3695b6b
Merge branch 'main' into feat/39850
nexarvo Jul 17, 2024
16ac2ff
Merge branch 'main' into feat/39850
nexarvo Jul 17, 2024
f2e6e7b
making a single getAllReports call and merging main
nexarvo Jul 17, 2024
1c3e7db
verify parameters of buildOptimisticChatReport
nexarvo Jul 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add newGroupChat query param for report avatar
  • Loading branch information
nexarvo committed May 23, 2024
commit 91f73c8d5e1a6096c542819f7698719dfd26983a
2 changes: 1 addition & 1 deletion src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ const ROUTES = {
},
REPORT_AVATAR: {
route: 'r/:reportID/avatar',
getRoute: (reportID: string) => `r/${reportID}/avatar` as const,
getRoute: (reportID: string, newGroupChat: boolean) => `r/${reportID}/avatar?newGroupChat=${newGroupChat}` as const,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not pass the query param if the newGroupChat param is not true

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NAB. Change the param name to isNewGroupChat

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Added conditional to return route based on isNewGroupChat here.

},
EDIT_CURRENCY_REQUEST: {
route: 'r/:threadReportID/edit/currency',
Expand Down
1 change: 1 addition & 0 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -884,6 +884,7 @@ type AuthScreensParamList = SharedScreensParamList & {
};
[SCREENS.REPORT_AVATAR]: {
reportID: string;
newGroupChat: string
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be boolean. Then in src/libs/Navigation/linkingConfig/config.ts add

parse: {
    newGroupChat: (newGroupChat: string) => newGroupChat === "true",
},

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is done.

};
[SCREENS.NOT_FOUND]: undefined;
[NAVIGATORS.LEFT_MODAL_NAVIGATOR]: NavigatorScreenParams<LeftModalNavigatorParamList>;
Expand Down
2 changes: 1 addition & 1 deletion src/pages/NewChatConfirmPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ function NewChatConfirmPage({newGroupDraft, allPersonalDetails}: NewChatConfirmP
avatarStyle={styles.avatarXLarge}
editIcon={Expensicons.Camera}
editIconStyle={styles.smallEditIconAccount}
onViewPhotoPress={() => Navigation.navigate(ROUTES.REPORT_AVATAR.getRoute(optimisticReportID.current))}
onViewPhotoPress={() => Navigation.navigate(ROUTES.REPORT_AVATAR.getRoute(optimisticReportID.current, true))}
/>
</View>
<MenuItemWithTopDescription
Expand Down
20 changes: 13 additions & 7 deletions src/pages/ReportAvatar.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type {StackScreenProps} from '@react-navigation/stack';
import React from 'react';
import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';
import {withOnyx} from 'react-native-onyx';
import {useOnyx, withOnyx} from 'react-native-onyx';
import AttachmentModal from '@components/AttachmentModal';
import Navigation from '@libs/Navigation/Navigation';
import type {AuthScreensParamList} from '@libs/Navigation/types';
Expand All @@ -21,15 +21,21 @@ type ReportAvatarOnyxProps = {

type ReportAvatarProps = ReportAvatarOnyxProps & StackScreenProps<AuthScreensParamList, typeof SCREENS.REPORT_AVATAR>;

function ReportAvatar({report = {} as Report, policies, isLoadingApp = true, groupChatDraft}: ReportAvatarProps) {
function ReportAvatar({report = {} as Report, policies, isLoadingApp = true, groupChatDraft, route}: ReportAvatarProps) {
const policy = policies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID ?? '0'}`];
const title = policy ? ReportUtils.getPolicyName(report, false, policy) : report?.reportName;
let avatarURL = policy ? ReportUtils.getWorkspaceAvatar(report) : report?.avatarUrl;
let fileName = policy?.originalFileName ?? title;
let avatarURL = undefined;
let fileName = undefined;

if (!avatarURL && groupChatDraft?.avatarUri && groupChatDraft?.originalFileName) {
avatarURL = groupChatDraft.avatarUri ?? null;
fileName = groupChatDraft.originalFileName ?? null;
const shouldUseGroupChatDraft = route.params.newGroupChat === 'true';
if(shouldUseGroupChatDraft) {
const [groupChatDraft] = useOnyx(ONYXKEYS.NEW_GROUP_CHAT_DRAFT);
avatarURL = groupChatDraft?.avatarUri ?? undefined;
fileName = groupChatDraft?.originalFileName ?? undefined;
}
else {
avatarURL = policy ? ReportUtils.getWorkspaceAvatar(report) : report?.avatarUrl;
fileName = policy?.originalFileName ?? title;
}

return (
Expand Down
2 changes: 1 addition & 1 deletion src/pages/ReportDetailsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ function ReportDetailsPage({policies, report, session, personalDetails}: ReportD
errors={report.errorFields?.avatar ?? null}
errorRowStyles={styles.mt6}
onErrorClose={() => Report.clearAvatarErrors(report.reportID ?? '')}
onViewPhotoPress={() => Navigation.navigate(ROUTES.REPORT_AVATAR.getRoute(report.reportID))}
onViewPhotoPress={() => Navigation.navigate(ROUTES.REPORT_AVATAR.getRoute(report.reportID, false))}
/>
) : (
<RoomHeaderAvatars
Expand Down
Loading