mirror of
https://github.com/R0m1k3/FlowReader.git
synced 2026-10-17 12:17:31 +02:00
fix(web): open articles as a card, drop search, unstick stale app shell
- Service worker activates new versions immediately (skipWaiting + clientsClaim). In prompt mode a waiting worker kept serving the previous build to tabs that never send SKIP_WAITING, so the old UI hit the new API and showed "Aucun contenu disponible" on every article. Pages already controlled get a reload toast; lazy chunks missing after a deploy reload once. - Reader opens as a large card above the dimmed grid: close with ✕, Escape or a click beside it; previous/next arrows on the sides (desktop) and a bottom bar with the next title (all sizes). - Remove search, the focus banner and decorative headers; plain sentence- case labels instead of tracked capitals; quieter dashboard header. - Fix horizontal overflow of cards and reader navigation on phones. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b24a9806d5
commit
ed83525d26
12 files changed
+316
-375
No files matched your search
+15
-3
@@ -14,13 +14,25 @@ import './index.css'
|
||||
import App from './App.tsx'
|
||||
import { useUpdate } from './stores/updateStore'
|
||||
|
||||
// Prompt-based updates: a new version never reloads the page mid-read.
|
||||
const updateSW = registerSW({
|
||||
const reload = () => window.location.reload()
|
||||
|
||||
registerSW({
|
||||
immediate: true,
|
||||
onNeedRefresh() {
|
||||
useUpdate.getState().setAvailable(() => updateSW(true))
|
||||
useUpdate.getState().setAvailable(reload)
|
||||
},
|
||||
})
|
||||
|
||||
// The service worker activates new versions right away; when it takes over a
|
||||
// page that was already controlled, offer a reload instead of forcing one
|
||||
// under the reader.
|
||||
if ('serviceWorker' in navigator) {
|
||||
const hadController = !!navigator.serviceWorker.controller
|
||||
navigator.serviceWorker.addEventListener('controllerchange', () => {
|
||||
if (hadController) useUpdate.getState().setAvailable(reload)
|
||||
})
|
||||
}
|
||||
|
||||
createRoot(document.getElementById('root')!).render(
|
||||
<StrictMode>
|
||||
<App />
|
||||
|
||||
Reference in new issue
Block a user