{
+ if (!['ArrowDown', 'ArrowUp'].includes(event.key)) {
+ return
+ }
+
+ const getNext = () => {
+ const next = Number(index) + 1 === numberOfItems ? 0 : Number(index) + 1
+
+ return document.getElementById(`button--${next}`)
+ }
+
+ const getPrevious = () => {
+ const previous =
+ Number(index) - 1 < 0 ? numberOfItems - 1 : Number(index) - 1
+
+ return document.getElementById(`button--${previous}`)
+ }
+
+ switch (event.key) {
+ case 'ArrowDown':
+ event.preventDefault()
+ getNext()?.focus()
+ break
+
+ case 'ArrowUp':
+ event.preventDefault()
+ getPrevious()?.focus()
+ break
+
+ default:
+ }
+ }
+
return (