aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorClaude <noreply@anthropic.com>2026-02-16 19:13:22 +0000
committerClaude <noreply@anthropic.com>2026-02-16 19:13:22 +0000
commit0b08b2fb49827399ff0652bc20d5f71e2066025c (patch)
treec705d35f4f38366efa3e430a1f956677a85f385d /web
parent6e84019f6cf887f777c2c8f9601455e031dad3a5 (diff)
downloadneko-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')
-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.html2
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>