feat: Enable styling loader (#554)
Exports loader parts so that the loading screen can be styled when embedding.
This commit is contained in:
@@ -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
@@ -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 <b>${this.sourceUrl}</b>...</p>
|
<p class="level-item" part="spinner-label">
|
||||||
|
Loading <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>
|
||||||
|
|||||||
Reference in New Issue
Block a user