4.24.3: Обновление данных экрана доступа
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m18s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m18s
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "play-life-web",
|
"name": "play-life-web",
|
||||||
"version": "4.24.2",
|
"version": "4.24.3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1210,7 +1210,7 @@ function AppContent() {
|
|||||||
{loadedTabs['tracking-access'] && (
|
{loadedTabs['tracking-access'] && (
|
||||||
<div className={getTabContainerClasses('tracking-access')}>
|
<div className={getTabContainerClasses('tracking-access')}>
|
||||||
<div className={getInnerContainerClasses('tracking-access')}>
|
<div className={getInnerContainerClasses('tracking-access')}>
|
||||||
<TrackingAccess onNavigate={handleNavigate} />
|
<TrackingAccess onNavigate={handleNavigate} activeTab={activeTab} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import React, { useState, useEffect } from 'react'
|
import React, { useState, useEffect, useRef, useCallback } from 'react'
|
||||||
import { useAuth } from './auth/AuthContext'
|
import { useAuth } from './auth/AuthContext'
|
||||||
import Toast from './Toast'
|
import Toast from './Toast'
|
||||||
import './Tracking.css'
|
import './Tracking.css'
|
||||||
|
|
||||||
function TrackingAccess({ onNavigate }) {
|
function TrackingAccess({ onNavigate, activeTab }) {
|
||||||
const { authFetch } = useAuth()
|
const { authFetch } = useAuth()
|
||||||
const [generating, setGenerating] = useState(false)
|
const [generating, setGenerating] = useState(false)
|
||||||
const [copied, setCopied] = useState(false)
|
const [copied, setCopied] = useState(false)
|
||||||
@@ -11,13 +11,9 @@ function TrackingAccess({ onNavigate }) {
|
|||||||
const [tracked, setTracked] = useState([])
|
const [tracked, setTracked] = useState([])
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
const [toastMessage, setToastMessage] = useState(null)
|
const [toastMessage, setToastMessage] = useState(null)
|
||||||
|
const prevActiveTabRef = useRef(null)
|
||||||
|
|
||||||
// Загрузка списков при монтировании
|
const fetchAccessData = useCallback(async () => {
|
||||||
useEffect(() => {
|
|
||||||
fetchAccessData()
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
const fetchAccessData = async () => {
|
|
||||||
setLoading(true)
|
setLoading(true)
|
||||||
try {
|
try {
|
||||||
const res = await authFetch('/api/tracking/access')
|
const res = await authFetch('/api/tracking/access')
|
||||||
@@ -31,7 +27,21 @@ function TrackingAccess({ onNavigate }) {
|
|||||||
} finally {
|
} finally {
|
||||||
setLoading(false)
|
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 () => {
|
const handleCreateInvite = async () => {
|
||||||
setGenerating(true)
|
setGenerating(true)
|
||||||
|
|||||||
Reference in New Issue
Block a user