Skip to content

Feat/threads author pages#3050

Merged
HarshMN2345 merged 19 commits into
mainfrom
feat/threads-author-pages
Jun 15, 2026
Merged

Feat/threads author pages#3050
HarshMN2345 merged 19 commits into
mainfrom
feat/threads-author-pages

Conversation

@HarshMN2345

Copy link
Copy Markdown
Member

What does this PR do?

(Provide a description of what this PR does.)

Test Plan

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

Related PRs and Issues

(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

Have you read the Contributing Guidelines on issues?

(Write your answer here.)

@appwrite

appwrite Bot commented Jun 12, 2026

Copy link
Copy Markdown

Appwrite Website

Project ID: 69d7efb00023389e8d27

Sites (1)
Site Status Logs Preview QR
 website
69d7f2670014e24571ca
Ready Ready View Logs Preview URL QR Code

Website (appwrite/website)

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Queued Queued View Logs Preview URL QR Code


Tip

Sites support three domain rule types: Active deployment, Git branch, and Redirect

@greptile-apps

greptile-apps Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces author profile pages at /threads/authors/[id], linking Discord message authors to a dedicated page showing their bio, stats, and threads. It also enriches thread cards and detail pages with resolved badges, participant counts, and last-activity timestamps.

  • New author route (+page.server.ts / +page.svelte): loads author and their threads separately with graceful fallback, renders a profile with full meta/OG/JSON-LD tags, and shows "Showing X of Y" when the 25-thread fetch limit is hit.
  • Thread UI enhancements: resolved badge, participant-count tag, timeAgo relative timestamps on cards, and reaction counts on messages — author names in MessageCard now link to the author page.
  • Icon/sprite additions: persons SVG added in source and optimised forms; registered as zzz-persons in the sprite and IconType, though the thread detail page still uses an inline SVG for the participant badge.

Confidence Score: 5/5

Safe to merge; all changes are additive new pages and incremental UI enhancements with no destructive side-effects.

The new author page is well-structured with proper error boundaries, meta tags, and graceful thread-fetch fallback. Remaining issues are style-level — the zzz- prefix in the public icon API, a duplicated isResolved regex, and an inline SVG bypassing the icon component added in the same PR — none affect correctness or runtime behaviour.

helpers.ts still hardcodes the authors collection ID (flagged in previous reviews); types.ts exposes the zzz-persons name as a public API entry.

Important Files Changed

Filename Overview
src/routes/threads/authors/[id]/+page.server.ts New SvelteKit load function; separates getAuthor and getAuthorThreads into independent try-catch blocks so a thread-fetch failure degrades gracefully.
src/routes/threads/authors/[id]/+page.svelte New author profile page with avatar, bio, role badges, stats, and thread list; includes all required meta/OG tags and JSON-LD structured data.
src/routes/threads/helpers.ts Adds getAuthor (hardcoded 'authors' collection ID — previously flagged) and getAuthorThreads (uses env-var collection ID correctly).
src/routes/threads/ThreadCard.svelte Adds resolved badge, time-ago display, and participant count; isResolved regex is duplicated from the thread detail page.
src/routes/threads/[id]/+page.svelte Adds resolved badge and participant-count tag using raw inline SVG instead of the zzz-persons icon added in this same PR; isResolved regex duplicated from ThreadCard.
src/lib/components/ui/icon/types.ts Adds 'zzz-persons' to IconType — the zzz- prefix is a sort-order hack that leaks into the public API.
src/routes/threads/[id]/MessageCard.svelte Author name conditionally linked to /threads/authors/[id] when author_id is present; adds reaction count display.
src/routes/threads/types.ts Adds DiscordAuthor interface and extends DiscordThread/DiscordMessage with optional fields.
src/lib/utils/metadata.ts Adds createAuthorPageSchema generating schema.org ProfilePage + Person JSON-LD with interaction statistics.
src/routes/docs/references/[version]/[platform]/[service]/+page.svelte Adds formatGroup helper to split camelCase API group names for sidebar display; small isolated change.

Reviews (9): Last reviewed commit: "Fix implicit any type on threads array" | Re-trigger Greptile

Comment thread src/routes/threads/helpers.ts Outdated
Comment thread src/routes/threads/authors/[id]/+page.server.ts
Comment thread src/routes/threads/authors/[id]/+page.svelte
Comment thread src/routes/threads/authors/[id]/+page.svelte
Comment thread src/routes/threads/helpers.ts
Comment thread vite.config.ts Outdated
Comment thread src/routes/threads/authors/[id]/+page.server.ts Outdated
@HarshMN2345 HarshMN2345 merged commit d7dde6e into main Jun 15, 2026
7 checks passed
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