diff --git a/apps/web/src/components/recurrence-picker.tsx b/apps/web/src/components/recurrence-picker.tsx index 22f8a8b..b9e6a3f 100644 --- a/apps/web/src/components/recurrence-picker.tsx +++ b/apps/web/src/components/recurrence-picker.tsx @@ -34,7 +34,6 @@ type RuleType = "daily" | "weekly" | "monthly" | "yearly"; interface Draft { type: RuleType; - dailyMode: "every_day" | "weekdays"; /** Cron weekday list (0=Sun..6=Sat). */ weekdays: number[]; monthDay: number; @@ -50,7 +49,6 @@ const MAX_RULES = 8; function defaultDraft(firstFire: DateTime): Draft { return { type: "daily", - dailyMode: "every_day", weekdays: [isoWeekdayToCron(firstFire.weekday)], monthDay: firstFire.day, month: firstFire.month, @@ -87,7 +85,7 @@ function draftToCron(d: Draft): string | null { const h = clamp(d.hour, 0, 23); switch (d.type) { case "daily": - return d.dailyMode === "weekdays" ? `${m} ${h} * * 1-5` : `${m} ${h} * * *`; + return `${m} ${h} * * *`; case "weekly": if (!d.weekdays.length) return null; return `${m} ${h} * * ${d.weekdays.slice().sort((a, b) => a - b).join(",")}`; @@ -102,9 +100,7 @@ function describeDraft(d: Draft): string { const t = `${pad2(clamp(d.hour, 0, 23))}:${pad2(clamp(d.minute, 0, 59))}`; switch (d.type) { case "daily": - return d.dailyMode === "weekdays" - ? `Every weekday at ${t}` - : `Every day at ${t}`; + return `Every day at ${t}`; case "weekly": { if (!d.weekdays.length) return "Pick at least one weekday"; const labels = d.weekdays @@ -137,12 +133,11 @@ function draftFromCronExpr(expr: string, firstFire: DateTime): Draft { const rest = head[3]!.trim(); let m: RegExpMatchArray | null; - if (rest === "* * 1-5") { - return { ...base, type: "daily", dailyMode: "weekdays", hour, minute }; - } if (rest === "* * *") { - return { ...base, type: "daily", dailyMode: "every_day", hour, minute }; + return { ...base, type: "daily", hour, minute }; } + // Any DOW list (including the legacy "1-5" weekday-only daily rule) + // round-trips as a Weekly draft. if ((m = rest.match(/^\* \* ([0-9,\-]+)$/))) { const days = m[1]! .split(",") @@ -357,18 +352,9 @@ function RuleEditor({ draft, onChange }: RuleEditorProps) { - onChange({ dailyMode: "every_day" })} - label="Every day" - /> - onChange({ dailyMode: "weekdays" })} - label="Every weekday (Mon – Fri)" - /> +

+ Fires once a day at the time below. +

@@ -485,24 +471,3 @@ function TimeField({ draft, onChange }: TimeFieldProps) { ); } -interface RadioRowProps { - name: string; - checked: boolean; - onChange: () => void; - label: string; -} - -function RadioRow({ name, checked, onChange, label }: RadioRowProps) { - return ( - - ); -}