diff --git a/src/entrypoints/background/index.ts b/src/entrypoints/background/index.ts index 6e44cf8..6ec77b6 100644 --- a/src/entrypoints/background/index.ts +++ b/src/entrypoints/background/index.ts @@ -1,7 +1,7 @@ import { applyUserAgentRule } from '@/entrypoints/background/net-rules' import { autoLogIn } from '@/features/autologin/background' import { fetchCourses } from '@/features/courses/background' -import { syncCourses } from '@/features/search-sync/background' +import { sendSyncProgress, stopSync, syncCourses } from '@/features/search-sync/background' import { onMessage, sendMessageToMoodleTabs } from '@/shared/messages' import { refreshToken } from '@/shared/moodle-ws-api/token-store' import { getStored } from '@/shared/storage' @@ -17,6 +17,7 @@ onMessage('POPUP_OPEN', () => { }) onMessage('MOODLE_LOAD', () => { + console.log('Background has received a message MOODLE_LOAD') getStored('autologinLastSuccessMS').then((autologinLastSuccessMS) => { sendMessageToMoodleTabs('AUTOLOGIN_LAST_SUCCESS', autologinLastSuccessMS) }) @@ -42,8 +43,24 @@ onMessage('MOODLE_LOAD', () => { }) onMessage('REQUEST_AUTOLOGIN', () => { + console.log('Background has received a message REQUEST_AUTOLOGIN') autoLogIn().then((success) => { // Send message to all content scripts sendMessageToMoodleTabs(success ? 'AUTOLOGIN_SUCCEEDED' : 'AUTOLOGIN_FAILED') }) }) + +onMessage('REQUEST_SYNC', () => { + console.log('Background has received a message REQUEST_SYNC') + syncCourses() // Run the worker (if allowed) +}) + +onMessage('STOP_SYNC', () => { + console.log('Background has received a message STOP_SYNC') + stopSync() // Clear the pending requests queue +}) + +onMessage('REQUEST_SYNC_PROGRESS', () => { + console.log('Background has received a message REQUEST_SYNC_PROGRESS') + sendSyncProgress() // Send 'SYNCING_PROGRESS' message +}) diff --git a/src/features/search-sync/SearchAutoSyncToggle.tsx b/src/features/search-sync/SearchAutoSyncToggle.tsx index fd6944a..d229cc5 100644 --- a/src/features/search-sync/SearchAutoSyncToggle.tsx +++ b/src/features/search-sync/SearchAutoSyncToggle.tsx @@ -1,3 +1,4 @@ +import { sendMessage } from '@/shared/messages' import { removeStored, setStored, useStorage } from '@/shared/storage' import { cn } from '@/shared/ui/utils' @@ -16,8 +17,10 @@ export function SearchAutoSyncToggle() { allowSendingCourses === false ? 'bg-red-900' : 'bg-[#9747FF] hover:bg-[#6600CC]', )} onClick={() => { - setStored('allowSyncingCourses', !allowSendingCourses) + const shouldAllow = !allowSendingCourses + setStored('allowSyncingCourses', shouldAllow) removeStored('syncCoursesLastUpdateMS') + sendMessage(shouldAllow ? 'REQUEST_SYNC' : 'STOP_SYNC') }} > {allowSendingCourses === false ? 'OFF' : 'ON'}