import { useSyncExternalStore } from 'react'; import { midiManager } from '../input/webmidi.ts'; import { keyboardPiano } from '../input/keyboardPiano.ts'; function useMidiState() { return useSyncExternalStore( (cb) => midiManager.subscribeState(cb), () => midiManager.getState(), ); } function useKbdState(): number { // encodes enabled+octave so the snapshot is a stable primitive return useSyncExternalStore( (cb) => keyboardPiano.subscribeState(cb), () => (keyboardPiano.enabled ? keyboardPiano.octave : -1), ); } export function DeviceBar() { const midi = useMidiState(); const kbd = useKbdState(); return (