Skip to content

Commit eeebcd5

Browse files
committed
fix: Improve server-side reminder handling and consistency
Enhance server-triggered reminders to include more comprehensive data for cross-device consistency. Prioritize server-side reminders and prevent fallback to local storage if server reminders are forced.
1 parent 74046b7 commit eeebcd5

File tree

4 files changed

+25
-6
lines changed

4 files changed

+25
-6
lines changed

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId "com.notask.app"
88
minSdkVersion rootProject.ext.minSdkVersion
99
targetSdkVersion rootProject.ext.targetSdkVersion
10-
versionCode 1518016
11-
versionName "15.18.16"
10+
versionCode 1518017
11+
versionName "15.18.17"
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
aaptOptions {
1414
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"type": "module",
33
"name": "my-notes-and-tasks-modern",
4-
"version": "15.18.16",
4+
"version": "15.18.17",
55
"private": true,
66
"license": "Licensed CC BY-ND 4.0. No derivatives allowed.",
77
"scripts": {

src/components/reminders/reminderMonitor.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,20 @@ async triggerReminder(reminder, settings) {
610610

611611
// Direct trigger from server (for server-scheduled reminders)
612612
socket.on("reminder:trigger", (reminder) => {
613-
this.triggerReminder(reminder, this.currentSettings || {});
613+
console.log('🔔 Server triggered reminder received:', reminder);
614+
615+
// Enhanced reminder object for cross-device consistency
616+
const enhancedReminder = {
617+
itemId: reminder.itemId,
618+
itemTitle: reminder.itemTitle,
619+
timestamp: typeof reminder.timestamp === 'string'
620+
? new Date(reminder.timestamp).getTime()
621+
: reminder.timestamp,
622+
...reminder.reminderData?.originalReminder,
623+
triggeredByServer: true
624+
};
625+
626+
this.triggerReminder(enhancedReminder, this.currentSettings || {});
614627
});
615628
}
616629

src/utils/reminderUtils.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import { serverReminderService } from '../services/serverReminderService.js';
44
const REMINDERS_STORAGE_KEY = 'notes_app_reminders';
55
let useServerReminders = true; // Flag to control which system to use
66

7+
// Force server reminders to be the primary system
8+
const FORCE_SERVER_REMINDERS = true;
9+
710
/**
811
* Initialize reminder service and migrate if needed
912
*/
@@ -38,8 +41,8 @@ export const initializeReminderService = async () => {
3841
* @param {string|null} itemTitle - The title of the item for the reminder.
3942
*/
4043
export const setReminder = async (itemId, timestamp, repeatOptions = null, itemTitle = null) => {
41-
// Try server-side reminders first
42-
if (useServerReminders) {
44+
// Always try server-side reminders first if forced
45+
if (useServerReminders || FORCE_SERVER_REMINDERS) {
4346
try {
4447
await serverReminderService.setReminder(itemId, timestamp, repeatOptions, itemTitle);
4548
console.log(`📡 Reminder set via server for item ${itemId} at ${new Date(timestamp)}`);
@@ -53,6 +56,9 @@ export const setReminder = async (itemId, timestamp, repeatOptions = null, itemT
5356
return;
5457
} catch (error) {
5558
console.warn('⚠️ Failed to set reminder on server, falling back to localStorage:', error);
59+
if (FORCE_SERVER_REMINDERS) {
60+
throw error; // Don't fall back if server reminders are forced
61+
}
5662
}
5763
}
5864

0 commit comments

Comments
 (0)