General purpose memoization tool#43538
General purpose memoization tool#43538kacper-mikolajczak wants to merge 15 commits intoExpensify:mainfrom
Conversation
| @@ -0,0 +1,34 @@ | |||
| type CacheMode = 'array' | 'map'; | |||
There was a problem hiding this comment.
Could you maybe add a comment somewhere about when you should use which mode?
There was a problem hiding this comment.
Sure thing! I have added comments, let me know if they are descriptive enough 🙏
|
After consideration of plans on POC v2:
I am positive we should pick Additionally, after going through its codebase, there are many short-circuit tricks in comparison algorithms where should lower level of comparison complexity. Also, I did not find any stable library for serialization which may be potential candidate. |
Great! I like it. Thanks! |
|
This PR is continued in #43868 |
Details
PR implements POC of memoization tool for general purpose use. The main goal is to:
Fixed Issues
$ #42200
PROPOSAL:
Tests
Offline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.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
MacOS: Desktop