Improves app UI performance, better UX#92
Merged
Kenya-DK merged 9 commits intoKenya-DK:better-backendfrom Feb 8, 2026
Merged
Conversation
- Lazy Tab Rendering - on nav-tab change, renders only the active page-tab to improve performance (20-30ms win on each tab) - Decreased default Trading Analytics transaction page size from 50 to 20 elements (over 300ms win on first load, i'll refactor it soon) - Financial Report now lazy-loading (another 50ms win for Trading Analytics tab) - AVG 35ms faster navtab switching, but still it's 100-150ms per swich, global refactor soon.
- Lazy load routes to enhance performance - Prefetch routes on hover (up to 30ms win) - avg load time decreased to ~70ms from ~130 on route change
- Context value memorization to prevent unnecessary re-renders
- no more recreation of navlinks on each rerender
There was a small issue with unnecessary API calls, on each render of ItemName component calling to cached `tradableItems` and `weapons`, so if in table were 100 items, each item calling api 2x times = 200 API calls. - Created `cache.context.tsx` to load tradableItems and weapons once on app level - Changed `ItemName.tsx` to use cache context instead of app context
- memoizes TransactionListItem, ChatMessage, WFMOrder, WFMAuction, and RivenPreview to reduce unnecessary re-renders - switches RivenPreview weapons source to cache context - also memorizes tabs
Need to stom my memo() minigun
- Replaced `isLoading` with `isFetching` to prevent unnecessary loading states during data refetching, ensuring smoother navigation and improved user experience. Updated all DataTables to use `isFetching` instead of `isLoading` for better performance during data refetching. `isLoading` is better for small DataTables, you can revert it to old behaviour if there no much items to load. (prevent loader flashes)
- it fixes UI freezing when trying to change page, allows to interupt DataTable loading There is still issue when DataTable loaded (after preloader starts to fade), if user tries to change page in this time he will encounter UI freezing up to 100-150ms D: Fix for that is Chunk Rendering or Virtualization, but it is a overkill?
f0774c5 to
fe80aed
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Improved app routing speed:
What was done:
DataTableto useisFetching, this improves UX on huge tables loadingisLoadingfor small tables - prevents preloader blinksrouteLoaders.tsItemName,RivenPreview,DisplayPlatinum).ItemNamecreation, also inRivenPreview, usescache.context.tsx.FinancialReport, load only on button click.prettier made some linefarming, thanks for that