Приоритеты
Главный экран. Список направлений, в которые уходит жизнь, и кнопка «+», которая вкладывает в направление один блок времени.

Зачем этот экран
Сюда заходят каждый день и ненадолго: отметить то, что уже сделано. Всё остальное — разборы, графики, лестницы — живёт на других вкладках намеренно, чтобы отметка занимала два касания, а не десять.
Экран отвечает на один вопрос: куда сегодня ушло время и кто съел больше всех.
Что на экране
- Карандаш в шапке — открывает редактирование списка.
- Батарея в шапке — текущий заряд. Нажатие открывает выбор состояния прямо отсюда, не уходя с главной. Пока заряд ни разу не отмечен, вместо картинки стоит «Заряд?».
- Переключатель периода — «Сегодня», «7 дней», «30 дней». Пункта «Всё время» здесь нет: это вопрос статистики, а не сегодняшнего дня.
- Итог — сколько всего отмечено за период, кто лидер и какова его доля.
- «Дописать прошлый день» — раскрывает ленту из четырнадцати дней.
- Список приоритетов. Ширина полосы — доля относительно лидера, а не процент суток: тот, кто съедает больше всех, всегда во всю ширину, остальные — в его долях.
- Кнопка «+» справа в строке. Точки под ней — сколько блоков уже отмечено в том дне, в который идёт запись. Больше пяти показываются числом.

Как этим пользоваться
Отметить блок
Нажмите «+» в строке приоритета. Один тап — один блок; по умолчанию это 30 минут. Цена блока меняется в настройках и пересчитывает всю историю разом.
Исправить лишний тап
Нажмите на саму строку — откроется счётчик за выбранный день с «−» и «+». Это тот же счётчик, что и в шторке навыка.

Пара кнопок стоит именно здесь, а не в самой строке: инлайновый «−» отъедал у названия сорок с лишним пикселей на каждой строке, а это дороже лишнего касания — отмечают каждый день, а промахиваются изредка.
На нуле «−» гаснет: уводить счётчик в минус нечему.

Дописать блок за прошедший день
Нажмите «Дописать прошлый день» и выберите число в ленте. Точка под числом означает, что в этом дне уже что-то отмечено, — так видно, какие дни пустые.

Пока выбран не сегодняшний день, наверху висит жёлтое предупреждение и кнопка «К сегодня», а точки у «+» показывают уже выбранный день, а не сегодняшний.

Режим не переживает перезапуск приложения и сам сбрасывается, когда наступает полночь. Это защита от главного риска: забыть, что пишешь во вчера, и потерять следующие сутки целиком.
Посмотреть, куда уходит неделя
Переключите период на «7 дней» или «30 дней». Итоговая строка меняет формулировку («За 7 дней — …»), а полосы пересчитываются относительно лидера этого периода.

Отметить заряд, не уходя с экрана
Нажмите на батарею в шапке.

Это та же шторка, что и на вкладке «Заряд», — просто короткий путь. Если выбрать «на нуле», следом появится вопрос, что посадило батарею.
Батарея стоит в шапке каждой вкладки, включая настройки: состояние меняется тогда, когда оно изменилось, и искать для этого нужный экран не нужно.
Перестроить список
Удержите любую строку около полсекунды — откроется редактирование приоритетов. Это единственный вход туда: кнопки в шапке нет, и подсказка под списком напоминает про удержание.
Пустое состояние
Пока не отмечено ничего, вместо итога стоит приглашение отметить.

Полосы всё равно нарисованы: пустая рамка показывает, что приоритет существует и ждёт отметки.
Пока не отмечен и заряд, вместо батареи в шапке стоит вопрос.

Пределы и предупреждения
- Приоритетов — от 1 до 10, по умолчанию 7. Полный список ограничений — на странице «Пределы и лимиты».
- Лента пропущенных дней уходит на 14 дней назад. Дальше не вспомнить.
- Запись в прошлый день в журнале не отличается от сделанной вовремя. Узнать, что именно было дописано задним числом, потом нельзя.
- Ненулевой приоритет всегда рисует полоску хотя бы в 4 % ширины: иначе один блок на фоне лидера выглядел бы как ноль.
Чего здесь нельзя
- Отметить блок в будущем. Лента предлагает только прошедшие дни и сегодня.
- Ввести время вручную. Единица учёта — клик, а не минуты; из-за этого смена цены блока и пересчитывает прошлое.
- Удалить или переименовать приоритет. Это делается на экране редактирования.
- Отметить полблока. Если получасовая сетка не подходит, поменяйте цену клика на 15 или 20 минут.
Рядом
Редактирование приоритетов · Заряд · Статистика · Пределы и лимиты
Как это работает внутри
- Экран —
src/screens/HomeScreen.tsx. Периоды берутся изPERIODS(src/domain/types.ts) с отброшеннымall. - День записи живёт в состоянии экрана, а не в сторе (
writeDayвHomeScreen.tsx). Это и есть защита от забытого «пишу во вчера»: состояние экрана исчезает при следующем открытии приложения. - Сброс по полуночи — эффект по
lastTodayв том же файле. Триггер именно сменаtoday, а не сравнениеwriteDayсtoday: в режиме прошлого дня они расходятся намеренно, и сравнение сбрасывало бы выбор сразу же. - Точки у «+» считаются по
writeDay, а не поtoday(dayClicks), иначе в режиме прошлого дня счётчик врал бы о только что нажатом. - Заливка полосы —
stat.fill(доля относительно лидера), проценты —stat.share(доля периода). Оба считаетcomputeStatsвsrc/domain/stats.ts; минимальная заливка задана константойMIN_FILL = 0.04. Покрытоsrc/domain/stats.test.ts. - Лидер для нормализации берётся по всем показанным строкам, включая архивные, иначе архивный приоритет мог бы переполнить ширину.
- Дописанный в прошлое блок выдаёт достижение
r8(обработчикonAdd). - Шторка счётчика —
TuneSheetв том же файле, поверх общейSheet(src/components/Sheet.tsx), которая на время перехватывает системную кнопку «назад». - Строка списка —
src/components/PriorityRow.tsx; удержание реализуетsrc/components/useLongPress.ts(480 мс с допуском 10 px, чтобы прокрутка не считалась удержанием).