From 040c7292b15642e0537dbf99b8bd2d2e66421709 Mon Sep 17 00:00:00 2001 From: cvancau Date: Sun, 9 Aug 2026 16:56:02 +0200 Subject: [PATCH] Actualiser src/features/menu/index.jsx --- src/features/menu/index.jsx | 87 +++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 43 deletions(-) diff --git a/src/features/menu/index.jsx b/src/features/menu/index.jsx index 742e95c..0d4b93d 100644 --- a/src/features/menu/index.jsx +++ b/src/features/menu/index.jsx @@ -1,6 +1,5 @@ -import React, { useState, useEffect } from 'react'; +import React, { useRef, useState, useEffect } from 'react'; import { initWebMidi, changeSelectedMidiPort } from '../../utils/midiHelper'; -import { useRef, useState, useEffect } from 'react'; import { Select } from '../utils/components'; import { useDispatch, useSelector } from 'react-redux'; import { @@ -9,38 +8,37 @@ import { parameterFromFile, parameterRefreshAll, selectEntities, -} from '../editor/parameters/parameterSlice'; // probably temporarily here +} from '../editor/parameters/parameterSlice'; import { return_store_from_file, return_file_from_store } from '../io'; import download from 'downloadjs'; export default function Menu() { - -// À insérer juste au début de votre fonction export default function Menu() { -const [midiDevices, setMidiDevices] = useState([]); -const [activePortId, setActivePortId] = useState(''); - -useEffect(() => { - // Charge la liste des ports physiques au démarrage - initWebMidi().then(devices => { - setMidiDevices(devices); - if (devices.length > 0) { - setActivePortId(devices[0].id); - } - }); -}, []); - -const handleMidiChange = (e) => { - const portId = e.target.value; - setActivePortId(portId); - changeSelectedMidiPort(portId); // Alerte notre helper du changement de câble -}; - + const [midiDevices, setMidiDevices] = useState([]); + const [activePortId, setActivePortId] = useState(''); const [file, setFile] = useState(null); const fileRef = useRef(null); + const state = useSelector((state) => selectEntities(state)); const activeTab = useSelector((state) => state.parameters.activeTab); const dispatch = useDispatch(); const reader = new FileReader(); + + // Chargement initial des périphériques MIDI + useEffect(() => { + initWebMidi().then(devices => { + setMidiDevices(devices); + if (devices.length > 0) { + setActivePortId(devices[0].id); + } + }); + }, []); + + const handleMidiChange = (e) => { + const portId = e.target.value; + setActivePortId(portId); + changeSelectedMidiPort(portId); + }; + const loadFile = (f) => { reader.onloadend = (e) => { setFile(new Uint8Array(e.target.result)); @@ -68,7 +66,7 @@ const handleMidiChange = (e) => {
{ />
-
- - -
+ {/* Sélecteur de Port MIDI Corrigé pour React (className) */} +
+ + +
); -} +} \ No newline at end of file