Refactor the application initialization and data fetching strategy to improve performance, reliability, and user experience, especially within the Flutter webview context.
Key changes:
- **Bootstrap & Initialization**: Implemented a `beforeInteractive` bootstrap script to handle locale correction and safe-area insets before the app becomes visible, reducing layout shift and flickering.
- **Locale Routing**: Enhanced the middleware proxy to prioritize authoritative cookie-based locales and improved `Accept-Language` header parsing to support complex device headers.
- **Assessment Progress**: Introduced a local assessment progress tracking mechanism that merges server-side completion data with local `localStorage` drafts, ensuring users don't lose progress during transitions.
- **Data Fetching**: Optimized React Query configurations by increasing `staleTime` and disabling aggressive refetching on window focus/mount to reduce unnecessary network overhead.
- **UI/UX Improvements**:
- Replaced `next/image` icon loading with an inline `UiIcon` component to eliminate per-icon network requests and ensure icons are available in the initial HTML.
- Implemented a Flutter-style skeleton shimmer animation using CSS transforms for smoother performance in the webview.
- Updated CSS variables to use `env(safe-area-inset-*)` for better mobile compatibility.
- **Refactoring**:
- Consolidated marriage-related data fetching into a unified `useFormSchemaQuery` pattern.
- Simplified component logic by removing redundant `silent-reloader` calls and manual cache-busting headers.
- Improved type safety for the Flutter bridge and window global objects.
- Implemented `QuestionDetailPage` to display individual questions based on slug.
- Created `QuestionsListPage` to list all questions with navigation.
- Added various question components: `QuestionButton`, `QuestionDate`, `QuestionDropdown`, `QuestionFile`, `QuestionNumber`, `QuestionRadio`, `QuestionSlider`, and `QuestionText`.
- Introduced `BookingTermsCard` for displaying terms and conditions.
- Added SVG icon for play action.
- Integrated `InformationSheet` component for user guidance.
- Created mock data for questions and structured data handling in `question-data.ts`.
- Developed a utility to add data locators for easier debugging in development.
- Created `Intro` component for the initial user interface with navigation buttons and introductory content.
- Implemented `SliderPage` component to handle slide transitions and user interactions.
- Developed multiple slide components (`SliderSlideOne`, `SliderSlideTwo`, `SliderSlideThree`, `SliderSlideFour`) to guide users through the registration process.
- Added `Button` component with countdown functionality and various styles.
- Introduced `InfoProgressCard` for displaying user progress in the registration process.
- Created `NavigationButton` for navigation actions within the app.
- Implemented `PageBackground` utility for dynamic background images based on user actions.