fix: provider icon in event modal, hide synology URL, recurring event display

- Show provider icon (Google/Apple/Outlook/Synology) left of calendar color dot
- Hide URL field when Synology calendar is selected (not supported)
- Force refresh after creating recurring events so all instances show immediately
  (previously only the first occurrence appeared until next sync cycle)

v1.74.1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
mARTin 2026-03-25 11:42:26 +01:00
parent cfa4fb023c
commit 8d8ba73d17
3 changed files with 8 additions and 7 deletions

View File

@ -1,6 +1,6 @@
{
"name": "my-weekly-todo-list",
"version": "1.74.0",
"version": "1.74.1",
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
"main": "index.js",
"scripts": {

View File

@ -156,7 +156,7 @@ export default function CalendarEventModal({
}, []);
const selectedCal = availableCalendars.find((c: any) => c.id === calendarId);
const supportsURL = selectedCal && (selectedCal.provider !== 'google' && selectedCal.provider !== 'outlook');
const supportsURL = selectedCal && (selectedCal.provider !== 'google' && selectedCal.provider !== 'outlook' && selectedCal.provider !== 'synology');
const supportsAttachments = selectedCal && (selectedCal.provider === 'apple' || selectedCal.provider === 'synology');
const getProviderIcon = (provider: string) => {
@ -375,8 +375,9 @@ export default function CalendarEventModal({
{/* Calendar selector */}
<div style={{ ...iconRow, padding: '4px 0' }}>
<div style={iconCol}>
<div style={{ width: '10px', height: '10px', borderRadius: '50%', background: calColor }} />
<div style={{ ...iconCol, gap: '4px', width: 'auto', display: 'flex', alignItems: 'center' }}>
<span style={{ fontSize: '0.8rem', opacity: 0.7 }}>{selectedCal ? getProviderIcon(selectedCal.provider) : null}</span>
<div style={{ width: '10px', height: '10px', borderRadius: '50%', background: calColor, flexShrink: 0 }} />
</div>
<div ref={calendarSelectorRef} style={{ ...fieldCol, position: 'relative' }}>
<button

View File

@ -2689,9 +2689,9 @@ export default function WeeklyView() {
return [...prev, frontendEvent];
});
}
// Re-read from cache to get the canonical version
// The backend already cached the event via upsertCachedEvent
await fetchCalendarEvents(false);
// Re-read events - force refresh for recurring events so all instances expand
const isRecurring = !!(eventData.recurrence && eventData.recurrence !== 'none');
await fetchCalendarEvents(isRecurring);
} catch (error: any) {
console.error("Error saving event:", error);
if (error.name === "AbortError") {