diff --git a/src-tauri/src/scheduler.rs b/src-tauri/src/scheduler.rs
index 6bf6b76..6fe53a3 100644
--- a/src-tauri/src/scheduler.rs
+++ b/src-tauri/src/scheduler.rs
@@ -35,8 +35,10 @@ pub fn spawn_scheduler(app_handle: tauri::AppHandle) {
state.insert("schedulerLastStartKey".to_string(), serde_json::json!(key));
state.insert("schedulerRunning".to_string(), serde_json::json!(true));
});
-
- let _ = app_handle.emit("schedule-trigger", "start");
+ let _ = app_handle.emit("schedule-trigger", serde_json::json!({
+ "action": "start",
+ "key": key
+ }));
}
if scheduler.stop_time_enabled
@@ -48,8 +50,10 @@ pub fn spawn_scheduler(app_handle: tauri::AppHandle) {
state.insert("schedulerLastStopKey".to_string(), serde_json::json!(key));
state.insert("schedulerRunning".to_string(), serde_json::json!(false));
});
-
- let _ = app_handle.emit("schedule-trigger", "stop");
+ let _ = app_handle.emit("schedule-trigger", serde_json::json!({
+ "action": "stop",
+ "key": key
+ }));
}
}
}
diff --git a/src/App.tsx b/src/App.tsx
index 8bdf888..a30d503 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -218,10 +218,13 @@ function App() {
useEffect(() => {
const unlisten = listen('schedule-trigger', async (event) => {
const state = useSettingsStore.getState();
- if (event.payload === 'start') {
+ const payload = event.payload as any;
+ if (payload.action === 'start') {
+ state.setSchedulerLastStartKey(payload.key);
const started = await useDownloadStore.getState().startQueue(MAIN_QUEUE_ID);
state.setSchedulerRunning(started > 0);
- } else if (event.payload === 'stop') {
+ } else if (payload.action === 'stop') {
+ state.setSchedulerLastStopKey(payload.key);
await useDownloadStore.getState().pauseQueue(MAIN_QUEUE_ID);
state.setSchedulerRunning(false);
}
diff --git a/src/components/SchedulerView.tsx b/src/components/SchedulerView.tsx
index deb433c..dac9b19 100644
--- a/src/components/SchedulerView.tsx
+++ b/src/components/SchedulerView.tsx
@@ -180,15 +180,19 @@ export default function SchedulerView() {