repetition woks
This commit is contained in:
1 parent
37b3b61f79
commit
36d2c0b48f
15 files changed
+905
-185
No files matched your search
+20
-5
@@ -1,16 +1,20 @@
|
||||
import './style.css';
|
||||
import { renderHomePage } from './home-page.ts';
|
||||
import { renderDecksPage } from './decks-page.ts';
|
||||
import { renderDeckPage } from './deck-page.ts';
|
||||
import { renderReviewPage } from './review-page.ts';
|
||||
import { renderSyncPage } from './sync-page.ts';
|
||||
import { initWorker } from './sqlite-api.ts';
|
||||
|
||||
// Каркас приложения: топ-бар + бургер-меню + страницы (Главная / Колоды / Синхронизация).
|
||||
// Каркас приложения: топ-бар + бургер-меню + страницы (Главная / Колоды / Колода / Повторение / Синхронизация).
|
||||
|
||||
type Page = 'home' | 'decks' | 'sync';
|
||||
type Page = 'home' | 'decks' | 'deck' | 'review' | 'sync';
|
||||
|
||||
const PAGE_TITLES: Record<Page, string> = {
|
||||
home: 'Главная',
|
||||
decks: 'Колоды',
|
||||
deck: 'Колода',
|
||||
review: 'Повторение',
|
||||
sync: 'Синхронизация',
|
||||
};
|
||||
|
||||
@@ -43,13 +47,24 @@ function setActiveButton(page: Page): void {
|
||||
});
|
||||
}
|
||||
|
||||
function renderPage(page: Page): void {
|
||||
function renderPage(page: Page, deckId?: number): void {
|
||||
pageTitle.textContent = PAGE_TITLES[page];
|
||||
setActiveButton(page);
|
||||
// Страницы колоды и повторения — подразделы «Колод»: в меню подсвечиваем «Колоды».
|
||||
setActiveButton(page === 'deck' || page === 'review' ? 'decks' : page);
|
||||
if (page === 'home') {
|
||||
renderHomePage(pageRoot, {});
|
||||
} else if (page === 'decks') {
|
||||
renderDecksPage(pageRoot);
|
||||
renderDecksPage(pageRoot, {
|
||||
goDeck: (id) => renderPage('deck', id),
|
||||
goReview: (id) => renderPage('review', id),
|
||||
});
|
||||
} else if (page === 'deck') {
|
||||
renderDeckPage(pageRoot, deckId ?? 0, {
|
||||
goDecks: () => renderPage('decks'),
|
||||
goReview: (id) => renderPage('review', id),
|
||||
});
|
||||
} else if (page === 'review') {
|
||||
renderReviewPage(pageRoot, deckId ?? 0, { goDecks: () => renderPage('decks') });
|
||||
} else {
|
||||
renderSyncPage(pageRoot);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user