feat: Phase 1 remaining — FK profiles, UI sizing, type safety (#35)#80
Merged
Conversation
Remove VirtualTryOnTeaser, CommunityLeaderboard, PersonalizeBanner, MainFooter — no longer rendered. Clean dead exports and imports. #68 resolved: EditorialSection/TrendingListSection replaced by TrendingPostsSection/EditorialMagazine with enrichArtistName dedup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add route-level error boundary with retry + home navigation. Restyle global-error.tsx to match brand design (dark theme, #eafd67 accent). Both capture exceptions to Sentry. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Create /admin/login with Supabase email/password auth. Exempt /admin/login from proxy protection. Redirect unauthenticated admin users to /admin/login instead of /. Brand-consistent dark theme with #eafd67 accent. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Suspense skeleton for explore page, stabilize image containers with min-height/aspect-ratio, fix AnimatePresence and key issues in actively rendered components. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reflect main page renewal, warehouse FK migration, explore search, admin login, error pages, decoded pick curation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move /admin/login page to (admin-auth) route group so it renders outside admin layout.tsx auth check, preventing infinite 307 loop. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…redirect (#64) Replace redirect("/admin/login") with bare children render in layout.tsx when user is not authenticated. proxy.ts handles redirecting non-login admin routes. Remove conflicting (admin-auth) route group. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Apply dark theme (#050505), #eafd67 accent, DECODED wordmark, and Explore CTA. Consistent with error.tsx and global-error.tsx. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hide modal container (visibility: hidden) before router.back() so GSAP context revert doesn't briefly restore opacity on unmount. Applied to both desktop fade-close and mobile swipe-close paths. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Document generated API structure, orval.config.ts settings, regeneration workflow, usage patterns, and extension points. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add nullable warehouse FK fields to PostListItem DTO so frontend can use them for filtering. Both list_posts and admin_list_posts now return these fields. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add nullable warehouse FK brand_id to SolutionResponse and SolutionListItem. Complements artist_id/group_id on PostListItem. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…_id) (#62) Regenerated from running server. PostListItem now includes artist_id/group_id, Solution DTOs include brand_id. Run `bun run generate:api` to update local frontend types. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Support filtering posts by warehouse FK IDs alongside existing artist_name/group_name string filters. Update line count stats. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pass warehouse artistProfileMap from server component to ExploreClient. Display artist avatar and name on explore grid cards using next/image when profile data exists and no search highlight is active. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#79) Show artist/group name on every explore card (not just search mode). Display profile avatar when warehouse match exists. Remove incorrectly hardcoded hasMagazine from explore page. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Thread artistProfileMap from server to ImageDetailModal/Content. Display profile avatar + name in editorial preview and full views. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…n explore cards (#79) Remove artist overlay from explore cards (revert to search-only). Add buildBrandProfileMap to warehouse-entities. Show brand logos on items in detail modal/page. Route all profile images through image-proxy to avoid CORS. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ap (#79) artist_name "danielle" has no warehouse entry, but group_name "NewJeans" does. Try artist_name first, fall back to group_name for profile image lookup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Artists/groups limit 50→500 to include all warehouse records. Lisa was outside top-50 by created_at, causing profile lookup miss. Remove temporary console.log debug statements. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
spotToItemRow was hardcoding brand: null. Now extracts from solution.metadata.brand which contains the brand name string (e.g. "Celine"). Enables brand logo display via brandProfiles lookup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… call (#79) Same limit issue as artists — Celine was outside top 100 by created_at. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Pass brandProfiles to MagazineItemsSection and render brand logo next to brand name in item details. This is the component that renders items in explore-preview (magazine) mode. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Defines size adjustments for artist profile (48px centered), magazine item images (compact w-48), and brand logos (28px) to unify explore-preview, full page, mobile, and desktop layouts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Artist profile: 48px centered layout (both explore-preview and full page) - Magazine items: compact image md:w-48, brand logo 28px - Brand text: unified typography-overline across compact/full Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bump explore-preview main item image from w-48 to w-52 to create more visual hierarchy over Similar Items cards. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Updated via supabase gen types typescript. Reflects current DB schema including warehouse tables. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Cast solution.keywords to string[] | null for type safety - Add price_currency fallback ?? "KRW" - Rename media_title → title (TryGallerySection) - Format Rust chained method calls (clippy style) - Align hooks/queries with updated supabase types Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update STATE.md and ROADMAP.md for phase-1 progress - Update warehouse schema docs - Remove obsolete image-ratio/item-image plans - Add editorial UI sizing plan and search filter spec - Update FLW-08 my-try flow spec Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
1차 릴리즈 (Epic #35) 잔여 작업 통합 PR.
Closes
Closes #60, Closes #62, Closes #63, Closes #64, Closes #65, Closes #66, Closes #68, Closes #79
1차 릴리즈 잔여 (이 PR 범위 밖)
Test plan
🤖 Generated with Claude Code