Skip to content

Commit 30397e7

Browse files
committed
Arrange elements in dropdowns in vertical order instead of horizontal
The framework list is currently arranged like: A B C D E F This patch changes it to: A C E B D F This makes it easier to scan through the list in alphabetical order when looking for a certain name. The implementation is done with CSS multi-column layouts. There seems to be some caveats in the browser support table [1], but this patch only uses the basic part, so it should be OK. [1] https://caniuse.com/multicolumn
1 parent c3878d7 commit 30397e7

File tree

3 files changed

+7
-10
lines changed

3 files changed

+7
-10
lines changed

webdriver-ts-results/src/App.css

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,7 @@ input + label {
9494
}
9595

9696
.grid {
97-
display: flex;
98-
flex-wrap: wrap;
99-
}
100-
.col-3 {
101-
width: 33%;
97+
column-count: 3;
10298
}
10399

104100
.hspan {

webdriver-ts-results/src/selection/DropDownContents.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@ interface Props<T> {
66
selectAll: (event: React.SyntheticEvent) => void;
77
isNoneSelected: boolean;
88
areAllSelected: boolean;
9+
grid?: boolean;
910
}
1011

1112
export function DropDownContents<T>(props: Props<T>) {
12-
const {selectNone, selectAll, isNoneSelected, areAllSelected, children} = props;
13+
const {selectNone, selectAll, isNoneSelected, areAllSelected, children, grid = false} = props;
1314
return <div className="section">
1415
{children[0]}
1516
<div className="float-rt">
1617
{!isNoneSelected ? <button className='textButton' onClick={selectNone}>None</button> : <button disabled={true} className='textButton'>None</button>}
1718
&nbsp;
1819
{!areAllSelected ? <button className='textButton' onClick={selectAll}>All</button> : <button disabled={true} className='textButton'>All</button>}
1920
</div>
20-
<div className="grid">
21+
<div className={grid ? "grid" : ""}>
2122
{children[1]}
2223
</div>
2324
</div>;

webdriver-ts-results/src/selection/SelectFrameworks.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const SelectBarFrameworks = ({frameworks, isSelected, select}: Props) =>
1616
return (
1717
<>
1818
{frameworks.map(item =>
19-
<div key={item.name} className="col-3">
19+
<div key={item.name}>
2020
<input className="form-check-input" id={'inp-'+item.name+'-'+item.type}
2121
type="checkbox"
2222
onChange={(evt) => select(item, evt.target.checked)}
@@ -42,11 +42,11 @@ const SelectFrameworks = () => {
4242
const areAllNoneKeyedSelected = useSelector<State, boolean>(state => areAllFrameworksSelected(state, FrameworkType.NON_KEYED));
4343

4444
return <DropDown label="Which frameworks?" width='1024px'>
45-
<DropDownContents isNoneSelected={isNoneKeyedSelected} areAllSelected={areAllKeyedSelected} selectNone={() => dispatch(selectAllFrameworks(FrameworkType.KEYED, false))} selectAll={() => dispatch(selectAllFrameworks(FrameworkType.KEYED, true))}>
45+
<DropDownContents grid isNoneSelected={isNoneKeyedSelected} areAllSelected={areAllKeyedSelected} selectNone={() => dispatch(selectAllFrameworks(FrameworkType.KEYED, false))} selectAll={() => dispatch(selectAllFrameworks(FrameworkType.KEYED, true))}>
4646
<h3>Keyed frameworks:</h3>
4747
<SelectBarFrameworks isSelected={(framework) => selectedFrameworks.has(framework)} select={(framework, add) => dispatch(selectFramework(framework, add))} frameworks={frameworksKeyed} />
4848
</DropDownContents>
49-
<DropDownContents isNoneSelected={isNoneNonKeyedSelected} areAllSelected={areAllNoneKeyedSelected} selectNone={() => dispatch(selectAllFrameworks(FrameworkType.NON_KEYED, false))} selectAll={() => dispatch(selectAllFrameworks(FrameworkType.NON_KEYED, true))}>
49+
<DropDownContents grid isNoneSelected={isNoneNonKeyedSelected} areAllSelected={areAllNoneKeyedSelected} selectNone={() => dispatch(selectAllFrameworks(FrameworkType.NON_KEYED, false))} selectAll={() => dispatch(selectAllFrameworks(FrameworkType.NON_KEYED, true))}>
5050
<h3>Non-keyed frameworks:</h3>
5151
<SelectBarFrameworks isSelected={(framework) => selectedFrameworks.has(framework)} select={(framework, add) => dispatch(selectFramework(framework, add))} frameworks={frameworksNonKeyed} />
5252
</DropDownContents>

0 commit comments

Comments
 (0)