alpha
Login
or
Join now
zephyra.zone
/
grain
Star
1
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
grain.social is a photo sharing platform built on atproto.
Star
1
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
grain
/
app
/
lib
/
at
main
3 folders
9 files
Chad Miller
feat: add owner-only gallery edit page
5w ago
b5a1f49b
actions
feat: add owner-only gallery edit page Adds a full edit UI at /profile/[did]/gallery/[rkey]/edit, accessible via the overflow menu on gallery cards for the owner account. Supports editing title, description, location, and labels; replacing, adding, removing, and reordering photos using the same canvas resize pipeline as the create flow; and per-photo alt text. Also populates the galleryState field (item URI and position) on photoViews in the hydration layer so the edit page can update and delete gallery.item records without extra fetches. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 month ago
components
feat: add owner-only gallery edit page Adds a full edit UI at /profile/[did]/gallery/[rkey]/edit, accessible via the overflow menu on gallery cards for the owner account. Supports editing title, description, location, and labels; replacing, adding, removing, and reordering photos using the same canvas resize pipeline as the create flow; and per-photo alt text. Also populates the galleryState field (item URI and position) on photoViews in the hydration layer so the edit page can update and delete gallery.item records without extra fetches. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 month ago
utils
docs: note deferred follow-ups for locations and cameras Inline comments near each relevant file capturing work discussed but not shipped in ca49c1b: /place/[slug] URL scheme, capturing osm_type/osm_id from Nominatim, source of the "USA" country variant, limit param for the index pages, and native parity with the multi-cell union behavior.
2 months ago
auth.ts
feat: add create account button to login modal Add createAccount() in auth.ts that redirects to /oauth/login with prompt=create and pds hint. Add "Don't have an account? Create one" link to the login modal. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago
feed.ts
hatk rewrite Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
labels.ts
hatk rewrite Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
mutations.ts
feat: add blocks and mutes (#10) - Block/mute records with bidirectional content filtering on feeds, stories, comments, and notifications - Muted comments returned with `muted` flag for client-side collapse/expand UI - Blocked comments removed entirely from threads - Settings > Moderation > Blocked Users / Muted Users management pages - Block/mute state shown on profile pages with overflow menu actions - Self-block prevention, query invalidation on mutations - Lexicons for block record, muteActor/unmuteActor procedures, getBlocks/getMutes queries - getSuggestedFollows excludes blocked/muted users - getActorProfile uses authenticated viewer instead of params.viewer - getMutes cursor aligned with getBlocks (packCursor/unpackCursor) - Seeds with block test records Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago
notifications.ts
feat: add comment favorites with notifications Add ability to favorite comments using the existing social.grain.favorite lexicon. Adds favCount and viewer state to the comment view, hydrates favorites in getCommentThread, sends push notifications for comment favorites, and includes comment-favorite in the notification feed with grouping support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago
preferences.ts
fix: make home dynamically render first pinned feed - `/` now renders whatever feed is first in the pinned list - Add dedicated `/feeds/recent` route so recent is accessible when not first - Update FeedTabs, SidebarRight, MobileDrawer to link first pin to `/` - Migrate old `path: "/"` to `/feeds/recent` for existing users - Redirect to custom feed path if non-core feed is pinned first Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago
queries.ts
feat: minimal right sidebar with place and camera dedup - Flatten sidebar cards into a single continuous minimal layout; search as bordered input, uppercase section labels, compact footer with dot separators. - Dedupe locations server-side: getLocations groups by (locality, region, country) with USA→US country alias. getFeed?feed=location accepts a name param and unions all H3 cells sharing the display label via case-insensitive address matching. - Return h3Cells on LocationItem so LocationMapBanner can render a centroid + dynamic zoom across all cells in a place (was showing only one cell). - Normalize camera names server-side in getCameras: strip manufacturer legalese, dedup adjacent tokens, title-case all-caps brands. Rows that collide after normalization merge. Camera feed matches by normalization-equivalence so old raw URLs and new cleaned URLs both work. - Add /cameras and /locations index pages with "See all →" links in the sidebar when the section has more than seven items.
2 months ago
stores.ts
fix: derive isAuthenticated from $page.data instead of writable store Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
utils.ts
feat: add compact count formatting for large numbers Extract compactCount util (1K, 1.2M) and apply to gallery fav counts, comment fav counts, and profile popover stats. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 months ago