# RecurringSelect

> **WARNING:** This component has been deprecated from the design system. If needed, an
> equivalent component still exists in the shared component directory of our
> frontend project.

A RecurringSelect is used to provide an intuitive, accessible pre-built UI
allowing a user to build a custom schedule using a handful of different time
intervals.

While it can be used in isolation, most often makes sense to include it as part
of a more complex scheduling component that can use the returned data as part of
a complete schedule.

## Design & usage guidelines

The RecurringSelect is a complex tool, so ensure the user will require the full
suite of recurrence options before reaching for it. For instance where you may
only require a simple recurrence option, such as "Every `n` weeks", you are
likely better served using basic form inputs such as InputNumber or Select to
give the user fewer options.

The visual calendar selections in the RecurringSelect will scale up or down to
adapt to the width of the RecurringSelect's container, allowing this pattern to
be more prominent when used as a primary interface, or work in a smaller
column-based or mobile interface. Consider this as you design solutions that may
require RecurringSelect.

### Disabled state

When the RecurringSelect is set to `disabled`, all child components become
disabled. As with any design, your first goal should be **to avoid creating a
flow where the user encounters a disabled state**, so only use this approach if
a disabled state cannot be avoided.

## Accessibility

The RecurringSelect component is entirely usable by the keyboard.

All selections can be done and undone with tabs and the space bar. The "visual"
calendar-style selectors are all built using radio or checkbox elements where
necessary, ensuring that users of assistive tech have appropriate context as to
the type of selection they are making.

## Related components

To allow the user to select specific dates, use
[Datepicker](../Datepicker/Datepicker.md) or [InputDate](../InputDate/InputDate.md).


## Props

### Web

| Prop | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `onChange` | `(value: RecurrenceRule) => void` | Yes | — |  |
| `value` | `RecurrenceRule` | Yes | — |  |
| `disabled` | `boolean` | No | `false` |  |
