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