history display and repetition bug fix

This commit is contained in:
micialware committed 2026-09-15 16:34:13 +03:00
1 parent 36d2c0b48f
commit b5b4254d20
11 files changed
+480 -141

No files matched your search

+9 -4
View File
@@ -2,19 +2,21 @@ import './style.css';
import { renderHomePage } from './home-page.ts';
import { renderDecksPage } from './decks-page.ts';
import { renderDeckPage } from './deck-page.ts';
import { renderHistoryPage } from './history-page.ts';
import { renderReviewPage } from './review-page.ts';
import { renderSyncPage } from './sync-page.ts';
import { initWorker } from './sqlite-api.ts';
// Каркас приложения: топ-бар + бургер-меню + страницы (Главная / Колоды / Колода / Повторение / Синхронизация).
// Каркас приложения: топ-бар + бургер-меню + страницы (Главная / Колоды / Колода / Повторение / История / Синхронизация).
type Page = 'home' | 'decks' | 'deck' | 'review' | 'sync';
type Page = 'home' | 'decks' | 'deck' | 'review' | 'history' | 'sync';
const PAGE_TITLES: Record<Page, string> = {
home: 'Главная',
decks: 'Колоды',
deck: 'Колода',
review: 'Повторение',
history: 'История',
sync: 'Синхронизация',
};
@@ -49,8 +51,8 @@ function setActiveButton(page: Page): void {
function renderPage(page: Page, deckId?: number): void {
pageTitle.textContent = PAGE_TITLES[page];
// Страницы колоды и повторения — подразделы «Колод»: в меню подсвечиваем «Колоды».
setActiveButton(page === 'deck' || page === 'review' ? 'decks' : page);
// Колода / повторение / история — подразделы «Колод»: в меню подсвечиваем «Колоды».
setActiveButton(page === 'deck' || page === 'review' || page === 'history' ? 'decks' : page);
if (page === 'home') {
renderHomePage(pageRoot, {});
} else if (page === 'decks') {
@@ -62,9 +64,12 @@ function renderPage(page: Page, deckId?: number): void {
renderDeckPage(pageRoot, deckId ?? 0, {
goDecks: () => renderPage('decks'),
goReview: (id) => renderPage('review', id),
goHistory: (id) => renderPage('history', id),
});
} else if (page === 'review') {
renderReviewPage(pageRoot, deckId ?? 0, { goDecks: () => renderPage('decks') });
} else if (page === 'history') {
renderHistoryPage(pageRoot, deckId ?? 0, { goDeck: (id) => renderPage('deck', id) });
} else {
renderSyncPage(pageRoot);
}