diff options
| author | Claude <noreply@anthropic.com> | 2026-02-16 19:13:22 +0000 |
|---|---|---|
| committer | Claude <noreply@anthropic.com> | 2026-02-16 19:13:22 +0000 |
| commit | 0b08b2fb49827399ff0652bc20d5f71e2066025c (patch) | |
| tree | c705d35f4f38366efa3e430a1f956677a85f385d /web/dist/v3 | |
| parent | 6e84019f6cf887f777c2c8f9601455e031dad3a5 (diff) | |
| download | neko-0b08b2fb49827399ff0652bc20d5f71e2066025c.tar.gz neko-0b08b2fb49827399ff0652bc20d5f71e2066025c.tar.bz2 neko-0b08b2fb49827399ff0652bc20d5f71e2066025c.zip | |
v3 ui: require 100% visibility before marking items as read
Change IntersectionObserver threshold from 0.5 to 1.0 so items are only
marked as read when fully scrolled into view, reducing accidental
mark-as-read during fast scrolling.
Also fix unused Category import in perf test and add thicket config.json
to repository so future agents can use thicket CLI commands.
Closes NK-s2g59a
https://claude.ai/code/session_019Z4VJxzY7tcAuNkPAkvry9
Diffstat (limited to 'web/dist/v3')
| -rw-r--r-- | web/dist/v3/assets/index-M5xszonw.js (renamed from web/dist/v3/assets/index-CoLpO-VY.js) | 2 | ||||
| -rw-r--r-- | web/dist/v3/index.html | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/web/dist/v3/assets/index-CoLpO-VY.js b/web/dist/v3/assets/index-M5xszonw.js index 2d26b99..8348b8a 100644 --- a/web/dist/v3/assets/index-CoLpO-VY.js +++ b/web/dist/v3/assets/index-M5xszonw.js @@ -78,7 +78,7 @@ ${t.map(s=>P(s,s._id===c)).join("")} </ul> ${i.hasMore?'<div id="load-more-sentinel" class="loading-more">Loading more...</div>':""} - `;const n=document.getElementById("load-more-sentinel");n&&new IntersectionObserver(r=>{r[0].isIntersecting&&!i.loading&&i.hasMore&&U()},{threshold:.1}).observe(n),b=new IntersectionObserver(s=>{s.forEach(r=>{if(r.isIntersecting){const d=r.target,u=parseInt(d.getAttribute("data-id")||"0");if(u){const f=i.items.find(l=>l._id===u);f&&!f.read&&(h(u,{read:!0}),b?.unobserve(d))}}})},{threshold:.5}),a.querySelectorAll(".feed-item").forEach(s=>b.observe(s))}function I(){const t=document.getElementById("content-area");t&&(t.innerHTML=` + `;const n=document.getElementById("load-more-sentinel");n&&new IntersectionObserver(r=>{r[0].isIntersecting&&!i.loading&&i.hasMore&&U()},{threshold:.1}).observe(n),b=new IntersectionObserver(s=>{s.forEach(r=>{if(r.isIntersecting){const d=r.target,u=parseInt(d.getAttribute("data-id")||"0");if(u){const f=i.items.find(l=>l._id===u);f&&!f.read&&(h(u,{read:!0}),b?.unobserve(d))}}})},{threshold:1}),a.querySelectorAll(".feed-item").forEach(s=>b.observe(s))}function I(){const t=document.getElementById("content-area");t&&(t.innerHTML=` <div class="settings-view"> <h2>Settings</h2> diff --git a/web/dist/v3/index.html b/web/dist/v3/index.html index 87dfe68..c48a396 100644 --- a/web/dist/v3/index.html +++ b/web/dist/v3/index.html @@ -5,7 +5,7 @@ <link rel="icon" type="image/svg+xml" href="/vite.svg" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>neko</title> - <script type="module" crossorigin src="/v3/assets/index-CoLpO-VY.js"></script> + <script type="module" crossorigin src="/v3/assets/index-M5xszonw.js"></script> <link rel="stylesheet" crossorigin href="/v3/assets/index-BV0ir9Wv.css"> </head> <body> |
