-
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
perf: Cache search options #38207
perf: Cache search options #38207
Conversation
Triggering a test build |
This comment was marked as outdated.
This comment was marked as outdated.
Rerunning desktop |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
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.
LGTM and tests well, a few NAB comments
let lastUpdatedReport: OnyxEntry<Report>; | ||
|
||
Onyx.connect({ | ||
key: ONYXKEYS.COLLECTION.REPORT, |
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.
should we address this given the linked PR was merged? @hungvu193
Resolved conflicts and addressed the comments. |
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.
Nice work on this
See: #38207 (comment) for why the merge with failing test |
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
@mountiny was this PR actually deployed? I see you linked in the Deploy Checklist but that last comment here confuses me. |
i'm pretty sure it's deployed and causing this deploy blocker, already tagged everyone on it but if you're still around and can lend a hand please do #39607 |
@bondydaa Yes it was deployed, the github action to post comment has also been broken 😵💫 |
🚀 Deployed to production by https://github.com/Julesssss in version: 1.4.60-13 🚀
|
@@ -82,6 +83,7 @@ function App({url}: AppProps) { | |||
FullScreenContextProvider, | |||
VolumeContextProvider, | |||
VideoPopoverMenuContextProvider, | |||
OptionsListContextProvider, |
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.
Placing this context provider here caused #39710 – we needed to move it inside AuthScreens
so that it would be destroyed each time the user logs out.
}); | ||
const personalDetails = usePersonalDetails(); | ||
|
||
useEffect(() => { |
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.
Coming from #40493, we missed updating the cache when a report is deleted.
Details
This PR introduces performance improvement for loading searchable lists by caching the options and filtering them when accessing the list.
Fixed Issues
$ #37878
PROPOSAL:
Tests
Before each test: close & open or refresh the app, to make sure options are not cached before first opening
Search page:
New chat
New room chat
Request money
Send money
Assign task
Assign task - share somewhere
Invite to workspace
Share logs
Offline tests
QA Steps
Before each test: close & open or refresh the app, to make sure options are not cached before first opening
Search page:
New chat
New room chat
Request money
Send money
Assign task
Assign task - share somewhere
Invite to workspace
Share logs
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
new.chat.mov
request.money.mov
room.members.mov
assign.task.mov
invite.workspace.mov
share.logs.mov
share.somewhere.mov
send.money.mov
search.mov
Android: mWeb Chrome
new.chat.mov
request.money.mov
chat.room.mov
assign.task.mov
invite.workspace.mov
share.logs.mov
share.somewhere.mov
send.money.mov
search.mov
iOS: Native
search.mp4
room.chat.mp4
request.money.mp4
send.money.mp4
assign.task.mp4
share.somewhere.mp4
invite.workspace.mp4
start.chat.mp4
iOS: mWeb Safari
search.mp4
request.money.mp4
send.money.mp4
assign.to.task.mp4
share.somewhere.mp4
invite.workspace.mp4
share.log.mp4
room.chat.mp4
start.chat.mp4
MacOS: Chrome / Safari
request.money.mov
assign.task.mov
invite.member.mov
room.chat.mov
share.log.mov
share.somewehere.mov
send.money.mov
search.mov
MacOS: Desktop
room.chat.mov
request.money.mov
assign.task.mov
invite.mov
share.log.mov
share.somewhere.mov
send.money.mov
start.chat.mov
search.mov