Skip to content

Commit

Permalink
painful realization moment
Browse files Browse the repository at this point in the history
  • Loading branch information
NyaomiDEV committed Jan 25, 2025
1 parent 7a6c939 commit 5c39601
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 8 deletions.
28 changes: 23 additions & 5 deletions src/lib/db/entities.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,29 @@ interface EventReminder extends ReminderBase {
},

// make it either-or in regards to PeriodicReminder
scheduleEveryInterval?: never,
scheduleEveryWeekday?: never,
scheduleTimeAt?: never
scheduleEveryDateInterval?: never,
scheduleEveryWeekdayInterval?: never,
scheduleTimeInterval?: never
}

/*
periodic reminders are strange in how they work.
let's suppose you want a notification every day at 7.30:
you'd set the minutes at 30, the hours at 7
but you shall not set the day, as an undefined value means "it will repeat every day".
once you set a day, it will repeat every month on that day,
and by this fashion, if you set a month it will repeat every year that month,
that day, so on and so forth.
to keep this consistent and simple, seconds will be always set to zero,
the hours and minutes will always be asked.
the frontend should then ask "every day" or "set a day in the month"
and so on and so forth, "every month" or "set a month in the year"...
the problem is that we can't do stuff "every two days, every three days" in this way,
and Tauri doesn't give us any better ways, sadly.
*/
interface PeriodicReminderBase extends ReminderBase {
type: "periodic",
scheduleTimeInterval?: {
Expand All @@ -103,15 +121,15 @@ interface PeriodicReminderBase extends ReminderBase {
delay?: never
}

interface PeriodicReminderDate extends ReminderBase {
interface PeriodicReminderDate extends PeriodicReminderBase {
scheduleEveryDateInterval?: {
year?: number,
month?: number,
day?: number,
},
scheduleEveryWeekdayInterval?: never
}
interface PeriodicReminderWeekday extends ReminderBase {
interface PeriodicReminderWeekday extends PeriodicReminderBase {
scheduleEveryWeekdayInterval?: {
monday?: boolean,
tuesday?: boolean,
Expand Down
6 changes: 3 additions & 3 deletions src/modals/ReminderEdit.vue
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@
const _reminder = toRaw(reminder.value);
if(_reminder.type === "event"){
delete (_reminder as EventReminder).scheduleEveryInterval;
delete (_reminder as EventReminder).scheduleEveryWeekday;
delete (_reminder as EventReminder).scheduleTimeAt;
delete (_reminder as EventReminder).scheduleEveryDateInterval;
delete (_reminder as EventReminder).scheduleEveryWeekdayInterval;
delete (_reminder as EventReminder).scheduleTimeInterval;
} else {
delete (_reminder as PeriodicReminder).delay;
delete (_reminder as PeriodicReminder).triggeringEvent;
Expand Down

0 comments on commit 5c39601

Please sign in to comment.