import React, { MouseEventHandler, useState } from 'react'; import { Box, Button, Chip, config, Icon, Icons, Menu, PopOut, RectCords, Text, toRem, } from 'folds'; import FocusTrap from 'focus-trap-react'; import { SettingTile } from '../setting-tile'; import { SequenceCard } from '../sequence-card'; import { stopPropagation } from '../../utils/keyboard'; export function RoomVersionSelector({ versions, value, onChange, disabled, }: { versions: string[]; value: string; onChange: (value: string) => void; disabled?: boolean; }) { const [menuCords, setMenuCords] = useState(); const handleMenu: MouseEventHandler = (evt) => { setMenuCords(evt.currentTarget.getBoundingClientRect()); }; const handleSelect = (version: string) => { setMenuCords(undefined); onChange(version); }; return ( setMenuCords(undefined), clickOutsideDeactivates: true, isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown' || evt.key === 'ArrowRight', isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp' || evt.key === 'ArrowLeft', escapeDeactivates: stopPropagation, }} > Versions {versions.map((version) => ( handleSelect(version)} type="button" > {version} ))} } > } /> ); }