grain.social is a photo sharing platform built on atproto. grain.social
atproto photography appview
57
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: hashtag label duplication and gallery pluralization typo

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

+4 -4
+1 -1
app/lib/components/organisms/FeedList.svelte
··· 92 92 93 93 {#if !loading || items.length > 0} 94 94 <div class="feed-status"> 95 - <span>{items.length} gallerie{items.length !== 1 ? 's' : 'y'}{cursor ? '+' : ''}</span> 95 + <span>{items.length} {items.length === 1 ? 'gallery' : 'galleries'}{cursor ? '+' : ''}</span> 96 96 <button class="refresh" onclick={() => load()} title="Refresh"><RefreshCw size={14} /></button> 97 97 </div> 98 98 {/if}
+1 -1
app/lib/components/organisms/MobileDrawer.svelte
··· 43 43 {#each $pinnedFeeds as feed (feed.id)} 44 44 {@const Icon = feedIcon(feed)} 45 45 <button class="drawer-link" onclick={() => nav(feed.path)}> 46 - <span class="drawer-link-icon"><Icon size={18} /></span> {feed.label} 46 + <span class="drawer-link-icon"><Icon size={18} /></span> {feed.type === 'hashtag' ? feed.label.replace(/^#/, '') : feed.label} 47 47 </button> 48 48 {/each} 49 49
+1 -1
app/lib/components/organisms/SidebarRight.svelte
··· 30 30 class:active={page.url.pathname + page.url.search === feed.path || page.url.pathname === feed.path} 31 31 > 32 32 <span class="sidebar-link-icon"><svelte:component this={feedIcon(feed)} size={16} /></span> 33 - <span class="sidebar-link-label">{feed.label}</span> 33 + <span class="sidebar-link-label">{feed.type === 'hashtag' ? feed.label.replace(/^#/, '') : feed.label}</span> 34 34 </a> 35 35 {/each} 36 36 {#if $isAuthenticated}
+1 -1
app/routes/hashtags/[tag]/+page.svelte
··· 13 13 <DetailHeader label="#{tag}"> 14 14 {#snippet actions()} 15 15 {#if $isAuthenticated} 16 - <PinButton feed={{ id: `hashtag:${tag}`, label: `#${tag}`, type: 'hashtag', path: `/hashtags/${encodeURIComponent(tag)}` }} /> 16 + <PinButton feed={{ id: `hashtag:${tag}`, label: tag, type: 'hashtag', path: `/hashtags/${encodeURIComponent(tag)}` }} /> 17 17 {/if} 18 18 {/snippet} 19 19 </DetailHeader>