diff --git a/VERSION b/VERSION index 4822aae..0213e55 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.24.2 +4.24.3 diff --git a/play-life-web/package.json b/play-life-web/package.json index b5ab095..580485e 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "4.24.2", + "version": "4.24.3", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/App.jsx b/play-life-web/src/App.jsx index 0a013e1..bb22a79 100644 --- a/play-life-web/src/App.jsx +++ b/play-life-web/src/App.jsx @@ -1210,7 +1210,7 @@ function AppContent() { {loadedTabs['tracking-access'] && (
- +
)} diff --git a/play-life-web/src/components/TrackingAccess.jsx b/play-life-web/src/components/TrackingAccess.jsx index d35f27b..5df5835 100644 --- a/play-life-web/src/components/TrackingAccess.jsx +++ b/play-life-web/src/components/TrackingAccess.jsx @@ -1,9 +1,9 @@ -import React, { useState, useEffect } from 'react' +import React, { useState, useEffect, useRef, useCallback } from 'react' import { useAuth } from './auth/AuthContext' import Toast from './Toast' import './Tracking.css' -function TrackingAccess({ onNavigate }) { +function TrackingAccess({ onNavigate, activeTab }) { const { authFetch } = useAuth() const [generating, setGenerating] = useState(false) const [copied, setCopied] = useState(false) @@ -11,13 +11,9 @@ function TrackingAccess({ onNavigate }) { const [tracked, setTracked] = useState([]) const [loading, setLoading] = useState(true) const [toastMessage, setToastMessage] = useState(null) + const prevActiveTabRef = useRef(null) - // Загрузка списков при монтировании - useEffect(() => { - fetchAccessData() - }, []) - - const fetchAccessData = async () => { + const fetchAccessData = useCallback(async () => { setLoading(true) try { const res = await authFetch('/api/tracking/access') @@ -31,7 +27,21 @@ function TrackingAccess({ onNavigate }) { } finally { setLoading(false) } - } + }, [authFetch]) + + // Загрузка списков при монтировании + useEffect(() => { + fetchAccessData() + }, [fetchAccessData]) + + // Обновление данных при открытии экрана + useEffect(() => { + // Проверяем, что экран только что открылся (activeTab стал 'tracking-access') + if (activeTab === 'tracking-access' && prevActiveTabRef.current !== 'tracking-access') { + fetchAccessData() + } + prevActiveTabRef.current = activeTab + }, [activeTab, fetchAccessData]) const handleCreateInvite = async () => { setGenerating(true)