Skip to content

Resources: Media showcase, members migration & competitions - #6

Open
xliry wants to merge 44 commits into
banodoco:mainfrom
xliry:main
Open

Resources: Media showcase, members migration & competitions#6
xliry wants to merge 44 commits into
banodoco:mainfrom
xliry:main

Conversation

@xliry

@xliry xliry commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Data layer migration: Refactored all hooks from profiles/user_id to members/member_id table with inline Supabase joins — eliminates separate profile queries and uses richer member data (social links, bio, real_name)
  • CinematicVideoPlayer: New shared video player with HLS via hls.js, MP4 fallback, YouTube embed, custom controls (play/pause, mute, progress bar, fullscreen), auto-hide UI, and big play button
  • Enhanced detail pages: Art detail shows title, tools used, linked assets with download links, related art sidebar. Resource detail shows lora_base_model/lora_type badges, media gallery, linked art grid, related assets from same creator
  • Creator profiles: Social links (website, Twitter, Instagram), real name, breadcrumb navigation, art/resources tabs
  • Creators section on homepage: Featured creators grid ranked by content count
  • Competitions page (/competitions): Browse Arca Gidan prize and community competition entries with tab selector
  • Navigation: Breadcrumbs on all detail pages, full entity interconnection (art ↔ assets ↔ creators ↔ competitions)
  • New hooks: useFeaturedCreators, useLinkedAssets/useLinkedMedia, useCompetitions/useCompetitionEntries

Test plan

  • Verify /resources page loads art, assets, and creators sections
  • Click an art piece → art detail shows video player, creator card, linked assets with download links
  • Click a resource → resource detail shows gallery, lora badges, related assets
  • Click a creator → profile page shows avatar, social links, art/resources tabs
  • Navigate /competitions → competition entries load with prize/community tabs
  • Breadcrumbs work on all detail pages (Resources / Art, Resources / Assets, etc.)
  • Mobile responsive — all pages and video player work on small screens

🤖 Generated with Claude Code

peteromallet and others added 30 commits February 14, 2026 01:06
- New section at bottom of /resources with featured latest week (left)
  and 2x2 grid of previous weeks (right)
- /resources/art-picks index page with paginated grid of all ~104 weeks
- /resources/art-picks/:weekId detail page with intro text and 10 video slots
- All content is placeholder data ready to swap in real data later
- Dark theme applied to all /resources sub-routes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Hero section with "Art & Intelligence" typography and spotlight
  carousel previewing 3 featured artists
- "The Forge" section for community LoRAs/workflows with icon header
- "The Gallery" section with editorial art picks layout: featured
  large card + sidebar with recent archives
- Art picks detail page with varied-column editorial video grid
- "The Archive" index page with staggered animation grid
- Motion animations on section entrances
- All real data hooks (Supabase) preserved, mock data only for
  art picks and spotlight carousel

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Install hls.js package for HLS video playback
- Inline discord constants instead of missing @/lib/discord module
- Fix undefined type errors in Timeline tooltip
- Add hls.js type declarations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace CompactSpotlight hero with full-screen editorial design featuring
gradient blob background, magazine cover mockup, and stats bar. Add
Briefing sidebar layout for news section. Wrap modal in AnimatePresence.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Community Art section powered by art_sharing Discord channel
- Add Community Resources section powered by resources Discord channel
- Create shared Discord data layer (types, hooks, media refresh)
- Remove mock ArtPicks section and routes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Render videos as <video> with preload=metadata instead of <img>
- Add fallback UI for failed media loads
- Ensure message_id is string for refresh API
- Truncate resources feed content to 4 lines
- Limit embeds to 1 per card
- Remove redundant section header

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add responsive Tailwind prefixes across Resources page components for
  proper mobile layout (spacing, text sizes, padding, modal elements)
- Remove 11 dead exports and 4 unused constants (Hero config)
- Replace useEffect state-sync anti-pattern with render-time ref check
  for filter-driven page reset

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace placeholder gradient with /bndc/0001.jpg background image
that shifts and scales on scroll for a cinematic parallax effect.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
156 images used for cinematic scroll-driven animation in hero section.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Preloads all frames into browser cache and swaps img.src directly
via ref on scroll for 60fps cinematic playback without React re-renders.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sequence completes at 50% scroll instead of 100%, and frame index
is clamped to prevent extrapolation past the last frame.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…play button

- Swap 155-frame bndc sequence for 25 assorted_propaganda images
- Remove bndc directory from repo
- Play button now toggles autoplay slideshow on magazine cover

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d upload flows

Rebuild the /resources section into a content platform with art-first gallery,
structured resource cards, user profiles with tabs, Discord OAuth, and upload
forms for art and resources. Includes DB migration, data migration scripts,
and 23 new files across 8 implementation phases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…unity_resources

Replace custom art_pieces and community_resources tables with the existing
media (288 rows) and assets (60 rows) tables. Art hooks now query media with
cloudflare URLs and HLS playback; resource hooks query assets with
primary_media_id joins. Resources page reduced from 4 to 3 sections
(Briefing, Art Gallery, The Forge). Upload pages insert into media/assets.
Profile queries use description column instead of bio.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refactor: use existing media/assets tables instead of art_pieces/comm…
…d CTA

- Trim art gallery and Forge grids so last row is always full
- Add top padding on detail/submit/profile pages to clear fixed header
- Replace resource modal with page navigation via Link
- Add weekly art sharing Discord card to art gallery grid

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>
Pass a dummy userId until artPiece is loaded to prevent
useArtPieces(undefined) from fetching all art unfiltered.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolved 4 merge conflicts from upstream's homepage/resources cleanup commit:
- Header.tsx: kept auth features (Discord login, user menu) with corrected imports
- useCommunityTopics.ts: kept extracted fetchTopics module
- Hero/config.ts: trivial whitespace
- Timeline.tsx: adopted upstream's CSS variable approach for chart colors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
xliry and others added 14 commits February 19, 2026 04:18
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Kept our auth/resources features (user menu, Resources links in header/hero)
while accepting upstream's fixes (snap-end footer, Timeline tooltip, Hero config).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Migrate all hooks from profiles/user_id to members/member_id
  (useArtPieces, useArtPiece, useCommunityResources, useCommunityResource,
   useUserProfile, useResources) with inline Supabase joins
- Build CinematicVideoPlayer with HLS, custom controls, fullscreen,
  progress bar, buffering states, and YouTube embed support
- Enhance ArtDetail with linked assets section, breadcrumbs, tools used
- Enhance ResourceDetail with linked media grid, CinematicVideoPlayer
- Enhance UserProfile with social links (website, twitter, instagram),
  real name, breadcrumbs
- Add useLinkedAssets/useLinkedMedia hooks for asset_media junction
- Add useCompetitions/useCompetitionEntries hooks for competition support
- Update AuthContext to resolve profiles from members via auth_user_id
- Update SubmitArt/SubmitResource to use member_id instead of user_id

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Was missing from package.json causing Vercel build failure.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add useFeaturedCreators hook (top creators by content count)
- Add Creators section to /resources homepage with avatar grid
- Add Competitions page (/competitions) with prize/community tabs
- Add Competitions CTA banner on homepage
- Add /competitions route to App.tsx

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Art detail: show title, add download links on linked assets
- Resource detail: show lora_base_model/lora_type badges,
  add related assets from same creator section
- CommunityResourceItem: add downloadUrl, loraBaseModel, loraType fields
- useCommunityResources: include lora fields in select query

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Static Arca Gidan items have non-UUID IDs so they cannot be resolved
by useArtPiece. Non-UUID items now render as non-clickable divs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fetches competition_entries joined with media+members from Supabase,
so all 138 entries are clickable with real UUIDs and creator profiles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Asset detail pages now load regardless of admin_status
- Creator profile pages show all their assets, not just curated ones
- Global resources feed still filters to curated/listed only

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants