Actualiser src/features/menu/index.jsx
Deploy to home / deploy (push) Successful in 11s

This commit is contained in:
cvancau
2026-08-09 22:34:15 +02:00
parent 46a046e215
commit f0880a9be5
+15 -52
View File
@@ -188,9 +188,7 @@ export default function Menu(props) {
<div className="my-1 flex flex-col items-center space-y-2">
<button
className="btn bg-indigo-600 text-white hover:bg-indigo-700 w-full font-semibold"
onClick={() => {
requestCurrentPatchDump();
}}
onClick={() => {requestCurrentPatchDump();}}
>
📥 Import from KORG
</button>
@@ -199,23 +197,18 @@ export default function Menu(props) {
{/* CONTENEUR DES BOUTONS D'ACTIONS */}
<div className="my-1">
<div className="text-xs font-semibold text-gray-500 uppercase mb-1">
Patch
</div>
<div className="text-xs font-semibold text-gray-500 uppercase mb-1">PATCHS</div>
<div className="grid grid-cols-3 gap-1">
<button
className="btn w-full"
onClick={() => dispatch(parameterRefreshAll())}
>
New
>New
</button>
<button
className="btn w-full"
onClick={() => fileRef.current.click()}
>
Load
>Load
</button>
<button
@@ -227,9 +220,9 @@ export default function Menu(props) {
'application/octet-binary'
);
}}
>
Save
>Save
</button>
</div>
<input
@@ -239,6 +232,7 @@ export default function Menu(props) {
ref={fileRef}
onChange={(e) => loadFile(e.target.files[0])}
/>
</div>
{/* liste single,multiple,vocoder */}
@@ -262,66 +256,41 @@ export default function Menu(props) {
}}
/>
</div>
</div>
{/* 2 boutons Editor / Memory */}
<div className="my-1 w-full">
<div className="text-xs font-semibold text-gray-500 uppercase mb-1">Pages</div>
<div className="flex gap-1 w-full">
<button
className={props.page === 'editor' ? 'btn btn-active w-1/2' : 'btn w-1/2'}
onClick={() => props.setPage('editor')}
>
Editor
</button>
<button
className={props.page === 'memory' ? 'btn btn-active w-1/2' : 'btn w-1/2'}
onClick={() => props.setPage('memory')}
>
Memory
</button>
</div>
</div>
{/* Choix Timbre 1, Timbre 2, Vocoder, Arp/FX */}
<div className="my-1 w-full">
<div className="text-xs font-semibold text-gray-500 uppercase mb-1">
TIMBRES
</div>
<div className="text-xs font-semibold text-gray-500 uppercase mb-1">TIMBRES</div>
<div className="grid grid-cols-4 gap-1">
<button
disabled={state.patch.mode === 'Vocoder'}
className={activeTab === 'Timbre1' ? 'btn btn-active w-full' : 'btn w-full'}
onClick={() => dispatch(parameterUpdateTab('Timbre1'))}
>
Timbre1
>Timbre1
</button>
<button
disabled={state.patch.mode !== 'Multiple'}
className={activeTab === 'Timbre2' ? 'btn btn-active w-full' : 'btn w-full'}
onClick={() => dispatch(parameterUpdateTab('Timbre2'))}
>
Timbre2
>Timbre2
</button>
<button
disabled={state.patch.mode !== 'Vocoder'}
className={activeTab === 'Vocoder' ? 'btn btn-active w-full' : 'btn w-full'}
onClick={() => dispatch(parameterUpdateTab('Vocoder'))}
>
Vocoder
>Vocoder
</button>
<button
className={activeTab === 'Effects' ? 'btn btn-active w-full' : 'btn w-full'}
onClick={() => dispatch(parameterUpdateTab('Effects'))}
>
Arp/FX
>Arp/FX
</button>
</div>
</div>
@@ -337,16 +306,10 @@ export default function Menu(props) {
<div className="text-gray-600 italic">Aucun flux détecté...</div>
) : (
midiLogs.map((log, idx) => (
<div
key={idx}
className={log.type === 'in' ? 'text-emerald-400' : 'text-cyan-400'}
>
{log.text}
</div>
<div key={idx} className={log.type === 'in' ? 'text-emerald-400' : 'text-cyan-400'}>{log.text}</div>
))
)}
<div ref={consoleBottomRef} />
</div>
<div ref={consoleBottomRef} /></div>
</div>
<div className="w-full text-center text-xl font-semibold border-t border-gray-200 pt-2">