From 49f67ec36d3aba8729ec4e9ebeda94f573315909 Mon Sep 17 00:00:00 2001 From: poignatov Date: Tue, 17 Mar 2026 10:08:23 +0300 Subject: [PATCH] =?UTF-8?q?6.19.0:=20=D0=A3=D0=BD=D0=B8=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA?= =?UTF-8?q?=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- VERSION | 2 +- play-life-web/package.json | 2 +- play-life-web/src/App.jsx | 1 + .../src/components/ProjectPriorityManager.jsx | 45 ++++++++---- .../src/components/ShoppingItemForm.css | 1 + .../src/components/ShoppingItemForm.jsx | 68 ++++++++++++++----- play-life-web/src/components/TaskForm.css | 2 +- play-life-web/src/components/TaskForm.jsx | 29 +++++--- 8 files changed, 108 insertions(+), 42 deletions(-) diff --git a/VERSION b/VERSION index f353b75..74c926a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.18.17 +6.19.0 diff --git a/play-life-web/package.json b/play-life-web/package.json index 4ee196c..f4b369f 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "6.18.17", + "version": "6.19.0", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/App.jsx b/play-life-web/src/App.jsx index bc13f5b..da7bc1e 100644 --- a/play-life-web/src/App.jsx +++ b/play-life-web/src/App.jsx @@ -1445,6 +1445,7 @@ function AppContent() { boardId={tabParams.boardId} previousTab={previousTab} onSaved={() => setShoppingRefreshTrigger(prev => prev + 1)} + isActive={activeTab === 'shopping-item-form'} /> diff --git a/play-life-web/src/components/ProjectPriorityManager.jsx b/play-life-web/src/components/ProjectPriorityManager.jsx index 3df690b..028a679 100644 --- a/play-life-web/src/components/ProjectPriorityManager.jsx +++ b/play-life-web/src/components/ProjectPriorityManager.jsx @@ -1061,19 +1061,38 @@ function ProjectPriorityManager({ allProjectsData, currentWeekData, shouldLoad, /> )} -
-
- -
+
+
{toastMessage && ( diff --git a/play-life-web/src/components/ShoppingItemForm.css b/play-life-web/src/components/ShoppingItemForm.css index f445437..f8b01f4 100644 --- a/play-life-web/src/components/ShoppingItemForm.css +++ b/play-life-web/src/components/ShoppingItemForm.css @@ -3,6 +3,7 @@ max-width: 600px; margin: 0 auto; position: relative; + padding-bottom: 5rem; } .shopping-item-form h2 { diff --git a/play-life-web/src/components/ShoppingItemForm.jsx b/play-life-web/src/components/ShoppingItemForm.jsx index ecae55b..e5b1ab0 100644 --- a/play-life-web/src/components/ShoppingItemForm.jsx +++ b/play-life-web/src/components/ShoppingItemForm.jsx @@ -1,11 +1,12 @@ import React, { useState, useEffect } from 'react' +import { createPortal } from 'react-dom' import { useAuth } from './auth/AuthContext' import Toast from './Toast' import SubmitButton from './SubmitButton' import DeleteButton from './DeleteButton' import './ShoppingItemForm.css' -function ShoppingItemForm({ onNavigate, itemId, boardId, previousTab, onSaved }) { +function ShoppingItemForm({ onNavigate, itemId, boardId, previousTab, onSaved, isActive }) { const { authFetch } = useAuth() const [name, setName] = useState('') const [description, setDescription] = useState('') @@ -183,6 +184,7 @@ function ShoppingItemForm({ onNavigate, itemId, boardId, previousTab, onSaved }) } return ( + <>
-
- - Сохранить - - {isEdit && ( - - )} -
{toastMessage && ( @@ -304,6 +289,53 @@ function ShoppingItemForm({ onNavigate, itemId, boardId, previousTab, onSaved }) /> )} + {isActive ? createPortal( +
+ + {isEdit && ( + + )} +
, + document.body + ) : null} + ) } diff --git a/play-life-web/src/components/TaskForm.css b/play-life-web/src/components/TaskForm.css index 482f811..8839438 100644 --- a/play-life-web/src/components/TaskForm.css +++ b/play-life-web/src/components/TaskForm.css @@ -3,7 +3,7 @@ max-width: 800px; margin: 0 auto; position: relative; - padding-bottom: 5.5rem; + padding-bottom: 5rem; } .close-x-button { diff --git a/play-life-web/src/components/TaskForm.jsx b/play-life-web/src/components/TaskForm.jsx index abeeb22..c3a5900 100644 --- a/play-life-web/src/components/TaskForm.jsx +++ b/play-life-web/src/components/TaskForm.jsx @@ -1412,23 +1412,36 @@ function TaskForm({ onNavigate, taskId, wishlistId, returnTo, returnWishlistId, bottom: 0, left: 0, right: 0, - padding: '1.5rem 1rem 0.75rem', + padding: '0.75rem 1rem', paddingBottom: 'max(0.75rem, env(safe-area-inset-bottom))', - background: 'linear-gradient(to top, white 70%, rgba(255,255,255,0))', + background: 'linear-gradient(to top, white 60%, rgba(255,255,255,0))', zIndex: 1500, display: 'flex', justifyContent: 'center', gap: '0.75rem', }}> - - Сохранить - + {loading ? 'Сохранение...' : 'Сохранить'} + {taskId && (