Fix switching plugin screens
Backport of change 371094.
Release-Notes: skip
Bug: Issue 16884
Change-Id: I8603c86b3b0fcd9fb67307050081e18d7390a728
diff --git a/polygerrit-ui/app/elements/gr-app-element.ts b/polygerrit-ui/app/elements/gr-app-element.ts
index a0c277c..8371b43 100644
--- a/polygerrit-ui/app/elements/gr-app-element.ts
+++ b/polygerrit-ui/app/elements/gr-app-element.ts
@@ -63,6 +63,7 @@
import {customElement, property, query, state} from 'lit/decorators.js';
import {Shortcut, ShortcutController} from './lit/shortcut-controller';
import {cache} from 'lit/directives/cache.js';
+import {keyed} from 'lit/directives/keyed.js';
import {assertIsDefined} from '../utils/common-util';
import './gr-css-mixins';
import {isDarkTheme, prefersDarkColorScheme} from '../utils/theme-util';
@@ -487,14 +488,18 @@
private renderPluginScreen() {
if (this.view !== GerritView.PLUGIN_SCREEN) return nothing;
const pluginViewState = this.params as PluginViewState;
- return html`
- <gr-endpoint-decorator .name=${this.computePluginScreenName()}>
- <gr-endpoint-param
- name="token"
- .value=${pluginViewState.screen}
- ></gr-endpoint-param>
- </gr-endpoint-decorator>
- `;
+ const pluginScreenName = this.computePluginScreenName();
+ return keyed(
+ pluginScreenName,
+ html`
+ <gr-endpoint-decorator .name=${pluginScreenName}>
+ <gr-endpoint-param
+ name="token"
+ .value=${pluginViewState.screen}
+ ></gr-endpoint-param>
+ </gr-endpoint-decorator>
+ `
+ );
}
private renderCLAView() {