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 && (