- Changed GTM script from afterInteractive to beforeInteractive
- Changed GA4 scripts to beforeInteractive for earlier loading
- Hardcoded IDs to avoid template literal issues
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added Google Tag Manager (GTM-WN8H6RTC) script and noscript
- Added padding-top on mobile hero to avoid header overlap
- Reduced subtitle text size on mobile for better readability
- Added Inscription/Connexion buttons on mobile for non-authenticated users
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add tsconfig.sonar.json with moduleResolution: "node" for SonarQube compatibility
- Update sonar-project.properties to use tsconfig.sonar.json
- Add metadataBase to metadata export for Open Graph images
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Make GoogleOAuthProvider conditional in layout.tsx (only render if clientId exists)
- Add hasGoogleAuth and hasFacebookAuth flags in login page
- Conditionally render OAuth buttons and section only when configured
- Add fallback message when OAuth is not configured
- Prevents "Missing required parameter client_id" error when NEXT_PUBLIC_GOOGLE_CLIENT_ID is not set
This allows the app to run without OAuth credentials configured, making deployment easier when OAuth is not yet set up.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>