perf: project-wide optimization pass + UI/theme fixes

Optimization (audited across src/, typecheck green):
- Crash guards: PurchaseAuction data?.result + stray text-node, AuctionItemDetail
  length>0, LiveAuction user?.contractorId, KYC params guard
- Hoisted render-defined components: Login MinimalInput (keyboard-focus bug),
  TenderFullDetail Section/InfoBox (subtree remount)
- Memoized hot paths: Spreadsheet ColumnHeaderRow/DataRow, list makeStyles,
  shared infinite-query select (stops per-render flatMap)
- Removed hot-path/in-list console logs; SkeletonList 10->1 shimmer

UI/theme: themed AppToast, redesigned sidebar drawer, list empty states,
KYC WebView cleanup

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Abin Toppo
2026-07-24 11:14:23 +05:30
co-authored by Claude Opus 4.8
parent 7853bab639
commit 95d8e0a925
51 changed files with 1659 additions and 679 deletions
+5 -4
View File
@@ -133,10 +133,11 @@ These look like leftovers but were left deliberately. Read before "fixing".
- **`ResetPassword`** sends the new password as a URL query param. Migrated to
`core/http` (so it's redacted in logs) but the query-param placement is a
backend contract — see the `TODO(backend)` at the call site.
- **`PurchaseTenderTile` "details" tap** navigates to `'TenderDetail'`, an
unregistered route (a pre-existing latent bug). The intended destination is
ambiguous (the tile already renders an in-tile modal), so it awaits a product
decision rather than a guessed target.
- **`PurchaseTenderTile` "details" tap** (in `PurchaseTenderAllList`) now
navigates to the registered `LiveTenderDetail` route, passing the flat tender
`item` that screen reads from `route.params` — matching `LiveTenderTile`'s
working pattern. It previously targeted an unregistered `'TenderDetail'` route
(a latent bug that no-op'd with a dev warning).
---