diff --git a/src/results/resultsBar.tsx b/src/results/resultsBar.tsx index 9b05bb1..9812f63 100644 --- a/src/results/resultsBar.tsx +++ b/src/results/resultsBar.tsx @@ -73,6 +73,41 @@ export default function ResultsBar(props: { break; } + const handleRequestedMax = (event: React.ChangeEvent) => { + switch (resultStore.requested) { + case ScatteringOptions.s: + resultStore.updateRequestedRange(new NumericRange(resultStore.requestedRange.min, resultStore.s.tooQ(parseFloat(event.target.value) ?? 1))); + break; + case ScatteringOptions.d: + resultStore.updateRequestedRange(new NumericRange(resultStore.requestedRange.min, resultStore.d.tooQ(parseFloat(event.target.value) ?? 1))); + break; + case ScatteringOptions.twoTheta: + resultStore.updateRequestedRange(new NumericRange(resultStore.requestedRange.min, resultStore.twoTheta.tooQ(parseFloat(event.target.value) ?? 1))); + break; + default: + resultStore.updateRequestedRange(new NumericRange(resultStore.requestedRange.min, resultStore.q.tooQ(parseFloat(event.target.value) ?? 1))); + break; + } + } + + const handleRequestedMin = (event: React.ChangeEvent) => { + switch (resultStore.requested) { + case ScatteringOptions.s: + resultStore.updateRequestedRange(new NumericRange(resultStore.s.tooQ(parseFloat(event.target.value) ?? 0), resultStore.requestedRange.max)); + break; + case ScatteringOptions.d: + resultStore.updateRequestedRange(new NumericRange(resultStore.d.tooQ(parseFloat(event.target.value) ?? 0), resultStore.requestedRange.max)); + break; + case ScatteringOptions.twoTheta: + resultStore.updateRequestedRange(new NumericRange(resultStore.twoTheta.tooQ(parseFloat(event.target.value) ?? 0), resultStore.requestedRange.max)); + break; + default: + resultStore.updateRequestedRange(new NumericRange(resultStore.q.tooQ(parseFloat(event.target.value) ?? 0), resultStore.requestedRange.max)); + break; + } + } + + return ( @@ -207,18 +242,14 @@ export default function ResultsBar(props: { { - resultStore.updateRequestedRange(new NumericRange(parseFloat(event.target.value) ?? 0, resultStore.requestedRange.max)) - }} + value={ajustedRequestedRange.min} + onChange={handleRequestedMin} /> { - resultStore.updateRequestedRange(new NumericRange(resultStore.requestedRange.min, parseFloat(event.target.value) ?? 1)) - }} + value={ajustedRequestedRange.max} + onChange={handleRequestedMax} />