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)