From e014ded82a630bd91b15be4307125f5580119f4d Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Fri, 13 Feb 2026 13:50:25 -0800 Subject: Analyze page size and fix frontend tests --- frontend/coverage/src/components/FeedItem.tsx.html | 111 +++++++++------------ 1 file changed, 48 insertions(+), 63 deletions(-) (limited to 'frontend/coverage/src/components/FeedItem.tsx.html') diff --git a/frontend/coverage/src/components/FeedItem.tsx.html b/frontend/coverage/src/components/FeedItem.tsx.html index 893040e..f6b08e5 100644 --- a/frontend/coverage/src/components/FeedItem.tsx.html +++ b/frontend/coverage/src/components/FeedItem.tsx.html @@ -23,30 +23,30 @@
- 94.73% + 78.94% Statements - 18/19 + 15/19
- 91.66% + 88.88% Branches - 22/24 + 16/18
- 100% + 85.71% Functions - 7/7 + 6/7
- 94.73% + 78.94% Lines - 18/19 + 15/19
@@ -61,7 +61,7 @@
-
+
1 2 @@ -147,12 +147,7 @@ 82 83 84 -85 -86 -87 -88 -89 -90  +85        @@ -161,24 +156,21 @@       -12x -12x +21x +21x   -12x -2x   -  -12x +21x 1x     -12x -3x +21x +1x   -3x -3x +1x +1x   -3x +1x       @@ -190,33 +182,31 @@       -2x +1x     -2x -  -  -  +1x   -2x     -1x   1x -1x     +    -12x -  +  +        +21x         +1x +1x       @@ -253,9 +243,6 @@ export default function FeedItem({ item: initialItem }: FeedItemProps) { const [item, setItem] = useState(initialItem); const [loading, setLoading] = useState(false);   - const toggleRead = () => { - updateItem({ ...item, read: !item.read }); - };   const toggleStar = () => { updateItem({ ...item, starred: !item.starred }); @@ -289,40 +276,38 @@ export default function FeedItem({ item: initialItem }: FeedItemProps) { // or we could setItem(updated) if the server returns the full object setLoading(false); }) - .catch((err) => { - console.error('Error updating item:', err); + .catch((err) => { + console.error('Error updating item:', err); // Revert on error - setItem(previousItem); - setLoading(false); + setItem(previousItem); + setLoading(false); }); };   return ( <li className={`feed-item ${item.read ? 'read' : 'unread'} ${loading ? 'loading' : ''}`}> <div className="item-header"> + <button + onClick={(e) => { + e.stopPropagation(); + toggleStar(); + }} + className={`star-btn ${item.starred ? 'is-starred' : 'is-unstarred'}`} + title={item.starred ? "Unstar" : "Star"} + > + {item.starred ? '★' : '☆'} + </button> <a href={item.url} target="_blank" rel="noopener noreferrer" className="item-title"> {item.title || '(No Title)'} </a> - <div className="item-actions"> - <button - onClick={toggleRead} - className={`action-btn ${item.read ? 'is-read' : 'is-unread'}`} - title={item.read ? "Mark as unread" : "Mark as read"} - > - {item.read ? '📖' : 'uo'} - </button> - <button - onClick={toggleStar} - className={`action-btn ${item.starred ? 'is-starred' : 'is-unstarred'}`} - title={item.starred ? "Unstar" : "Star"} - > - {item.starred ? '★' : '☆'} - </button> - </div> </div> - <div className="item-meta"> - <span className="item-date">{new Date(item.publish_date).toLocaleDateString()}</span> - {item.feed_title && <span className="item-feed"> - {item.feed_title}</span>} + <div className="dateline"> + <a href={item.url} target="_blank" rel="noopener noreferrer"> + {new Date(item.publish_date).toLocaleDateString()} + {item.feed_title && ` - ${item.feed_title}`} + </a> + <div className="item-actions" style={{ display: 'inline-block', float: 'right' }}> + </div> </div> {item.description && ( <div className="item-description" dangerouslySetInnerHTML={{ __html: item.description }} /> @@ -337,7 +322,7 @@ export default function FeedItem({ item: initialItem }: FeedItemProps) {