[READ-ONLY] Mirror of https://github.com/thang-qt/ThreadLine. Alternative frontend for HackerNews and Lobsters threadline.thangqt.com/
0

Configure Feed

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

Hide inline reader controls on mobile

Quang Thang (Jul 11, 2026, 7:52 PM +0700) 70e636af 99943df1

+8 -2
+1 -1
src/components/StoryCard.tsx
··· 20 20 <span className="story-time">{timeAgo(story.createdAt)}</span> 21 21 <span className="meta-separator">•</span> 22 22 <Link to={`/story/${story.source}/${encodeURIComponent(story.sourceId)}`} state={{ story }} className="story-comments-link">{story.commentsCount} comments</Link> 23 - {hasExternalUrl ? <><span className="meta-separator">•</span><button type="button" className="story-read-link" onClick={() => onReadHere?.(story)}>read here</button></> : null} 23 + {hasExternalUrl ? <><span className="meta-separator story-read-separator">•</span><button type="button" className="story-read-link" onClick={() => onReadHere?.(story)}>read here</button></> : null} 24 24 </div> 25 25 </article>; 26 26 }
+1 -1
src/components/discussion/DiscussionView.tsx
··· 55 55 <p className="section-label">{sourceLabel(story.source)}</p> 56 56 <h1>{story.title}</h1> 57 57 <div className="story-actions"> 58 - {currentArticleUrl && <button className={readHere ? 'selected' : ''} onClick={() => setReadHere(value => !value)}>{readHere ? 'Close reader' : 'Read here'}</button>} 58 + {currentArticleUrl && <button className={`read-here-action ${readHere ? 'selected' : ''}`} onClick={() => setReadHere(value => !value)}>{readHere ? 'Close reader' : 'Read here'}</button>} 59 59 {currentArticleUrl && <a href={currentArticleUrl} target="_blank" rel="noreferrer">Open article ↗</a>} 60 60 <a href={story.discussionUrl} target="_blank" rel="noreferrer">Original discussion ↗</a> 61 61 </div>
+6
src/styles/09-responsive.css
··· 76 76 .story-card:last-child { 77 77 border-bottom: none; 78 78 } 79 + 80 + .story-read-separator, 81 + .story-read-link, 82 + .read-here-action { 83 + display: none !important; 84 + } 79 85 80 86 .settings-grid { 81 87 grid-template-columns: 1fr;