fix: footswitch bar always shows BYPASS, BANK, scribble strips
- Capped block switches to 4 max so BYPASS and BANK are always visible - Added LCD-style scribble strip display with dark background + border - Added short abbreviated labels (GATE, OD, DST, etc.) in scribble strips - Added proper BANK ▲/▼ navigation with bank letter (A-H) - Added status LEDs on all block footswitches - BlockChain.jsx: removed extra closing </div> that broke JSX parsing
This commit is contained in:
+4
-4
@@ -150,7 +150,7 @@ const css = `
|
|||||||
.param-header { display: flex; justify-content: space-between; align-items: center; }
|
.param-header { display: flex; justify-content: space-between; align-items: center; }
|
||||||
.param-label { font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: ${T.textSec}; }
|
.param-label { font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: ${T.textSec}; }
|
||||||
.param-val { font-family: 'JetBrains Mono',monospace; font-size: 12px; font-weight: 600; }
|
.param-val { font-family: 'JetBrains Mono',monospace; font-size: 12px; font-weight: 600; }
|
||||||
.param-track-wrap { position: relative; height: 38px; display: flex; align-items: center; cursor: pointer; touch-action: none; }
|
.param-track-wrap { position: relative; height: 44px; display: flex; align-items: center; cursor: pointer; touch-action: none; }
|
||||||
.param-track { width: 100%; height: 8px; background: ${T.border}; border-radius: 4px; position: relative; overflow: hidden; }
|
.param-track { width: 100%; height: 8px; background: ${T.border}; border-radius: 4px; position: relative; overflow: hidden; }
|
||||||
.param-fill { height: 100%; border-radius: 4px; position: absolute; top: 0; left: 0; transition: width .04s; }
|
.param-fill { height: 100%; border-radius: 4px; position: absolute; top: 0; left: 0; transition: width .04s; }
|
||||||
.param-thumb { width: 26px; height: 26px; border-radius: 50%; position: absolute; top: 50%;
|
.param-thumb { width: 26px; height: 26px; border-radius: 50%; position: absolute; top: 50%;
|
||||||
@@ -785,11 +785,11 @@ export default function App() {
|
|||||||
<FootswitchBar
|
<FootswitchBar
|
||||||
blocks={blocks}
|
blocks={blocks}
|
||||||
selectedBlockId={selectedBlockId}
|
selectedBlockId={selectedBlockId}
|
||||||
currentBank="A"
|
currentBank={bankLetter}
|
||||||
onSelectBlock={handleSelectBlock}
|
onSelectBlock={handleSelectBlock}
|
||||||
onToggleBlock={handleToggleBlock}
|
onToggleBlock={handleToggleBlock}
|
||||||
onBankUp={() => {}}
|
onBankUp={handleBankUp}
|
||||||
onBankDown={() => {}}
|
onBankDown={handleBankDown}
|
||||||
onGlobalBypass={() => setState(prev => ({ ...prev, bypass: !prev.bypass }))}
|
onGlobalBypass={() => setState(prev => ({ ...prev, bypass: !prev.bypass }))}
|
||||||
globalBypass={state.bypass}
|
globalBypass={state.bypass}
|
||||||
/>
|
/>
|
||||||
|
|||||||
+12
-3
@@ -189,14 +189,23 @@ export default function FootswitchBar({
|
|||||||
// Always reserve slots for BYPASS and bank controls by capping block count
|
// Always reserve slots for BYPASS and bank controls by capping block count
|
||||||
const MAX_BLOCK_SWITCHES = 4;
|
const MAX_BLOCK_SWITCHES = 4;
|
||||||
|
|
||||||
const blockSwitches = (blocks || []).slice(0, MAX_BLOCK_SWITCHES).map(b => ({
|
const blockSwitches = (blocks || []).slice(0, MAX_BLOCK_SWITCHES).map(b => {
|
||||||
|
// Short scribble strip label — abbreviated type like real pedals
|
||||||
|
const shortLabel = {
|
||||||
|
gate: "GATE", overdrive: "OD", distortion: "DST", fuzz: "FUZZ",
|
||||||
|
chorus: "CHO", flanger: "FLN", phaser: "PHA", tremolo: "TRE",
|
||||||
|
delay: "DLY", echo: "ECH", reverb: "REV",
|
||||||
|
compressor: "CMP", eq: "EQ", cabinet: "CAB", ir: "IR", nam: "NAM",
|
||||||
|
}[(b.type || "").toLowerCase()] || (b.type || "FX").toUpperCase();
|
||||||
|
return {
|
||||||
id: b.id,
|
id: b.id,
|
||||||
label: (b.name || b.type || "FX").toUpperCase(),
|
label: shortLabel,
|
||||||
mainLabel: b.name || b.type || "FX",
|
mainLabel: b.name || b.type || "FX",
|
||||||
type: b.type,
|
type: b.type,
|
||||||
sub: b.bypassed ? "BYPASSED" : "",
|
sub: b.bypassed ? "BYPASSED" : "",
|
||||||
enabled: !b.bypassed,
|
enabled: !b.bypassed,
|
||||||
}));
|
};
|
||||||
|
});
|
||||||
|
|
||||||
const items = [
|
const items = [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user