добавил кэширование на страницу пациентов
This commit is contained in:
parent
e2c4a0b944
commit
e87baafae9
@ -24,19 +24,39 @@ const PatientsPage = () => {
|
|||||||
const [selectedPatient, setSelectedPatient] = useState(null);
|
const [selectedPatient, setSelectedPatient] = useState(null);
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
fetchPatientsWithCache();
|
||||||
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isModalVisible) {
|
if (!isModalVisible) {
|
||||||
const intervalId = setInterval(fetchPatients, 5000);
|
const intervalId = setInterval(fetchPatientsWithCache, 5000);
|
||||||
return () => clearInterval(intervalId);
|
return () => clearInterval(intervalId);
|
||||||
}
|
}
|
||||||
}, [user, isModalVisible]);
|
}, [user, isModalVisible]);
|
||||||
|
|
||||||
|
const fetchPatientsWithCache = async () => {
|
||||||
|
const cachedData = localStorage.getItem("patientsData");
|
||||||
|
const cacheTimestamp = localStorage.getItem("patientsTimestamp");
|
||||||
|
|
||||||
|
if (cachedData && cacheTimestamp && (Date.now() - parseInt(cacheTimestamp)) < 5 * 60 * 1000) {
|
||||||
|
setPatients(JSON.parse(cachedData));
|
||||||
|
setLoading(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
await fetchPatients();
|
||||||
|
};
|
||||||
|
|
||||||
const fetchPatients = async () => {
|
const fetchPatients = async () => {
|
||||||
if (!user || !user.token) return;
|
if (!user || !user.token) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const data = await getAllPatients(user.token);
|
const data = await getAllPatients(user.token);
|
||||||
setPatients(data);
|
setPatients(data);
|
||||||
|
|
||||||
|
localStorage.setItem("patientsData", JSON.stringify(data));
|
||||||
|
localStorage.setItem("patientsTimestamp", Date.now().toString());
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
notification.error({
|
notification.error({
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user