Update client-side redirection logic across multiple routes to ensure
routing decisions are only made after the profile data has been
successfully fetched from the server. This prevents premature or
incorrect redirects based on stale or incomplete hydrated data.
- Add `isFetched` check to `useEffect` guards in candidate-contact,
finding-match, new-match, request-accepted, and request-sent clients
- Update `QuestionsListClient` to wait for `isProfileFetched` before
triggering redirects
- Clean up dependency arrays to include new fetch status variables
Implement server-side extraction of marriage profile data from cookies
to seed the React Query cache during initial application load. This
reduces client-side loading states by providing immediate access to
profile information.
- Extract and parse marriage data in `RootLayout`
- Pass initial profile data to `Providers` component
- Seed `QueryClient` with `initialProfile` using `setQueryData`
- Update `getInitialMarriageProfile` to support data overrides
- Refine loading conditional in `NewMatchClient` to prevent flickering
when summary data is already present
Update client components to signal readiness to the Flutter wrapper
immediately upon mounting, rather than waiting for data hydration.
Additionally, adjust profile query settings to prioritize fresh
server-side data.
- Force `useHabibWebReady(true)` in all client-side route components
- Set `staleTime` to 0 in `useMarriageProfileQuery` to ensure fresh
data on mount
- Simplify `queryClient.setQueryData` logic in profile hook
Inject marriage data into the global window object from cookies during
the initial server-side render to prevent hydration mismatches and
reduce client-side latency.
- Add script injection in `RootLayout` to bootstrap `window.HABIB_MARRIAGE`
- Update `AuthBridge` to support `__HABIB_BOOTSTRAP__` and improved
cookie parsing logic
- Enhance `getClientCookie` with robust URI decoding error handling