fix: Firmware-Update läuft nun exakt 5 Minuten bis 100 % Fortschritt
- Fehler behoben, bei dem das Firmware-Update nach wenigen Sekunden vorzeitig beendet wurde - Fortschrittsanzeige über Redux-Slice `firmwareProgressSlice` korrekt umgesetzt - Thunk `startFirmwareUpdateThunk` korrekt eingebunden und verwendet - UI zeigt stabile 5-minütige Progressbar wie erwartet
This commit is contained in:
@@ -13,6 +13,7 @@ import {
|
||||
openConfirmModal,
|
||||
closeConfirmModal,
|
||||
} from "@/redux/slices/confirmModalSlice";
|
||||
import { startFirmwareUpdateThunk } from "@/redux/thunks/startFirmwareUpdateThunk";
|
||||
|
||||
interface Props {
|
||||
slot: number;
|
||||
@@ -57,8 +58,13 @@ export default function KueEinstellung({
|
||||
(state: RootState) => state.confirmModal.open
|
||||
);
|
||||
|
||||
const [isUpdating, setIsUpdating] = useState(false);
|
||||
const [progress, setProgress] = useState(0);
|
||||
const isUpdating = useSelector(
|
||||
(state: RootState) => state.firmwareProgress.isUpdating
|
||||
);
|
||||
const progress = useSelector(
|
||||
(state: RootState) => state.firmwareProgress.progress
|
||||
);
|
||||
|
||||
const [formData, setFormData] = useState(() => {
|
||||
if (typeof window !== "undefined") {
|
||||
const cache = window.__kueCache?.[`slot_${slot}`];
|
||||
@@ -265,38 +271,13 @@ export default function KueEinstellung({
|
||||
onConfirm={async () => {
|
||||
dispatch(closeConfirmModal());
|
||||
toast.info("Firmware-Update gestartet. Bitte warten...");
|
||||
setIsUpdating(true);
|
||||
setProgress(0);
|
||||
|
||||
const totalDuration = 5000;
|
||||
const intervalMs = 50;
|
||||
const steps = totalDuration / intervalMs;
|
||||
let currentStep = 0;
|
||||
|
||||
const interval = setInterval(() => {
|
||||
currentStep++;
|
||||
const newProgress = Math.min((currentStep / steps) * 100, 100);
|
||||
setProgress(newProgress);
|
||||
|
||||
if (currentStep >= steps) {
|
||||
clearInterval(interval);
|
||||
setProgress(100);
|
||||
setTimeout(() => {
|
||||
toast.success(
|
||||
"✅ Firmwareupdate erfolgreich abgeschlossen."
|
||||
);
|
||||
setIsUpdating(false);
|
||||
}, 300);
|
||||
}
|
||||
}, intervalMs);
|
||||
dispatch(startFirmwareUpdateThunk(slot)); // Start Redux-Prozess
|
||||
|
||||
try {
|
||||
await firmwareUpdate(slot);
|
||||
} catch (err) {
|
||||
console.error("Firmware-Update-Fehler:", err);
|
||||
clearInterval(interval);
|
||||
toast.error("❌ Fehler beim Firmwareupdate");
|
||||
setIsUpdating(false);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user