Kalender-Kopfzeile

Die Kalender-Kopfzeile enthält die Navigation, den Ansichtsumschalter und die Suche. Sie können ihr Verhalten anpassen oder sie vollständig ersetzen.

Die Kopfzeile ausblenden

Wenn Sie eine eigene Navigation bauen möchten oder die Standardkopfzeile schlicht nicht brauchen, können Sie sie abschalten.

const calendar = useCalendarApp({
  views: [createMonthView()],
  useCalendarHeader: false, // Blendet die Standardkopfzeile aus
});

Eigene Kopfzeile

Inkompatible Änderung seit v3.4.1

Eine Funktion an useCalendarHeader zu übergeben, wird nicht mehr unterstützt. Verschieben Sie Ihre eigene Kopfzeile wie unten gezeigt in den Slot calendarHeader von DayFlowCalendar.

Über den Content-Slot calendarHeader ersetzen Sie die Standardkopfzeile durch eine eigene Komponente. Ihr Renderer erhält den Zustand des Kalenders und dessen Hilfsmethoden, sodass Sie Navigation und Suche aus Ihrer eigenen Oberfläche heraus steuern können.

const calendar = useCalendarApp({
  views: [createMonthView()],
});

<DayFlowCalendar
  calendar={calendar}
  calendarHeader={() => (
    <div className='custom-header'>
      <button onClick={() => calendar.goToPrevious()}>‹</button>
      <button onClick={() => calendar.goToToday()}>Today</button>
      <button onClick={() => calendar.goToNext()}>›</button>
    </div>
  )}
/>;
<DayFlowCalendar :calendar="calendar">
  <template #calendarHeader="{ calendar }">
    <div class="custom-header">
      <button @click="calendar.goToPrevious()">‹</button>
      <button @click="calendar.goToToday()">Today</button>
      <button @click="calendar.goToNext()">›</button>
    </div>
  </template>
</DayFlowCalendar>
<dayflow-calendar
  [calendar]="calendar"
  [calendarHeader]="header"
>
</dayflow-calendar>

<ng-template #header let-args>
  <div class="custom-header">
    <button (click)="args.calendar.goToPrevious()">‹</button>
    <button (click)="args.calendar.goToToday()">Today</button>
    <button (click)="args.calendar.goToNext()">›</button>
  </div>
</ng-template>
<DayFlowCalendar {calendar} calendarHeader={CustomHeader} />

<!-- CustomHeader.svelte -->
<script lang="ts">
  import type { CalendarHeaderProps } from '@dayflow/core';
  let { calendar } = $props<CalendarHeaderProps>();
</script>

<div class="custom-header">
  <button onclick={() => calendar.goToPrevious()}>‹</button>
  <button onclick={() => calendar.goToToday()}>Today</button>
  <button onclick={() => calendar.goToNext()}>›</button>
</div>

Slot-Argumente

Der Slot-Renderer erhält die folgenden Argumente:

ArgumentBeschreibung
calendarDie CalendarApp-Instanz.
switcherModeDer aktuelle Modus des Ansichtsumschalters (buttons oder select).
onAddCalendarHandler zum Hinzufügen eines neuen Kalenders.
onSearchChangeHandler zum Aktualisieren des Suchbegriffs.
onSearchClickHandler für den Klick auf das Suchsymbol.
searchValueDer aktuelle Suchtext.
isSearchOpenGibt an, ob die Such-Oberfläche gerade geöffnet ist.
isEditableGibt an, ob der Kalender derzeit bearbeitbar ist.
safeAreaLeftLinker Innenabstand (px), damit die Fensterbuttons unter macOS nicht überdeckt werden.