lct-11: таймеры ГОСТ и баннер режима на АРМ курсанта

Опрос (75 с) — крупным индикатором: это центральная метрика продукта,
и она обязана быть видна курсанту, преподавателю и залу одновременно.
Три состояния норматива — единственное место, где цвет несёт смысл.

Фронт время не считает и рисует ровно те цифры, что прислал сервер:
метрика по часам браузера недоказуема.

Баннер режима определяет доступность подсказки: в контрольном режиме
кнопки нет, и это часть нормы контроля.
This commit is contained in:
Ivan Gerasimov 2026-09-17 21:18:28 +03:00
commit 78f66cf3b5
5 changed files with 101 additions and 1 deletions

View file

@ -0,0 +1,17 @@
// Баннер режима. Виден на всех четырёх экранах и определяет доступность подсказки:
// в контрольном режиме опоры нет, и это часть нормы контроля (docs/product/MODES.md).
import type { SessionMode } from "@/shared/types/generated";
const LABELS: Record<SessionMode, string> = {
training: "Тренировочный режим — подсказки доступны",
exam: "Контрольный режим — подсказки недоступны",
self: "Самостоятельная работа — подсказки доступны",
};
export const hintsAllowed = (mode: SessionMode | undefined): boolean => mode !== "exam";
export function ModeBanner({ mode }: { mode: SessionMode | undefined }) {
if (!mode) return null;
return <div className={`mode-banner mode-${mode}`}>{LABELS[mode]}</div>;
}