Files
dash-cli/source/hooks/useDeviceInfo.js

35 lines
922 B
JavaScript

// hooks/useDeviceInfo.js
import { useState, useEffect } from 'react';
async function fetchDeviceInfo() {
const url = 'http://192.168.0.19:19837/device-info';
const response = await fetch(url);
if (!response.ok) throw new Error('Erreur HTTP ' + response.status);
return response.json();
}
export function useDeviceInfo() {
const [deviceInfo, setDeviceInfo] = useState(null);
const [deviceError, setDeviceError] = useState(null);
async function updateDeviceInfo() {
try {
const data = await fetchDeviceInfo();
setDeviceInfo(data);
setDeviceError(null);
} catch (_) {
setDeviceError("Impossible de récupérer les informations du device");
setDeviceInfo(null);
}
}
useEffect(() => {
updateDeviceInfo();
const interval = setInterval(updateDeviceInfo, 60000);
return () => clearInterval(interval);
}, []);
return { deviceInfo, deviceError };
}