캘린더 헤더

캘린더 헤더는 이동 컨트롤, 뷰 전환기, 검색 기능을 제공합니다. 동작을 조정하거나 통째로 교체할 수 있습니다.

헤더 숨기기

직접 내비게이션을 만들 생각이거나 기본 헤더가 필요 없다면 헤더를 끌 수 있습니다.

const calendar = useCalendarApp({
  views: [createMonthView()],
  useCalendarHeader: false, // 기본 헤더 숨기기
});

헤더 직접 만들기

v3.4.1부터 적용된 호환성 변경

useCalendarHeader에 함수를 전달하는 방식은 더 이상 지원되지 않습니다. 아래 예시처럼 직접 만든 헤더를 DayFlowCalendarcalendarHeader 슬롯으로 옮기세요.

calendarHeader 콘텐츠 슬롯을 사용하면 기본 헤더를 직접 만든 컴포넌트로 교체할 수 있습니다. 렌더러는 캘린더의 상태와 헬퍼 메서드를 전달받으므로, 직접 만든 UI에서 이동과 검색을 제어할 수 있습니다.

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>

슬롯 인자

슬롯 렌더러는 다음 인자를 전달받습니다:

인자설명
calendarCalendarApp 인스턴스입니다.
switcherMode현재 뷰 전환기 모드입니다(buttons 또는 select).
onAddCalendar새 캘린더를 추가하는 핸들러입니다.
onSearchChange검색어를 갱신하는 핸들러입니다.
onSearchClick검색 아이콘을 클릭했을 때의 핸들러입니다.
searchValue현재 검색 문자열입니다.
isSearchOpen검색 UI가 열려 있는지 여부입니다.
isEditable캘린더가 현재 편집 가능한 상태인지 여부입니다.
safeAreaLeftmacOS에서 창 버튼과 겹치지 않도록 두는 왼쪽 여백(px)입니다.