Improve application stability and performance by optimizing Zustand store usage, implementing memoization patterns, and introducing persistent authentication.
- **State Management**:
- Refactor Zustand selectors to use `useShallow` and `getState()` to prevent unnecessary re-renders and infinite loops in hooks.
- Implement `persist` middleware for `authStore` to maintain user sessions across restarts.
- Introduce `buildStateCached` in `themeStore` to reduce redundant theme object computations.
- **Performance & Rendering**:
- Implement `useMemo` for stable object/array references in `ImageGallery` and list components to prevent expensive re-renders.
- Replace inline arrow functions with `useCallback` in complex screens like `ChatScreen` and `MessageListScreen`.
- Optimize `FlashList` usage by providing stable `key` and `extraData` props.
- **Architecture**:
- Decouple unread count fetching by introducing `useUnreadCountQuery` (React Query) for better caching and synchronization.
- Add `useChannels` hook to centralize channel data fetching.
- Refine `SessionGate` logic to allow immediate rendering of authenticated users while verifying in the background.