feat: Enable styling loader (#554)

Exports loader parts so that the loading screen can be styled when
embedding.
This commit is contained in:
sua yoo
2026-09-02 09:36:00 -07:00
committed by GitHub
parent 2868e44a9b
commit 076710293d
2 changed files with 20 additions and 3 deletions
+8
View File
@@ -115,6 +115,7 @@ export type TabData = EmbedReplayData & {
* @cssPart replay-tabs-nav * @cssPart replay-tabs-nav
* @cssPart replay-tabs-panel * @cssPart replay-tabs-panel
* @cssPart replay-main * @cssPart replay-main
* @cssPart loader
* @cssProperty rwp-bar-background-color * @cssProperty rwp-bar-background-color
* @cssProperty rwp-bar-text-color * @cssProperty rwp-bar-text-color
* @cssProperty rwp-bar-button-color * @cssProperty rwp-bar-button-color
@@ -1093,12 +1094,19 @@ class Item extends LitElement {
if (this.itemInfo && !this.itemInfo.coll) { if (this.itemInfo && !this.itemInfo.coll) {
return html` <wr-loader return html` <wr-loader
part="loader"
.loadInfo="${this.loadInfo}" .loadInfo="${this.loadInfo}"
embed="${this.embed || ""}" embed="${this.embed || ""}"
swName="${ifDefined(this.swName === null ? undefined : this.swName)}" swName="${ifDefined(this.swName === null ? undefined : this.swName)}"
.coll="${this.item}" .coll="${this.item}"
sourceUrl="${this.sourceUrl || ""}" sourceUrl="${this.sourceUrl || ""}"
@coll-loaded=${this.onItemLoaded} @coll-loaded=${this.onItemLoaded}
exportparts="
base:wr-loader__base,
spinner:wr-loader__spinner,
spinner-label:wr-loader__spinner-label,
content:wr-loader__content,
"
></wr-loader>`; ></wr-loader>`;
} else if (this.itemInfo) { } else if (this.itemInfo) {
return html` return html`
+12 -3
View File
@@ -33,6 +33,12 @@ declare let window: Window & {
}; };
}; };
/**
* @cssPart base
* @cssPart spinner
* @cssPart spinner-label
* @cssPart content
*/
class Loader extends LitElement { class Loader extends LitElement {
@property({ type: String }) sourceUrl?: string; @property({ type: String }) sourceUrl?: string;
@property({ type: Object }) loadInfo: LoadInfo | null = null; @property({ type: Object }) loadInfo: LoadInfo | null = null;
@@ -375,7 +381,7 @@ class Loader extends LitElement {
render() { render() {
return html` return html`
<section class="container"> <section class="container" part="base">
<div class="is-justify-content-center is-flex"> <div class="is-justify-content-center is-flex">
<fa-icon <fa-icon
size="5rem" size="5rem"
@@ -385,15 +391,18 @@ class Loader extends LitElement {
: rwpLogoAnimated} : rwpLogoAnimated}
aria-label="ReplayWeb.page Logo" aria-label="ReplayWeb.page Logo"
role="img" role="img"
part="spinner"
></fa-icon> ></fa-icon>
</div> </div>
${!this.embed ${!this.embed
? html` <div class="level"> ? html` <div class="level">
<p class="level-item">Loading&nbsp;<b>${this.sourceUrl}</b>...</p> <p class="level-item" part="spinner-label">
Loading&nbsp;<b>${this.sourceUrl}</b>...
</p>
</div>` </div>`
: ""} : ""}
<div class="level"> <div class="level">
<div class="level-item has-text-centered"> <div class="level-item has-text-centered" part="content">
${this.renderContent()} ${this.renderContent()}
</div> </div>
</div> </div>