refactor: enhance TimerPage layout and functionality; update theme and tokens for improved design consistency

- Refactored TimerPage component to improve layout and user experience.
- Updated theme configuration to utilize design tokens for better maintainability.
- Introduced new tokens for colors and typography to align with design principles.
- Simplified state management and improved timer functionality.
- Enhanced accessibility and responsiveness of UI elements.
This commit is contained in:
timka123 committed 2026-10-18 23:57:36 +03:00
1 parent 17a0a3c4c9
commit 77b26757bf
84 files changed
+4501 -2682

No files matched your search

+12 -5
View File
@@ -90,9 +90,12 @@ class PomodoroSession(Base):
class TaskRecord(Base):
"""A todo item, wherever it came from.
External tasks are cached here on every refresh so the UI is instant and the
daily report still works when Jira is down. Locally created tasks live here
too, with `source = "local"` — they are the only ones we own outright.
External tasks are mirrored here on every refresh so the UI is instant and
the daily report still works when Jira is down. Locally created tasks live
here too, with `source = "local"`.
Completion is never recorded from this app: you close a task where it lives,
and the next refresh notices. That keeps one source of truth per task.
"""
__tablename__ = "tasks"
@@ -119,8 +122,12 @@ class TaskRecord(Base):
is_done: Mapped[bool] = mapped_column(Boolean, default=False, index=True)
completed_at: Mapped[datetime | None] = mapped_column(DateTime(timezone=True))
completed_date: Mapped[date | None] = mapped_column(Date, index=True)
completed_here: Mapped[bool] = mapped_column(Boolean, default=False)
"""True when *this app* closed it — what the daily report counts."""
"""The day the task was seen to close, in your timezone.
Tasks are never ticked off here — Jira, Todoist and Google Tasks own that —
so this is set when a refresh finds a task closed, or finds it gone from a
source that was otherwise healthy. That is what the daily report counts.
"""
estimated_pomodoros: Mapped[int | None] = mapped_column(Integer)
pinned: Mapped[bool] = mapped_column(Boolean, default=False)