perf: add Zustand selectors to prevent cascading re-renders

Replace all bare useAuthStore(), useBlockingStore(), and
useSuccessNotification() calls with individual field selectors.
This prevents components from re-rendering when unrelated store
fields change.

- 21 useAuthStore usages across 20 files: individual selectors
  for 1-2 fields, useShallow for 3+ fields
- 5 useBlockingStore usages: individual selectors
- 2 useSuccessNotification usages: individual selectors
This commit is contained in:
Fringg
2026-02-23 17:15:30 +03:00
parent 30ece694d4
commit 03ad255bf1
22 changed files with 70 additions and 26 deletions

View File

@@ -18,9 +18,9 @@ export default function WebSocketNotifications() {
const navigate = useNavigate();
const queryClient = useQueryClient();
const { showToast } = useToast();
const { refreshUser } = useAuthStore();
const refreshUser = useAuthStore((state) => state.refreshUser);
const { formatAmount, currencySymbol } = useCurrency();
const { show: showSuccessModal } = useSuccessNotification();
const showSuccessModal = useSuccessNotification((state) => state.show);
const handleMessage = useCallback(
(message: WSMessage) => {