diff --git a/VERSION b/VERSION index 59af327..0b0afee 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.19.7 +6.19.8 diff --git a/play-life-web/package.json b/play-life-web/package.json index 0f32759..36cfdec 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "6.19.7", + "version": "6.19.8", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/App.jsx b/play-life-web/src/App.jsx index f5416b4..fface49 100644 --- a/play-life-web/src/App.jsx +++ b/play-life-web/src/App.jsx @@ -1166,7 +1166,7 @@ function AppContent() { } // Определяем, нужно ли скрывать нижнюю панель (для fullscreen экранов) - const isFullscreenTab = activeTab === 'test' || activeTab === 'purchase' || activeTab === 'add-words' || activeTab === 'task-form' || activeTab === 'wishlist-form' || activeTab === 'wishlist-detail' || activeTab === 'todoist-integration' || activeTab === 'telegram-integration' || activeTab === 'fitbit-integration' || activeTab === 'full' || activeTab === 'priorities' || activeTab === 'words' || activeTab === 'dictionaries' || activeTab === 'tracking' || activeTab === 'tracking-access' || activeTab === 'tracking-invite' || activeTab === 'shopping' || activeTab === 'shopping-item-form' || activeTab === 'shopping-board-form' || activeTab === 'shopping-board-join' || activeTab === 'shopping-item-history' + const isFullscreenTab = activeTab === 'test' || activeTab === 'purchase' || activeTab === 'add-words' || activeTab === 'task-form' || activeTab === 'wishlist-form' || activeTab === 'wishlist-detail' || activeTab === 'todoist-integration' || activeTab === 'telegram-integration' || activeTab === 'fitbit-integration' || activeTab === 'full' || activeTab === 'priorities' || activeTab === 'words' || activeTab === 'dictionaries' || activeTab === 'tracking' || activeTab === 'tracking-access' || activeTab === 'tracking-invite' || activeTab === 'shopping' || activeTab === 'shopping-item-form' || activeTab === 'shopping-board-form' || activeTab === 'shopping-board-join' || activeTab === 'shopping-item-history' || activeTab === 'board-form' // Функция для получения классов скролл-контейнера для каждого таба // Каждый таб имеет свой изолированный скролл-контейнер для автоматического сохранения позиции скролла @@ -1418,6 +1418,7 @@ function AppContent() { onNavigate={handleNavigate} boardId={tabParams.boardId} onSaved={() => setWishlistRefreshTrigger(prev => prev + 1)} + isActive={activeTab === 'board-form'} /> @@ -1473,6 +1474,7 @@ function AppContent() { onNavigate={handleNavigate} boardId={tabParams.boardId} onSaved={() => setShoppingRefreshTrigger(prev => prev + 1)} + isActive={activeTab === 'shopping-board-form'} /> diff --git a/play-life-web/src/components/BoardForm.jsx b/play-life-web/src/components/BoardForm.jsx index 7823648..24f9671 100644 --- a/play-life-web/src/components/BoardForm.jsx +++ b/play-life-web/src/components/BoardForm.jsx @@ -1,13 +1,13 @@ import React, { useState, useEffect } from 'react' +import { createPortal } from 'react-dom' import { useAuth } from './auth/AuthContext' import BoardMembers from './BoardMembers' import Toast from './Toast' -import SubmitButton from './SubmitButton' import DeleteButton from './DeleteButton' import './Buttons.css' import './BoardForm.css' -function BoardForm({ boardId, onNavigate, onSaved }) { +function BoardForm({ boardId, onNavigate, onSaved, isActive }) { const { authFetch } = useAuth() const [name, setName] = useState('') const [inviteEnabled, setInviteEnabled] = useState(false) @@ -252,14 +252,51 @@ function BoardForm({ boardId, onNavigate, onSaved }) { > )} -