mirror of
https://github.com/PR0M3TH3AN/Artstr-Studio.git
synced 2026-10-27 08:40:39 +00:00
Phase A — URL routing and modal skeleton: - Vercel rewrites for /u/:npub (with hash fallback for static hosts). - profileModal markup, CSS for banner/avatar/header/chips/designs grid. - decodeProfileIdentifier handles npub1, nprofile1, and raw hex. - popstate routing dispatches between /share/:id and /u/:npub. Phase B — Profile metadata fetch and render: - ensureProfilePageData with 5-minute TTL cache layered over the existing state.community.profiles and _feedCache.profiles caches. - Renders banner, avatar, display name, NIP-05, npub, about, lud16 / decoded lud06 copy chip, website chip. - Action row: Follow/Unfollow (kind-3 toggle), Block (with confirm), Copy npub, Open in nostr client. Self-view shows "This is you". - toggleProfileFollow added for arbitrary-pubkey follow/unfollow. Phase C — Designs grid and wiring: - Streams kind-30078 events by author into the designs grid using the existing buildFeedCard + diffWallCards plumbing. Filter dropdown reruns the render against the cache. - Author surfaces across the app (feed-card chip, design preview meta) now route to openProfilePage. - Top-right profile button opens the signed-in user's own profile page instead of the Mine tab. Phase D — Polish: - ESC closes profile / report / close-project / pdf-jpeg modals. - Initials avatar fallback with a pubkey-derived hue when picture is missing or 404s; same gentle fallback for banner. - Block-state banner with one-click Unblock on profiles you've blocked. - Async NIP-05 verification adds a ✓ when /.well-known/nostr.json resolves the claim back to the same pubkey. - Modal z-stack helper bringModalToFront so the design preview opened from inside a profile lands on top instead of being hidden behind it. - Closing a preview that was launched from a profile dismisses the community modal too, returning the user to where they came from. Co-Authored-By: Claude Opus 4.7 <[email protected]>
10 lines
257 B
JSON
10 lines
257 B
JSON
{
|
|
"outputDirectory": "src",
|
|
"rewrites": [
|
|
{ "source": "/share/:id", "destination": "/" },
|
|
{ "source": "/share/:id/", "destination": "/" },
|
|
{ "source": "/u/:npub", "destination": "/" },
|
|
{ "source": "/u/:npub/", "destination": "/" }
|
|
]
|
|
}
|