= ({ onToggleCollapse, onLogou
navigate('/')}
+ onClick={() => {
+ if (isMobile) {
+ onToggleCollapse()
+ }
+ navigate('/')
+ }}
title="Home"
ariaLabel="Home"
variant="ghost"
/>
{
+ if (isMobile) {
+ onToggleCollapse()
+ }
+ navigate('/explore')
+ }}
+ title="Explore"
+ ariaLabel="Explore"
variant="ghost"
/>
navigate('/explore')}
- title="Explore"
- ariaLabel="Explore"
+ icon={faGear}
+ onClick={() => {
+ if (isMobile) {
+ onToggleCollapse()
+ }
+ onOpenSettings()
+ }}
+ title="Settings"
+ ariaLabel="Settings"
variant="ghost"
/>
{!isMobile && (
diff --git a/src/services/readingPositionService.ts b/src/services/readingPositionService.ts
index a3383d7f..3deb8fee 100644
--- a/src/services/readingPositionService.ts
+++ b/src/services/readingPositionService.ts
@@ -19,7 +19,6 @@ export interface ReadingProgressContent {
progress: number // 0-1 scroll progress
ts?: number // Unix timestamp (optional, for display)
loc?: number // Optional: pixel position
- ver?: string // Schema version
}
// Helper to extract and parse reading progress from event (kind 39802)
@@ -117,8 +116,7 @@ export async function saveReadingPosition(
const progressContent: ReadingProgressContent = {
progress: position.position,
ts: position.timestamp,
- loc: position.scrollTop,
- ver: '1'
+ loc: position.scrollTop
}
const tags = generateProgressTags(articleIdentifier)
diff --git a/src/services/readingProgressController.ts b/src/services/readingProgressController.ts
index 3d0af404..c3570e6d 100644
--- a/src/services/readingProgressController.ts
+++ b/src/services/readingProgressController.ts
@@ -13,7 +13,7 @@ type ProgressMapCallback = (progressMap: Map) => void
type LoadingCallback = (loading: boolean) => void
const LAST_SYNCED_KEY = 'reading_progress_last_synced'
-const PROGRESS_CACHE_KEY = 'reading_progress_cache_v1'
+const PROGRESS_CACHE_KEY = 'reading_progress_cache'
/**
* Shared reading progress controller
diff --git a/src/styles/components/me.css b/src/styles/components/me.css
index c18d0128..1ed24471 100644
--- a/src/styles/components/me.css
+++ b/src/styles/components/me.css
@@ -75,6 +75,18 @@
.me-highlights-list { padding-left: 0; padding-right: 0; }
.explore-header .author-card { max-width: 600px; margin: 0 auto; width: 100%; }
+/* Hide tab labels on mobile to save space */
+@media (max-width: 768px) {
+ .me-tab .tab-label {
+ display: none;
+ }
+
+ .me-tab {
+ padding: 0.75rem;
+ gap: 0;
+ }
+}
+
/* Bookmarks list */
.bookmarks-list {
display: flex;
diff --git a/vite.config.ts b/vite.config.ts
index 4ec6a530..1a0b1829 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -104,7 +104,7 @@ export default defineConfig({
filename: 'sw.ts',
injectRegister: null,
manifest: {
- name: 'Boris - Nostr Bookmarks',
+ name: 'Boris - Read, Highlight, Explore',
short_name: 'Boris',
description: 'Your reading list for the Nostr world. A minimal nostr client for bookmark management with highlights.',
start_url: '/',