Compare commits

..

No commits in common. "c4e21af95bf6c105e2b658a3c3866ecc3a28b206" and "4277fa10417b43eee73997d48da603fae55efaf3" have entirely different histories.

4 changed files with 3 additions and 38 deletions

View File

@ -10,10 +10,3 @@ Current session management is basic and needs improvement:
## Network Performance ## Network Performance
- Read and implement recommendations from https://rachelbythebay.com/w/2024/12/17/packets/ - Read and implement recommendations from https://rachelbythebay.com/w/2024/12/17/packets/
## Asset Management
- Bundle Font Awesome with static assets instead of using CDN
- Download and serve Font Awesome files locally
- Include only the icons we actually use to reduce bundle size
- Consider using Font Awesome's SVG+JS version for better performance
- Update CSS and HTML references to use local assets

View File

@ -389,13 +389,6 @@ button:disabled {
background-color: rgba(255, 255, 255, 0.1); background-color: rgba(255, 255, 255, 0.1);
} }
.menu-icon {
display: inline-block;
width: 1.2em;
margin-right: 0.5rem;
text-align: center;
}
.feed-menu-item.delete { .feed-menu-item.delete {
color: var(--primary-red); color: var(--primary-red);
} }

View File

@ -106,7 +106,7 @@ function openFeed(feed) {
const menuButton = document.createElement('button'); const menuButton = document.createElement('button');
menuButton.className = 'feed-menu-button'; menuButton.className = 'feed-menu-button';
menuButton.innerHTML = '<i class="fas fa-ellipsis-v"></i>'; menuButton.innerHTML = '';
menuButton.title = 'Feed options'; menuButton.title = 'Feed options';
menuButton.onclick = (e) => { menuButton.onclick = (e) => {
e.stopPropagation(); e.stopPropagation();
@ -117,28 +117,9 @@ function openFeed(feed) {
const menu = document.createElement('div'); const menu = document.createElement('div');
menu.className = 'feed-menu'; menu.className = 'feed-menu';
const copyItem = document.createElement('a');
copyItem.className = 'feed-menu-item copy';
copyItem.innerHTML = '<span class="menu-icon"><i class="fas fa-copy"></i></span> Copy feed URL';
copyItem.onclick = async (e) => {
e.stopPropagation();
try {
await navigator.clipboard.writeText(feed.url);
// Briefly show success feedback
const originalText = copyItem.innerHTML;
copyItem.innerHTML = '<span class="menu-icon"><i class="fas fa-check"></i></span> Copied!';
setTimeout(() => {
copyItem.innerHTML = originalText;
}, 1500);
} catch (error) {
console.error('Failed to copy URL:', error);
}
menu.classList.remove('show');
};
const deleteItem = document.createElement('a'); const deleteItem = document.createElement('a');
deleteItem.className = 'feed-menu-item delete'; deleteItem.className = 'feed-menu-item delete';
deleteItem.innerHTML = '<span class="menu-icon"><i class="fas fa-trash-alt"></i></span> Remove Feed'; deleteItem.textContent = 'Remove Feed';
deleteItem.onclick = async (e) => { deleteItem.onclick = async (e) => {
e.stopPropagation(); e.stopPropagation();
if (confirm(`Are you sure you want to delete "${feed.name}"?`)) { if (confirm(`Are you sure you want to delete "${feed.name}"?`)) {
@ -158,7 +139,6 @@ function openFeed(feed) {
menu.classList.remove('show'); menu.classList.remove('show');
}; };
menu.appendChild(copyItem);
menu.appendChild(deleteItem); menu.appendChild(deleteItem);
name.appendChild(menuButton); name.appendChild(menuButton);
name.appendChild(menu); name.appendChild(menu);

View File

@ -4,7 +4,6 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RSS Reader</title> <title>RSS Reader</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="/static/css/style.css"> <link rel="stylesheet" href="/static/css/style.css">
</head> </head>
<body class="with-sidebar"> <body class="with-sidebar">
@ -15,7 +14,7 @@
<h1 class="top-bar-title">RSS Reader</h1> <h1 class="top-bar-title">RSS Reader</h1>
<div class="user-menu"> <div class="user-menu">
<button class="user-menu-button" id="userMenuButton"> <button class="user-menu-button" id="userMenuButton">
<span class="user-menu-icon"><i class="fas fa-user"></i></span> <span class="user-menu-icon"></span>
</button> </button>
<div class="user-menu-dropdown" id="userMenuDropdown"> <div class="user-menu-dropdown" id="userMenuDropdown">
<button class="user-menu-item" id="logoutButton">Logout</button> <button class="user-menu-item" id="logoutButton">Logout</button>