Convert `checksRunsSelected` state from array to set
Release-Notes: skip
Change-Id: Icaf33559fe3b4e924a2514ed8debcabbc95a8204
diff --git a/polygerrit-ui/app/elements/checks/gr-checks-results.ts b/polygerrit-ui/app/elements/checks/gr-checks-results.ts
index 4530631..848948f 100644
--- a/polygerrit-ui/app/elements/checks/gr-checks-results.ts
+++ b/polygerrit-ui/app/elements/checks/gr-checks-results.ts
@@ -768,7 +768,7 @@
* is empty, then no run is selected and all runs should be shown.
*/
@state()
- selectedRuns: string[] = [];
+ selectedRuns: Set<string> = new Set();
@state()
actions: Action[] = [];
@@ -1304,10 +1304,7 @@
}
isRunSelected(run: {checkName: string}) {
- return (
- this.selectedRuns.length === 0 ||
- this.selectedRuns.includes(run.checkName)
- );
+ return this.selectedRuns.size === 0 || this.selectedRuns.has(run.checkName);
}
renderFilter() {
@@ -1316,7 +1313,7 @@
this.isRunSelected(run) && isAttemptSelected(this.selectedAttempt, run)
);
if (
- this.selectedRuns.length === 0 &&
+ this.selectedRuns.size === 0 &&
allResults(runs).length <= 3 &&
this.filterRegExp === ''
) {
@@ -1360,7 +1357,7 @@
],
[]
);
- const isSelectionActive = this.selectedRuns.length > 0;
+ const isSelectionActive = this.selectedRuns.size > 0;
const selected = all.filter(result => this.isRunSelected(result));
const re = new RegExp(this.filterRegExp, 'i');
const filtered = selected.filter(result => matches(result, re));
diff --git a/polygerrit-ui/app/elements/checks/gr-checks-runs.ts b/polygerrit-ui/app/elements/checks/gr-checks-runs.ts
index b068426..128a9b0a 100644
--- a/polygerrit-ui/app/elements/checks/gr-checks-runs.ts
+++ b/polygerrit-ui/app/elements/checks/gr-checks-runs.ts
@@ -405,7 +405,7 @@
collapsed = false;
@state()
- selectedRuns: string[] = [];
+ selectedRuns: Set<string> = new Set();
@state()
selectedAttempt: AttemptChoice = LATEST_ATTEMPT;
@@ -668,8 +668,8 @@
private renderTitleButtons() {
if (this.collapsed) return;
- if (this.selectedRuns.length < 2) return;
- const actions = this.selectedRuns.map(selected => {
+ if (this.selectedRuns.size < 2) return;
+ const actions = [...this.selectedRuns].map(selected => {
const run = this.runs.find(
run => run.isLatestAttempt && run.checkName === selected
);
@@ -685,7 +685,7 @@
class="font-normal"
link
@click=${() =>
- this.getViewModel().updateState({checksRunsSelected: []})}
+ this.getViewModel().updateState({checksRunsSelected: undefined})}
>Unselect All</gr-button
>
<gr-tooltip-content
@@ -829,8 +829,8 @@
}
renderRun(run: CheckRun) {
- const selectedRun = this.selectedRuns.includes(run.checkName);
- const deselected = !selectedRun && this.selectedRuns.length > 0;
+ const selectedRun = this.selectedRuns.has(run.checkName);
+ const deselected = !selectedRun && this.selectedRuns.size > 0;
return html`<gr-checks-run
.run=${run}
?condensed=${this.collapsed}
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.ts b/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
index 0c9b6302..f829313 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
@@ -1411,7 +1411,7 @@
const attempt = stringToAttemptChoice(queryMap.get('attempt'));
if (attempt && attempt !== LATEST_ATTEMPT) state.attempt = attempt;
const selected = queryMap.get('checksRunsSelected');
- if (selected) state.checksRunsSelected = selected.split(',');
+ if (selected) state.checksRunsSelected = new Set(selected.split(','));
assertIsDefined(state.project, 'project');
this.reporting.setRepoName(state.project);
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
index 5c5e67d..119ba48 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
@@ -1161,7 +1161,7 @@
attempt: 1,
filter: 'fff',
tab: 'checks',
- checksRunsSelected: ['asdf', 'qwer'],
+ checksRunsSelected: new Set(['asdf', 'qwer']),
checksResultsFilter: 'asdf.*qwer',
});
});