Handle progress save failures
This commit is contained in:
@@ -65,7 +65,7 @@ export const saveProgress = async (
|
|||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: payload,
|
body: payload,
|
||||||
});
|
});
|
||||||
if (!res.ok) return;
|
if (!res.ok) throw new Error(`progress save failed with status ${res.status}`);
|
||||||
state.episode.lastSavedProgress = {
|
state.episode.lastSavedProgress = {
|
||||||
episode: state.episode.current,
|
episode: state.episode.current,
|
||||||
seconds: savedTime,
|
seconds: savedTime,
|
||||||
@@ -91,7 +91,9 @@ const scheduleProgressSave = (): void => {
|
|||||||
if (state.timers.progressSaveTimer !== undefined) return;
|
if (state.timers.progressSaveTimer !== undefined) return;
|
||||||
state.timers.progressSaveTimer = window.setTimeout(() => {
|
state.timers.progressSaveTimer = window.setTimeout(() => {
|
||||||
state.timers.progressSaveTimer = undefined;
|
state.timers.progressSaveTimer = undefined;
|
||||||
saveProgress();
|
saveProgress().catch((error) => {
|
||||||
|
console.error("scheduled progress save failed:", error);
|
||||||
|
});
|
||||||
}, 30000);
|
}, 30000);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -140,14 +142,18 @@ export const setupProgress = (): void => {
|
|||||||
state.elements.video.duration > 0 &&
|
state.elements.video.duration > 0 &&
|
||||||
Math.abs(state.elements.video.currentTime - state.elements.video.duration) < 1.5;
|
Math.abs(state.elements.video.currentTime - state.elements.video.duration) < 1.5;
|
||||||
|
|
||||||
saveProgress(isAtEnd);
|
saveProgress(isAtEnd).catch((error) => {
|
||||||
|
console.error("pause progress save failed:", error);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// save after scrubbing
|
// save after scrubbing
|
||||||
window.addEventListener("mouseup", () => {
|
window.addEventListener("mouseup", () => {
|
||||||
state.ui.isScrubbing = false;
|
state.ui.isScrubbing = false;
|
||||||
if (state.episode.endedProgressSaved) return;
|
if (state.episode.endedProgressSaved) return;
|
||||||
saveProgress();
|
saveProgress().catch((error) => {
|
||||||
|
console.error("scrub progress save failed:", error);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// save on page close
|
// save on page close
|
||||||
|
|||||||
Reference in New Issue
Block a user