, index: number) => {
+ switch (event.key) {
+ case 'ArrowLeft':
+ case 'ArrowUp':
+ event.preventDefault();
+ focusOption((index - 1 + options.length) % options.length);
+ break;
+ case 'ArrowRight':
+ case 'ArrowDown':
+ event.preventDefault();
+ focusOption((index + 1) % options.length);
+ break;
+ case 'Home':
+ event.preventDefault();
+ focusOption(0);
+ break;
+ case 'End':
+ event.preventDefault();
+ focusOption(options.length - 1);
+ break;
+ default:
+ break;
+ }
+ };
+
return (
- {options.map((option) => {
+ {options.map((option, index) => {
const active = value === option.value;
return (