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
Relocate the profile edit/lock button from inside the `<main>` element
to outside of it. This prevents the `page-slide-enter` animation's
`will-change: transform` property from creating a new containing block,
which was causing layout issues with `position: fixed` elements.
Refactor various client components to improve UI responsiveness, spacing, and icon sizing. Additionally, update the profile redirection logic to allow users to access specific sections when their profile is not locked.
- Update `FindingMatchClient` with improved min-height, padding, and responsive spacing.
- Standardize icon sizes using `size-[18px]` in `FindingMatchClient` and `NewMatchClient`.
- Refactor `isProfileRedirecting` in `QuestionsListClient` using `useMemo` to allow access to `finding-match` when `can_edit_profile` is true.
- Adjust `Button` component to use flexbox for better text alignment and centering.