, tabIdx: number) {
+ let next: number | null = null;
+ if (e.key === "ArrowRight" || e.key === "ArrowDown") {
+ e.preventDefault();
+ next = (tabIdx + 1) % tabs.length;
+ } else if (e.key === "ArrowLeft" || e.key === "ArrowUp") {
+ e.preventDefault();
+ next = (tabIdx - 1 + tabs.length) % tabs.length;
+ } else if (e.key === "Home") {
+ e.preventDefault();
+ next = 0;
+ } else if (e.key === "End") {
+ e.preventDefault();
+ next = tabs.length - 1;
+ }
+ if (next !== null) {
+ onChange(tabs[next]!.id);
+ }
+ }
+
return (
- {tabs.map((t) => {
+ {tabs.map((t, idx) => {
const on = active === t.id;
return (