diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 6dbb59e..5eb2b60 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -25,7 +25,8 @@ export default function App() { const [volumeMax, setVolumeMax] = useState(1000); const [timeSeconds, setTimeSeconds] = useState(300); const [rangePoints, setRangePoints] = useState(10); - const [configDirty, setConfigDirty] = useState(false); + const [configDirty, setConfigDirty] = useState(false); // qualquer campo mudou + const [backendDirty, setBackendDirty] = useState(false); // só campos que precisam do backend const [targetSymbol, setTargetSymbol] = useState('EURUSD'); // History Mode @@ -336,7 +337,7 @@ export default function App() { MODO DE FECHAMENTO { setDeltaMax(Math.max(100, Number(e.target.value) || 100)); setConfigDirty(true); }} + onChange={e => { setDeltaMax(Math.max(100, Number(e.target.value) || 100)); setConfigDirty(true); setBackendDirty(true); }} className="flex-1 bg-transparent text-center text-sm font-bold text-white outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none" /> - + )} @@ -364,12 +365,12 @@ export default function App() {
VOLUME MÁX
- + { setVolumeMax(Math.max(100, Number(e.target.value) || 100)); setConfigDirty(true); }} + onChange={e => { setVolumeMax(Math.max(100, Number(e.target.value) || 100)); setConfigDirty(true); setBackendDirty(true); }} className="flex-1 bg-transparent text-center text-sm font-bold text-white outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none" /> - +
)} @@ -377,12 +378,12 @@ export default function App() {
TEMPO (segundos)
- + { setTimeSeconds(Math.max(10, Number(e.target.value) || 10)); setConfigDirty(true); }} + onChange={e => { setTimeSeconds(Math.max(10, Number(e.target.value) || 10)); setConfigDirty(true); setBackendDirty(true); }} className="flex-1 bg-transparent text-center text-sm font-bold text-white outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none" /> - +
)} @@ -390,19 +391,24 @@ export default function App() {
RANGE (pontos)
- + { setRangePoints(Math.max(1, Number(e.target.value) || 1)); setConfigDirty(true); }} + onChange={e => { setRangePoints(Math.max(1, Number(e.target.value) || 1)); setConfigDirty(true); setBackendDirty(true); }} className="flex-1 bg-transparent text-center text-sm font-bold text-white outline-none [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none" /> - +
)} - {/* Apply */} + {/* Apply — só chama backend se campos do backend mudaram */}