Skip to content

Commit c673cec

Browse files
committed
front: add a Swap button
1 parent 309983b commit c673cec

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

web/src/components/Solver.jsx

+13-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ export function Help({show, setShow, style}) {
100100

101101
const availableStyles = ['UserVisible', 'InMemory', 'Let'];
102102

103-
export function MainNavBar({compare, setCompare, style, setStyleName, styleMap}) {
103+
export function MainNavBar({compare, setCompare, style, setStyleName, styleMap, swapRulesets}) {
104104
const navigate = useNavigate()
105105
const [searchParams, setSearchParams] = useSearchParams();
106106
function resetSearchParams() {
@@ -164,6 +164,12 @@ export function MainNavBar({compare, setCompare, style, setStyleName, styleMap})
164164
onClick={() => setCompare(!compare)}
165165
>Compare</Button>
166166
</OverlayTrigger>
167+
{ compare ?
168+
<OverlayTrigger placement="bottom" overlay={<Tooltip>Swap the two rulesets</Tooltip>}>
169+
<Button onClick={() => swapRulesets()} >Swap</Button>
170+
</OverlayTrigger>
171+
: null
172+
}
167173
<ButtonGroup vertical={mainNavShow}>{styles}</ButtonGroup>
168174
</Stack>
169175
</Nav>
@@ -428,10 +434,15 @@ export default function Solver() {
428434
}, [compare, optionsLeft, optionsRight]);
429435
const style = styleMap[styleName];
430436

437+
const swapRulesets = () => {
438+
setOptionsLeft(optionsRight);
439+
setOptionsRight(optionsLeft);
440+
};
441+
431442
return (
432443
<>
433444
<div className="sticky-top">
434-
<MainNavBar {...{compare, setCompare, style, setStyleName, styleMap}}/>
445+
<MainNavBar {...{compare, setCompare, style, setStyleName, styleMap, swapRulesets}}/>
435446
<SolverOptions options={optionsLeft} setOptions={setOptionsLeft} title={compare ? <>Left&nbsp;&nbsp;&nbsp;</> : null}/>
436447
{compare ? <SolverOptions options={optionsRight} setOptions={setOptionsRight} title="Right"/> : null}
437448
</div>

0 commit comments

Comments
 (0)