Skip to main content

Common Examples

import { DateFieldYearlessRange } from "@servicetitan/anvil2";

function ExampleComponent() {
  return <DateFieldYearlessRange label="Date Range" />;
}

Controlled vs Uncontrolled

The DateFieldYearlessRange component can be used in controlled or uncontrolled mode.

Uncontrolled

Use defaultValue to set an initial value without controlling the state.
<DateFieldYearlessRange
  label="Season"
  defaultValue={{
    startDate: { month: 6, day: 1 },
    endDate: { month: 8, day: 31 },
  }}
/>

Controlled

Use value and onChange for full control over the component state.
const [dateRange, setDateRange] = useState({
  startDate: { month: 1, day: 1 },
  endDate: { month: 12, day: 31 },
});

<DateFieldYearlessRange
  label="Annual Period"
  value={dateRange}
  onChange={setDateRange}
/>

Date Format Modes

The component supports two date format modes: mm/dd (default) and dd/mm.
// US format (default)
<DateFieldYearlessRange label="US Format" mode="mm/dd" />

// International format
<DateFieldYearlessRange label="International Format" mode="dd/mm" />

With Validation

Show error states when validation fails.
<DateFieldYearlessRange
  label="Date Range"
  error="End date must be after start date"
  required
/>

Sizes

The component supports small, medium, and large sizes.
<DateFieldYearlessRange label="Small" size="small" />
<DateFieldYearlessRange label="Medium" size="medium" />
<DateFieldYearlessRange label="Large" size="large" />

Custom Labels

Customize the accessible labels for the start and end date fields.
<DateFieldYearlessRange
  label="Service Period"
  startLabel="Service starts"
  endLabel="Service ends"
/>

React Accessibility

  • The component uses a fieldset with a legend for proper grouping
  • Start and end date fields have individual accessible labels (visually hidden)
  • Error messages are announced via aria-live
  • The moreInfo tooltip content is also available to screen readers
For more guidance on form field labels and context, see input field context association best practices.
Last modified on January 23, 2026