diff --git a/package.json b/package.json index dc61103..e631a99 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "laude", - "version": "0.3.2", + "version": "0.3.3", "description": "Exercise reminder — Windows desktop app", "main": "out/main/index.js", "author": "AnRil", diff --git a/src/renderer/src/ReminderApp.tsx b/src/renderer/src/ReminderApp.tsx index c97b14e..afe7522 100644 --- a/src/renderer/src/ReminderApp.tsx +++ b/src/renderer/src/ReminderApp.tsx @@ -139,7 +139,7 @@ function ExerciseReminder({ -
+
Время тренировки

@@ -150,11 +150,11 @@ function ExerciseReminder({ {exercise.reps} - раз + раз

-
- +
+ Следующее через {formatInterval(exercise.intervalMinutes)}
@@ -163,20 +163,20 @@ function ExerciseReminder({
@@ -208,8 +208,8 @@ function MatchSummaryView({ return (
-
- {summary.gameName} +
+ {summary.gameName}
-
+
Всего ·{' '} - + {totalReps} {' '} повторов @@ -326,14 +326,14 @@ function ChallengeRow({
{result.exerciseName}
-
- +
+ {result.statValue} {' '} {result.statLabel} → {result.name} diff --git a/src/renderer/src/components/ExerciseCard.tsx b/src/renderer/src/components/ExerciseCard.tsx index cc11abd..89f00b8 100644 --- a/src/renderer/src/components/ExerciseCard.tsx +++ b/src/renderer/src/components/ExerciseCard.tsx @@ -97,7 +97,7 @@ export function ExerciseCard({
-

+

{exercise.name}

@@ -138,19 +138,19 @@ export function ExerciseCard({ )}
-
+
{exercise.reps} раз · каждые {formatInterval(exercise.intervalMinutes)}
{/* Countdown + switch */}
-
+
{isDue ? 'Сейчас' : 'Через'}
@@ -172,7 +172,7 @@ export function ExerciseCard({ initial={{ opacity: 0, y: 4 }} animate={{ opacity: 1, y: 0 }} onClick={onMarkDone} - className="mt-4 w-full h-10 rounded-xl bg-accent text-white text-[14px] font-semibold inline-flex items-center justify-center gap-1.5 active:scale-[0.98] transition-transform" + className="mt-4 w-full h-11 rounded-xl bg-accent text-white text-[15px] font-bold inline-flex items-center justify-center gap-1.5 active:scale-[0.98] transition-transform" > Готово diff --git a/src/renderer/src/components/UpdaterCard.tsx b/src/renderer/src/components/UpdaterCard.tsx index 1eee41e..a70cc80 100644 --- a/src/renderer/src/components/UpdaterCard.tsx +++ b/src/renderer/src/components/UpdaterCard.tsx @@ -126,19 +126,19 @@ function Body({ return (
-
- +
+
-
+
Загружаем обновление
-
+
{mb(status.transferred)} / {mb(status.total)} МБ ·{' '} {(status.bytesPerSecond / 1024 / 1024).toFixed(2)} МБ/с
-
+
{pct.toFixed(0)}%
@@ -218,19 +218,19 @@ function Cell({ muted: 'bg-surface-2 text-text/55' }[tone] return ( -
+
{icon}
-
{title}
+
{title}
{subtitle && ( -
+
{subtitle}
)} diff --git a/src/renderer/src/components/ui/Card.tsx b/src/renderer/src/components/ui/Card.tsx index 11977b0..dd4b769 100644 --- a/src/renderer/src/components/ui/Card.tsx +++ b/src/renderer/src/components/ui/Card.tsx @@ -39,12 +39,16 @@ export function SectionHeader({ action?: ReactNode }): JSX.Element { return ( -
+
-
+
{title}
- {hint &&
{hint}
} + {hint && ( +
+ {hint} +
+ )}
{action}
diff --git a/src/renderer/src/pages/Challenges.tsx b/src/renderer/src/pages/Challenges.tsx index 3f76451..642fccf 100644 --- a/src/renderer/src/pages/Challenges.tsx +++ b/src/renderer/src/pages/Challenges.tsx @@ -48,14 +48,14 @@ export default function ChallengesPage(): JSX.Element {
-
+
Правила за матч

Челленджи

-

- Повторов = статистика × коэффициент +

+ Повторов = статистика × коэффициент

)} @@ -225,19 +225,21 @@ function HeroStat({
{icon}
-
{label}
+
{label}
-
+
{value}
{subvalue && ( -
{subvalue}
+
+ {subvalue} +
)}
) diff --git a/src/renderer/src/pages/Exercises.tsx b/src/renderer/src/pages/Exercises.tsx index 2a04d57..a1d292c 100644 --- a/src/renderer/src/pages/Exercises.tsx +++ b/src/renderer/src/pages/Exercises.tsx @@ -22,7 +22,7 @@ export default function Exercises(): JSX.Element {
-
+
Программа

@@ -79,7 +79,7 @@ export default function Exercises(): JSX.Element { {exercises.length === 0 && ( -
+
Программа пуста — добавь первое упражнение
@@ -126,10 +126,10 @@ function ExerciseRow({ onClick={onEdit} className="flex-1 min-w-0 text-left active:opacity-70 transition-opacity" > -
+
{exercise.name}
-
+
{exercise.reps} раз · {formatInterval(exercise.intervalMinutes)}
diff --git a/src/renderer/src/pages/Games.tsx b/src/renderer/src/pages/Games.tsx index da230b6..23b9fc1 100644 --- a/src/renderer/src/pages/Games.tsx +++ b/src/renderer/src/pages/Games.tsx @@ -61,18 +61,18 @@ export default function GamesPage(): JSX.Element {
-
+
Трекинг матчей

Игры

-

+

Подключи игру — челленджи сработают сразу после матча {liveCount > 0 && ( <> {' · '} - + {liveCount} live @@ -154,13 +154,13 @@ function GameCard({

-

+

{game.name}

{game.installPath && ( -
+
{game.installPath}
)} @@ -176,15 +176,15 @@ function GameCard({
{game.integrationActive && game.launchOptionStatus === 'queued' && ( -
+
-
+
Steam запущен. Параметр{' '} - + {game.launchOption} {' '} пропишется автоматически при следующем закрытии Steam. @@ -193,15 +193,15 @@ function GameCard({ )} {game.integrationActive && game.launchOptionStatus === 'no_user' && ( -
+
-
+
В Steam нет залогиненного аккаунта (нет папки{' '} - userdata). + userdata). Запусти Steam один раз и нажми «Установить интеграцию».
@@ -224,7 +224,7 @@ function GameCard({ )} {!game.installed && ( -
+
Установи игру в Steam и нажми «Обновить»
)} diff --git a/src/renderer/src/pages/Settings.tsx b/src/renderer/src/pages/Settings.tsx index ca0be39..bc5946c 100644 --- a/src/renderer/src/pages/Settings.tsx +++ b/src/renderer/src/pages/Settings.tsx @@ -21,7 +21,7 @@ export default function SettingsPage(): JSX.Element {
-
+
Конфигурация

@@ -132,9 +132,11 @@ function ToggleRow({ return (
-
{label}
+
{label}
{hint && ( -
{hint}
+
+ {hint} +
)}
@@ -160,9 +162,11 @@ function SelectRow({ return (
-
{label}
+
{label}
{hint && ( -
{hint}
+
+ {hint} +
)}