{#if !connected}
Venter på tilkobling…
{:else}
←
{monthNames[viewMonth]} {viewYear}
I dag
→
{#each dayNames as day}
{day}
{/each}
{#each calendarDays as day (day.dateKey)} {@const dayEvents = eventsByDate.get(day.dateKey) ?? []} {@const isDropTarget = dragOverDate === day.dateKey}
handleDragOver(e, day.dateKey)} ondragleave={handleDragLeave} ondrop={(e: DragEvent) => handleDrop(e, day.dateKey)} role="gridcell" >
{day.dayOfMonth}
{#if day.isCurrentMonth && accessToken}
startAddEvent(day.dateKey)} class="cal-add-btn" title="Legg til hendelse" >+
{/if}
{#each dayEvents as event (event.node.id)}
handleDragStart(e, event)} ondragend={handleDragEnd} title="{event.timeStr ? event.timeStr + ' ' : ''}{event.node.title || 'Uten tittel'}" > {#if event.timeStr}
{event.timeStr}
{/if}
{event.node.title || 'Uten tittel'}
{/each} {#if addingToDate === day.dateKey}
{isCreating ? '…' : 'Legg til'}
{ addingToDate = null; newEventTitle = ''; newEventTime = ''; }} class="cal-add-cancel" > Avbryt
{/if}
{/each}
{@const monthEvents = scheduledEvents.filter(e => { const d = e.scheduledAt; return d.getMonth() === viewMonth && d.getFullYear() === viewYear; })} {#if monthEvents.length > 0}
Hendelser denne måneden
{#each monthEvents as event (event.node.id)}
handleDragStart(e, event)} ondragend={handleDragEnd} >
{event.scheduledAt.getDate()}. {monthNames[event.scheduledAt.getMonth()].slice(0, 3).toLowerCase()}
{#if event.timeStr}
{event.timeStr}
{/if}
{event.node.title || 'Uten tittel'}
{/each}
{/if} {/if}