Fix: Bookmark Notification Spam

This commit is contained in:
Youwes09
2026-04-01 10:53:18 -05:00
parent 51a33679d5
commit 63c890dadf
4 changed files with 89 additions and 123 deletions
+13 -26
View File
@@ -10,11 +10,22 @@ Minor Revisions:
- Look at how Manga are Organized in WebUI and Implement into Series-Detail (Chapter Display is Off) - Look at how Manga are Organized in WebUI and Implement into Series-Detail (Chapter Display is Off)
- Adjustment in Settings for Theme Editor: - Adjustment in Settings for Theme Editor:
- Patch Color-Picker to Work Properly - Patch Color-Picker to Work Properly
- Investigate using AniList, etc for Moku RPC.
Priority Bugs: Priority Bugs:
- Cache ALL Cover Pictures & Details for Manga in Library - Cache ALL Cover Pictures & Details for Manga in Library
- Investigate Zoom (Reader), Appears to have Cutoff, etc. - Investigate Zoom (Reader), Appears to have Cutoff, etc.
- Display Downloaded in Series Detail
- Change Chapter Individual Delete to Red Trash Icon
- Put Downloaded Icon somewhere in Chapter Bar
- Hover Effect on Downloaded Icon (Display Total Downloaded vs Total Chapter)
- Allow Multiclick in Grid/List View to Mass Delete, Etc.
- Fix Source Allow in Content (Doesn't even work)
- Fix TitleBar not Appearing on Windows in Fullscreen (Locks in User)
General/Misc Bugs: General/Misc Bugs:
- Fix Highlightable Elements - Fix Highlightable Elements
- Investigate "egl:failed to create dri2 screen" - Investigate "egl:failed to create dri2 screen"
@@ -22,30 +33,6 @@ General/Misc Bugs:
- Fix Delete-All Crash (Deletes All but Cripples App) - Fix Delete-All Crash (Deletes All but Cripples App)
- Investigate Prod vs. Dev Directory Change/Data Load (Caused by Library Algorithm Revision?) - Investigate Prod vs. Dev Directory Change/Data Load (Caused by Library Algorithm Revision?)
In-Progress:`
- Enable Cloudflare Bypass (Suwayomi Config) (Requires Patching)
- Fix NSFW Parsing (Appears to not Work???)
- Check & Fix Zoom System In-Progress:
- Incredibly zoomed in on Windows (Appears to work fine on 1440p) - Enable Cloudflare Bypass (Suwayomi Config) (Requires Patching)
- Zoom Values are Incorrect
- Global Zoom should only scale Reader UI, not Manga
- Fix Resume-from-Read
- Start on Chapter 46 -> Go all the way to Chapter 47 (Page 28)
- Results in Opening Chapter 46 to take to last page of Chapter (Cache not Cleared).
- Add Event that if different chapter is opened, cache is cleared on all previous chapters.
- Add into Settings
Important Commands:
cd ~/Projects/Manga/Moku
pnpm build
tar -czf packaging/frontend-dist.tar.gz -C dist .
sha256sum packaging/frontend-dist.tar.gz | awk '{print $1}'
nix-shell -p "python311.withPackages(ps: [ ps.aiohttp ps.tomlkit ])" --run "python3 packaging/flatpak-cargo-generator.py src-tauri/Cargo.lock -o packaging/cargo-sources.json"
nix shell nixpkgs#appstream nixpkgs#flatpak-builder --command flatpak-builder --repo=repo --force-clean build-dir dev.moku.app.yml
flatpak build-bundle repo moku.flatpak dev.moku.app
+1 -1
View File
@@ -181,7 +181,7 @@ modules:
path: . path: .
- type: file - type: file
path: packaging/frontend-dist.tar.gz path: packaging/frontend-dist.tar.gz
sha256: fb01fc1a98499aeb5cf3e464c430a94c78ab1e68f15220ea8f95091f6ca593f2 sha256: 43b7274bdab884aacbc3dad6f0f7c043d8e3d82b7bf7398e1df9f516ed553152
- packaging/cargo-sources.json - packaging/cargo-sources.json
- type: inline - type: inline
dest: src-tauri/.cargo dest: src-tauri/.cargo
+70 -83
View File
@@ -1952,14 +1952,14 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/hyper/hyper-1.8.1.crate", "url": "https://static.crates.io/crates/hyper/hyper-1.9.0.crate",
"sha256": "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11", "sha256": "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca",
"dest": "cargo/vendor/hyper-1.8.1" "dest": "cargo/vendor/hyper-1.9.0"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11\", \"files\": {}}", "contents": "{\"package\": \"6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca\", \"files\": {}}",
"dest": "cargo/vendor/hyper-1.8.1", "dest": "cargo/vendor/hyper-1.9.0",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
@@ -2355,14 +2355,14 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/js-sys/js-sys-0.3.92.crate", "url": "https://static.crates.io/crates/js-sys/js-sys-0.3.94.crate",
"sha256": "cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995", "sha256": "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9",
"dest": "cargo/vendor/js-sys-0.3.92" "dest": "cargo/vendor/js-sys-0.3.94"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"cc4c90f45aa2e6eacbe8645f77fdea542ac97a494bcd117a67df9ff4d611f995\", \"files\": {}}", "contents": "{\"package\": \"2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9\", \"files\": {}}",
"dest": "cargo/vendor/js-sys-0.3.92", "dest": "cargo/vendor/js-sys-0.3.94",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
@@ -3522,19 +3522,6 @@
"dest": "cargo/vendor/pin-project-lite-0.2.17", "dest": "cargo/vendor/pin-project-lite-0.2.17",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{
"type": "archive",
"archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/pin-utils/pin-utils-0.1.0.crate",
"sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184",
"dest": "cargo/vendor/pin-utils-0.1.0"
},
{
"type": "inline",
"contents": "{\"package\": \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\", \"files\": {}}",
"dest": "cargo/vendor/pin-utils-0.1.0",
"dest-filename": ".cargo-checksum.json"
},
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
@@ -4617,14 +4604,14 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/serde_spanned/serde_spanned-1.1.0.crate", "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-1.1.1.crate",
"sha256": "876ac351060d4f882bb1032b6369eb0aef79ad9df1ea8bc404874d8cc3d0cd98", "sha256": "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26",
"dest": "cargo/vendor/serde_spanned-1.1.0" "dest": "cargo/vendor/serde_spanned-1.1.1"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"876ac351060d4f882bb1032b6369eb0aef79ad9df1ea8bc404874d8cc3d0cd98\", \"files\": {}}", "contents": "{\"package\": \"6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26\", \"files\": {}}",
"dest": "cargo/vendor/serde_spanned-1.1.0", "dest": "cargo/vendor/serde_spanned-1.1.1",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
@@ -5670,14 +5657,14 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/toml_datetime/toml_datetime-1.1.0+spec-1.1.0.crate", "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-1.1.1+spec-1.1.0.crate",
"sha256": "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f", "sha256": "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7",
"dest": "cargo/vendor/toml_datetime-1.1.0+spec-1.1.0" "dest": "cargo/vendor/toml_datetime-1.1.1+spec-1.1.0"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f\", \"files\": {}}", "contents": "{\"package\": \"3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7\", \"files\": {}}",
"dest": "cargo/vendor/toml_datetime-1.1.0+spec-1.1.0", "dest": "cargo/vendor/toml_datetime-1.1.1+spec-1.1.0",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
@@ -5709,40 +5696,40 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/toml_edit/toml_edit-0.25.8+spec-1.1.0.crate", "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.25.9+spec-1.1.0.crate",
"sha256": "16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c", "sha256": "da053d28fe57e2c9d21b48261e14e7b4c8b670b54d2c684847b91feaf4c7dac5",
"dest": "cargo/vendor/toml_edit-0.25.8+spec-1.1.0" "dest": "cargo/vendor/toml_edit-0.25.9+spec-1.1.0"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"16bff38f1d86c47f9ff0647e6838d7bb362522bdf44006c7068c2b1e606f1f3c\", \"files\": {}}", "contents": "{\"package\": \"da053d28fe57e2c9d21b48261e14e7b4c8b670b54d2c684847b91feaf4c7dac5\", \"files\": {}}",
"dest": "cargo/vendor/toml_edit-0.25.8+spec-1.1.0", "dest": "cargo/vendor/toml_edit-0.25.9+spec-1.1.0",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/toml_parser/toml_parser-1.1.0+spec-1.1.0.crate", "url": "https://static.crates.io/crates/toml_parser/toml_parser-1.1.1+spec-1.1.0.crate",
"sha256": "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011", "sha256": "39ca317ebc49f06bd748bfba29533eac9485569dc9bf80b849024b025e814fb9",
"dest": "cargo/vendor/toml_parser-1.1.0+spec-1.1.0" "dest": "cargo/vendor/toml_parser-1.1.1+spec-1.1.0"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011\", \"files\": {}}", "contents": "{\"package\": \"39ca317ebc49f06bd748bfba29533eac9485569dc9bf80b849024b025e814fb9\", \"files\": {}}",
"dest": "cargo/vendor/toml_parser-1.1.0+spec-1.1.0", "dest": "cargo/vendor/toml_parser-1.1.1+spec-1.1.0",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/toml_writer/toml_writer-1.1.0+spec-1.1.0.crate", "url": "https://static.crates.io/crates/toml_writer/toml_writer-1.1.1+spec-1.1.0.crate",
"sha256": "d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed", "sha256": "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db",
"dest": "cargo/vendor/toml_writer-1.1.0+spec-1.1.0" "dest": "cargo/vendor/toml_writer-1.1.1+spec-1.1.0"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed\", \"files\": {}}", "contents": "{\"package\": \"756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db\", \"files\": {}}",
"dest": "cargo/vendor/toml_writer-1.1.0+spec-1.1.0", "dest": "cargo/vendor/toml_writer-1.1.1+spec-1.1.0",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
@@ -6203,66 +6190,66 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.115.crate", "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.117.crate",
"sha256": "6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a", "sha256": "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0",
"dest": "cargo/vendor/wasm-bindgen-0.2.115" "dest": "cargo/vendor/wasm-bindgen-0.2.117"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"6523d69017b7633e396a89c5efab138161ed5aafcbc8d3e5c5a42ae38f50495a\", \"files\": {}}", "contents": "{\"package\": \"0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0\", \"files\": {}}",
"dest": "cargo/vendor/wasm-bindgen-0.2.115", "dest": "cargo/vendor/wasm-bindgen-0.2.117",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.65.crate", "url": "https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.67.crate",
"sha256": "2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0", "sha256": "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e",
"dest": "cargo/vendor/wasm-bindgen-futures-0.4.65" "dest": "cargo/vendor/wasm-bindgen-futures-0.4.67"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"2d1faf851e778dfa54db7cd438b70758eba9755cb47403f3496edd7c8fc212f0\", \"files\": {}}", "contents": "{\"package\": \"03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e\", \"files\": {}}",
"dest": "cargo/vendor/wasm-bindgen-futures-0.4.65", "dest": "cargo/vendor/wasm-bindgen-futures-0.4.67",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.115.crate", "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.117.crate",
"sha256": "4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67", "sha256": "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be",
"dest": "cargo/vendor/wasm-bindgen-macro-0.2.115" "dest": "cargo/vendor/wasm-bindgen-macro-0.2.117"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"4e3a6c758eb2f701ed3d052ff5737f5bfe6614326ea7f3bbac7156192dc32e67\", \"files\": {}}", "contents": "{\"package\": \"7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be\", \"files\": {}}",
"dest": "cargo/vendor/wasm-bindgen-macro-0.2.115", "dest": "cargo/vendor/wasm-bindgen-macro-0.2.117",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.115.crate", "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.117.crate",
"sha256": "921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf", "sha256": "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2",
"dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.115" "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.117"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"921de2737904886b52bcbb237301552d05969a6f9c40d261eb0533c8b055fedf\", \"files\": {}}", "contents": "{\"package\": \"dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2\", \"files\": {}}",
"dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.115", "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.117",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.115.crate", "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.117.crate",
"sha256": "a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93", "sha256": "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b",
"dest": "cargo/vendor/wasm-bindgen-shared-0.2.115" "dest": "cargo/vendor/wasm-bindgen-shared-0.2.117"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"a93e946af942b58934c604527337bad9ae33ba1d5c6900bbb41c2c07c2364a93\", \"files\": {}}", "contents": "{\"package\": \"39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b\", \"files\": {}}",
"dest": "cargo/vendor/wasm-bindgen-shared-0.2.115", "dest": "cargo/vendor/wasm-bindgen-shared-0.2.117",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
@@ -6320,14 +6307,14 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/web-sys/web-sys-0.3.92.crate", "url": "https://static.crates.io/crates/web-sys/web-sys-0.3.94.crate",
"sha256": "84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94", "sha256": "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a",
"dest": "cargo/vendor/web-sys-0.3.92" "dest": "cargo/vendor/web-sys-0.3.94"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"84cde8507f4d7cfcb1185b8cb5890c494ffea65edbe1ba82cfd63661c805ed94\", \"files\": {}}", "contents": "{\"package\": \"cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a\", \"files\": {}}",
"dest": "cargo/vendor/web-sys-0.3.92", "dest": "cargo/vendor/web-sys-0.3.94",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
@@ -7347,14 +7334,14 @@
{ {
"type": "archive", "type": "archive",
"archive-type": "tar-gzip", "archive-type": "tar-gzip",
"url": "https://static.crates.io/crates/winnow/winnow-1.0.0.crate", "url": "https://static.crates.io/crates/winnow/winnow-1.0.1.crate",
"sha256": "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8", "sha256": "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5",
"dest": "cargo/vendor/winnow-1.0.0" "dest": "cargo/vendor/winnow-1.0.1"
}, },
{ {
"type": "inline", "type": "inline",
"contents": "{\"package\": \"a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8\", \"files\": {}}", "contents": "{\"package\": \"09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5\", \"files\": {}}",
"dest": "cargo/vendor/winnow-1.0.0", "dest": "cargo/vendor/winnow-1.0.1",
"dest-filename": ".cargo-checksum.json" "dest-filename": ".cargo-checksum.json"
}, },
{ {
+5 -13
View File
@@ -297,6 +297,9 @@
const chId = visibleChapterId; const chId = visibleChapterId;
if (!chId || style !== "longstrip") return; if (!chId || style !== "longstrip") return;
if (chId === store.activeChapter?.id) return; if (chId === store.activeChapter?.id) return;
// Only resume if this chapter was opened directly, not auto-appended while reading
const wasAppended = untrack(() => stripChapters.findIndex(c => c.chapterId === chId)) > 0;
if (wasAppended) { untrack(() => { resumePage = 0; resumeVisible = false; }); return; }
const bookmark = store.bookmarks.find(b => b.chapterId === chId); const bookmark = store.bookmarks.find(b => b.chapterId === chId);
if (bookmark && bookmark.pageNumber > 1) { if (bookmark && bookmark.pageNumber > 1) {
untrack(() => { untrack(() => {
@@ -571,6 +574,7 @@
if (!ch || !manga) return; if (!ch || !manga) return;
if (isBookmarked) { if (isBookmarked) {
removeBookmark(ch.id); removeBookmark(ch.id);
resumeVisible = false;
} else { } else {
addBookmark({ mangaId: manga.id, mangaTitle: manga.title, thumbnailUrl: manga.thumbnailUrl, chapterId: ch.id, chapterName: ch.name, pageNumber: store.pageNumber }); addBookmark({ mangaId: manga.id, mangaTitle: manga.title, thumbnailUrl: manga.thumbnailUrl, chapterId: ch.id, chapterName: ch.name, pageNumber: store.pageNumber });
} }
@@ -774,19 +778,7 @@
{#if showResumeBanner} {#if showResumeBanner}
<div class="resume-banner" class:fading={resumeFading} role="status" onclick={() => { resumeVisible = false; resumeFading = false; }}> <div class="resume-banner" class:fading={resumeFading} role="status" onclick={() => { resumeVisible = false; resumeFading = false; }}>
<span>Bookmark at page {resumePage}</span> <span>Bookmark at page {resumePage}</span>
{#if style === "longstrip" && visibleChapterId && visibleChapterId !== store.activeChapter?.id}
<button class="resume-jump" onclick={() => {
const chId = visibleChapterId!;
const targetPg = resumePage;
const scrollToPage = () => {
const target = containerEl.querySelector<HTMLImageElement>(`img[data-local-page="${targetPg}"][data-chapter="${chId}"]`);
if (!target) { requestAnimationFrame(scrollToPage); return; }
target.scrollIntoView({ block: "start", behavior: "smooth" });
};
scrollToPage();
resumeVisible = false;
}}>Jump</button>
{/if}
</div> </div>
{/if} {/if}