From ae79e5248626819df74e5cf9ac143f9bb5e5311b Mon Sep 17 00:00:00 2001 From: Fahid Latheef Alungal Date: Sun, 7 Sep 2025 19:04:16 +0530 Subject: [PATCH] fix: add a 300 ms debounce on saveProgress from 'cmi.suspend_data' SCORM API to prevent duplicate entries --- frontend/src/pages/SCORMChapter.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/SCORMChapter.vue b/frontend/src/pages/SCORMChapter.vue index fd4cfed1..27b18036 100644 --- a/frontend/src/pages/SCORMChapter.vue +++ b/frontend/src/pages/SCORMChapter.vue @@ -107,6 +107,14 @@ const getDataFromLMS = (key) => { return '' } +let saveTimeout = null +const debouncedSaveProgress = (scormDetails) => { + clearTimeout(saveTimeout) + saveTimeout = setTimeout(() => { + saveProgress(scormDetails) + }, 300) +} + const saveDataToLMS = (key, value) => { if (key === 'cmi.core.lesson_status') { if (value === 'passed') { @@ -122,7 +130,7 @@ const saveDataToLMS = (key, value) => { }) } } else if (key === 'cmi.suspend_data' && !isSuccessfullyCompleted.value) { - saveProgress({ + debouncedSaveProgress({ is_complete: false, scorm_content: value, })