feat: Ladeanzeige mit PulseLoader vor Chart-Anzeige eingebaut

- Während Daten geladen werden, wird PulseLoader angezeigt
- Chart wird erst gerendert, wenn isLoading === false
- Canvas wird mit display:none ausgeblendet, solange geladen wird
This commit is contained in:
Ismail Ali
2025-04-09 07:35:33 +02:00
parent cb995911ab
commit b6e83ec1e5
2 changed files with 22 additions and 4 deletions

View File

@@ -29,6 +29,7 @@ ChartJS.register(
Filler
);
import { getColor } from "../../../../../../utils/colors";
import { PulseLoader } from "react-spinners";
const usePreviousData = (data: any[]) => {
const ref = useRef<any[]>([]);
useEffect(() => {
@@ -41,8 +42,13 @@ const LoopMeasurementChart = () => {
const canvasRef = useRef<HTMLCanvasElement | null>(null);
const chartInstance = useRef<ChartJS | null>(null);
const { loopMeasurementCurveChartData, selectedMode, unit, isFullScreen } =
useSelector((state: RootState) => state.kabelueberwachungChartSlice);
const {
loopMeasurementCurveChartData,
selectedMode,
unit,
isFullScreen,
isLoading,
} = useSelector((state: RootState) => state.kabelueberwachungChartSlice);
const previousData = usePreviousData(loopMeasurementCurveChartData);
@@ -177,7 +183,19 @@ const LoopMeasurementChart = () => {
return (
<div style={{ width: "100%", height: isFullScreen ? "90%" : "400px" }}>
<canvas ref={canvasRef} style={{ width: "100%", height: "100%" }} />
{isLoading && (
<div className="flex items-center justify-center h-96">
<PulseLoader color="#3B82F6" />
</div>
)}
<canvas
ref={canvasRef}
style={{
width: "100%",
height: "100%",
display: isLoading ? "none" : "block",
}}
/>
</div>
);
};

View File

@@ -6,5 +6,5 @@
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
*/
const webVersion = "1.6.215";
const webVersion = "1.6.216";
export default webVersion;