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() {
|
||||
const m = (location.hash || '').match(/^#(p\d+)$/);
|
||||
if (m) {
|
||||
openParaByKey(m[1]);
|
||||
setLastPara(m[1]);
|
||||
const key = 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 false;
|
||||
|
||||
Reference in New Issue
Block a user