fix(tracker): hash-вход (chemistry-9#p6) тоже шлёт mark_read
Из каталога кнопка 'Продолжить' ведёт на /textbook/<slug>#<last_para>.
handleHashNav при загрузке делала setLastPara(p6) — POST с last_para
БЕЗ mark_read. Поэтому каталог менял last_para, но 'прочитано'
оставалось без изменений.
Сейчас handleHashNav объединяет оба обновления (как wirePillTracking)
в один POST с mark_read=key.
Из лога user 2: '[tracker] chemistry-9 → POST {"last_para":"p6"}'
теперь будет '...{"last_para":"p6","mark_read":"p6"}'.
This commit is contained in:
@@ -455,8 +455,18 @@
|
|||||||
function handleHashNav() {
|
function handleHashNav() {
|
||||||
const m = (location.hash || '').match(/^#(p\d+)$/);
|
const m = (location.hash || '').match(/^#(p\d+)$/);
|
||||||
if (m) {
|
if (m) {
|
||||||
openParaByKey(m[1]);
|
const key = m[1];
|
||||||
setLastPara(m[1]);
|
openParaByKey(key);
|
||||||
|
localState.last = key;
|
||||||
|
if (!localState.read.includes(key)) {
|
||||||
|
localState.read.push(key);
|
||||||
|
refreshPillUI(key);
|
||||||
|
refreshCheckUI(key);
|
||||||
|
}
|
||||||
|
persist();
|
||||||
|
// Hash-вход (например, «Продолжить» из каталога) считается просмотром
|
||||||
|
// параграфа — шлём last_para + mark_read одним POST.
|
||||||
|
syncToServer({ mark_read: key });
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user