[No QA] Update claim domain & verify domain link#77415
Conversation
updating the link name after this PR gets released: https://github.com/Expensify/App/pull/77168/files
updating the link name after this PR gets released: https://github.com/Expensify/App/pull/77168/files
Concierge reviewer checklist:
For more detailed instructions on completing this checklist, see How do I review a HelpDot PR as a Concierge Team member? |
|
@ZhenjaHorbach @lydiabarclay One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
| }; | ||
|
|
||
| const confirmRemoveCurrentTransaction = () => { | ||
| showConfirmModal({ |
There was a problem hiding this comment.
❌ PERF-4 (docs)
This function is passed as a prop to MoneyRequestConfirmationList but is not memoized with useCallback. This creates a new function instance on every render, causing unnecessary re-renders of the child component.
const confirmRemoveCurrentTransaction = useCallback(() => {
showConfirmModal({
title: translate('iou.removeExpense'),
prompt: translate('iou.removeExpenseConfirmation'),
confirmText: translate('common.remove'),
cancelText: translate('common.cancel'),
danger: true,
}).then((result) => {
if (result.action !== ModalActions.CONFIRM) {
return;
}
removeCurrentTransaction();
});
}, [showConfirmModal, translate, removeCurrentTransaction]);| threeDotsMenuItems={[ | ||
| { | ||
| icon: Expensicons.Trashcan, | ||
| icon: expensifyIcons.Trashcan, |
There was a problem hiding this comment.
❌ PERF-4 (docs)
The threeDotsMenuItems array is created inline on every render with a new function reference, causing unnecessary re-renders of HeaderWithBackButton.
const threeDotsMenuItems = useMemo(() => [
{
icon: expensifyIcons.Trashcan,
text: translate('iou.deleteSubrate'),
onSelected: () => {
showConfirmModal({
title: translate('iou.deleteSubrate'),
prompt: translate('iou.deleteSubrateConfirmation'),
confirmText: translate('common.delete'),
cancelText: translate('common.cancel'),
shouldEnableNewFocusManagement: true,
danger: true,
}).then((result) => {
if (result.action !== ModalActions.CONFIRM) {
return;
}
deleteSubrateAndHideModal();
});
},
shouldCallAfterModalHide: true,
},
], [expensifyIcons.Trashcan, translate, showConfirmModal, deleteSubrateAndHideModal]);| threeDotsMenuItems={[ | ||
| { | ||
| icon: Expensicons.Trashcan, | ||
| icon: expensifyIcons.Trashcan, |
There was a problem hiding this comment.
❌ PERF-4 (docs)
The threeDotsMenuItems array is created inline on every render with a new function reference, causing unnecessary re-renders of HeaderWithBackButton.
const threeDotsMenuItems = useMemo(() => [
{
icon: expensifyIcons.Trashcan,
text: translate('distance.deleteWaypoint'),
onSelected: () => {
showConfirmModal({
title: translate('distance.deleteWaypoint'),
prompt: translate('distance.deleteWaypointConfirmation'),
confirmText: translate('common.delete'),
cancelText: translate('common.cancel'),
shouldEnableNewFocusManagement: true,
danger: true,
}).then((result) => {
if (result.action !== ModalActions.CONFIRM) {
return;
}
deleteStopAndHideModal();
});
},
shouldCallAfterModalHide: true,
},
], [expensifyIcons.Trashcan, translate, showConfirmModal, deleteStopAndHideModal]);| iconRight={Expensicons.Trashcan} | ||
| onPress={() => setIsDeleteReceiptConfirmModalVisible(true)} | ||
| iconRight={expensifyIcons.Trashcan} | ||
| onPress={() => { |
There was a problem hiding this comment.
❌ PERF-4 (docs)
The inline arrow function creates a new function instance on every render. This should be extracted and memoized with useCallback.
const handleDeletePress = useCallback(() => {
showConfirmModal({
title: translate('receipt.deleteReceipt'),
prompt: translate('receipt.deleteConfirmation'),
confirmText: translate('common.delete'),
cancelText: translate('common.cancel'),
danger: true,
}).then((result) => {
if (result.action !== ModalActions.CONFIRM) {
return;
}
deleteReceipt();
});
}, [showConfirmModal, translate, deleteReceipt]);
// Then use:
<Button
shouldShowRightIcon
iconRight={expensifyIcons.Trashcan}
onPress={handleDeletePress}
innerStyles={styles.bgTransparent}
large
/>|
A preview of your ExpensifyHelp changes have been deployed to https://04d320ef.helpdot.pages.dev ⚡️ Updated articles: |
HelpDot Documentation ReviewOverall AssessmentThis PR updates a single documentation link in the SAML SSO setup guide. The change updates the link text from "Learn how to verify a domain" to "Learn how to claim and verify a domain" and updates the URL from Critical Issue: This PR has a dependency problem. It references a file ( Scores Summary
Key Findings
Recommendations
Files Reviewed
Merge OrderThis PR should be merged after PR #77168 to maintain link integrity and avoid broken documentation links. Note: This PR also contains TypeScript code changes unrelated to documentation (refactoring ConfirmModal usage). Those changes were not evaluated as part of this HelpDot documentation review. |
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
This reverts commit 29dcc71.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.2.79-0 🚀
|
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.2.81-0 🚀
|
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.2.81-5 🚀
|
|
🚀 Deployed to production by https://github.com/AndrewGable in version: 9.2.81-5 🚀
|
Explanation of Change
updating the link name after this PR gets released: https://github.com/Expensify/App/pull/77168/files
Fixed Issues
$ #69195
PROPOSAL:
Tests
Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodWaiting for Copylabel for a copy review on the original GH to get the correct copy.STYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)/** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari