diff --git a/VERSION b/VERSION index 8089590..fdc6698 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.3.0 +4.4.0 diff --git a/play-life-web/package.json b/play-life-web/package.json index 7a6ec80..ce2dc84 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "4.3.0", + "version": "4.4.0", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/components/TaskDetail.css b/play-life-web/src/components/TaskDetail.css index c1759c2..73ed635 100644 --- a/play-life-web/src/components/TaskDetail.css +++ b/play-life-web/src/components/TaskDetail.css @@ -199,7 +199,7 @@ .task-actions-section { display: flex; flex-direction: column; - gap: 0.375rem; + gap: 0.125rem; } .task-actions-bottom { @@ -212,10 +212,12 @@ .task-action-left { flex: 1; display: flex; + min-width: 0; } .complete-at-end-of-day-checkbox { margin-top: 0; + margin-bottom: 0.25rem; } .complete-at-end-of-day-checkbox .checkbox-label { @@ -257,9 +259,11 @@ } .task-action-complete-buttons { + flex: 1; display: flex; gap: 0.25rem; align-items: stretch; + min-width: 0; } .action-button { @@ -290,19 +294,19 @@ } .action-button-check { - width: calc(0.75rem * 2 + 1rem + 0.125rem * 2); - min-width: calc(0.75rem * 2 + 1rem); + flex: 1; + width: 100%; + min-width: 0; height: calc(0.75rem * 2 + 1rem + 0.125rem * 2); - padding: 0.75rem; - flex-shrink: 0; + padding: 0.75rem 1.5rem; box-sizing: border-box; - background: linear-gradient(to right, #10b981, #059669); + background: linear-gradient(to right, #6366f1, #8b5cf6); margin: 0; } .action-button-check:hover:not(:disabled) { transform: translateY(-1px); - box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3); + box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3); } .action-button-double-check { @@ -327,13 +331,21 @@ .action-button-save { flex: 1; width: 100%; + min-width: 0; + background: linear-gradient(to right, #10b981, #059669); +} + +.action-button-save:hover:not(:disabled) { + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3); } .next-task-date-info { font-size: 0.875rem; color: #6b7280; - text-align: right; + text-align: left; + margin-top: 0.25rem; } .next-task-date-bold { diff --git a/play-life-web/src/components/TaskDetail.jsx b/play-life-web/src/components/TaskDetail.jsx index 5c9b9ff..9dab1ad 100644 --- a/play-life-web/src/components/TaskDetail.jsx +++ b/play-life-web/src/components/TaskDetail.jsx @@ -837,9 +837,38 @@ function TaskDetail({ taskId, onClose, onRefresh, onTaskCompleted, onNavigate }) {/* Кнопки действий */}
+ {/* Чекбокс над кнопками */} +
+ +
+
- {/* Левая часть: кнопка "Сохранить" */} + {/* Левая часть: кнопка "Выполнить" */}
+ +
+ + {/* Правая часть: кнопка "Сохранить" */} +
- - {/* Правая часть: кнопки выполнения */} -
- {/* Кнопка с одинарной галочкой */} - - - {/* Кнопка с двойной галочкой (только для повторяющихся задач) */} - {!isOneTime && ( - - )} -
- {/* Чекбокс и дата на одной линии */} -
-
- + {/* Дата слева */} + {!isOneTime && nextTaskDate && ( +
+ Следующая: {nextTaskDate}
- {!isOneTime && nextTaskDate && ( -
- {nextTaskDate} -
- )} -
+ )}
)}