feat: UI polish — page titles, login redirect, avatar, public profile link, map home button - #70
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…button - generateMetadata now reads SERVER_API_URL (Docker internal network) before falling back to NEXT_PUBLIC_API_URL (browser-accessible) - Home button uses flyTo() instead of setViewport() so the map animation triggers onMoveEnd → bounds update → cluster re-fetch Fixes #21, #35 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ient Covers all Sonar-flagged 0% coverage files: - Route layout metadata exports and child rendering (5 layouts) - generateMetadata for videos/[id] and users/[id] (success, error, fallback) - VideoDetailClient param extraction (string and array) - MapContainer loading state (isClient: false) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add global coverageThreshold (75/65/70/75%) so new uncovered files fail the build before PR creation - Bump components/map/ thresholds from 44-48% to 50-55% (actual: 54-60%) - Extract isHome ternaries in NavBar into useNavStyles() hook to reduce cognitive complexity flagged by SonarCloud Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Coverage after merging feature/ui-polish into master will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Implements 5 web-app UI polish issues on a single branch:
title.template(%s | AccountabilityAtlas), static route layouts for login/register/map/profile/submit, and server-sidegenerateMetadatafor dynamic video detail and public profile pages?redirect=param with current path; login page reads it and redirects back after successful auth/users/{id}flyTo()to reset the map viewport and refresh clustersAlso fixes a Docker networking bug: added
SERVER_API_URLenv var sogenerateMetadatacan reach the API gateway inside Docker (wherelocalhost:8080doesn't work).Test plan
npm test)Closes #21
Closes #35
Closes #41
Closes #65
Closes #66
🤖 Generated with Claude Code