CalendarMatcher
A CalendarMatcher selects which native dates match a modifier or disabled rule. Three shapes are supported uniformly:
type CalendarMatcher =
| readonly DisabledDateInput[] // individual days
| readonly DisabledDateRangeInput[] // inclusive ranges
| ((nativeDate: Date) => boolean); // predicate
DisabledDateInput is unknown — the active system's from() normalises each value.
Date List
modifiers={{
booked: [
new Date(2024, 4, 7),
'2024-05-15', // if your system's from() accepts strings
],
}}
Range List
Discriminated by a start + end field on the first entry:
modifiers={{
holiday: [
{ start: new Date(2024, 11, 24), end: new Date(2024, 11, 26) },
],
}}
Ranges are inclusive on both ends.
Predicate
modifiers={{
weekend: (d) => d.getDay() === 0 || d.getDay() === 6,
}}
Predicates receive a native Date. If the function throws, the library treats the day as not matched (never crashes the grid).
Empty Arrays
An empty array matches nothing.
Grid Utilities
The same matching logic powers matchDate in react-native-headless-calendar for advanced use outside the store:
import {
matchDate,
createGregorianSystem,
} from 'react-native-headless-calendar';
const sys = createGregorianSystem();
matchDate(sys, date, (d) => d.getMonth() === 5);