diff --git a/src/vpu-official-signature-pdf-upload.js b/src/vpu-official-signature-pdf-upload.js index c1e510ae186a29c0c6550f0ceaa69088f49bcda5..aabc16a781b40be97ac92dd21c6ab23ef840ee58 100644 --- a/src/vpu-official-signature-pdf-upload.js +++ b/src/vpu-official-signature-pdf-upload.js @@ -293,6 +293,9 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(VPUSignatureLitElem } render() { + if (this.isLoading()) { + return html`<vpu-mini-spinner></vpu-mini-spinner>`; + } return html` <div class="${classMap({hidden: !this.isLoggedIn() || !this.hasSignaturePermissions()})}"> <div class="field"> diff --git a/src/vpu-qualified-signature-pdf-upload.js b/src/vpu-qualified-signature-pdf-upload.js index e40298539f60862ec4657b559e5a38405c49f4e5..6675b7be8a454f65752a01f144674eb7b2ad8294 100644 --- a/src/vpu-qualified-signature-pdf-upload.js +++ b/src/vpu-qualified-signature-pdf-upload.js @@ -504,6 +504,9 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(VPUSignatureLitEle } render() { + if (this.isLoading()) { + return html`<vpu-mini-spinner></vpu-mini-spinner>`; + } return html` <div class="${classMap({hidden: !this.isLoggedIn() || !this.hasSignaturePermissions()})}"> <div class="field"> diff --git a/src/vpu-signature-lit-element.js b/src/vpu-signature-lit-element.js index ca73f35af8797e0e75164252bc605cf646f12ca2..70b37a4fb10980553588039a6a0532634ca1cb7c 100644 --- a/src/vpu-signature-lit-element.js +++ b/src/vpu-signature-lit-element.js @@ -12,16 +12,18 @@ export default class VPUSignatureLitElement extends LitElement { } _updateAuth() { - if (this.isLoggedIn() && !this._loginCalled) { - this._loginCalled = true; - this.loginCallback(); + // Every time isLoggedIn()/isLoading() return something different we request a re-render + let newLoginState = [this.isLoggedIn(), this.isLoading()]; + if (this._loginState.toString() !== newLoginState.toString()) { + this.requestUpdate(); } + this._loginState = newLoginState; } connectedCallback() { super.connectedCallback(); - this._loginCalled = false; + this._loginState = []; this._subscriber = new events.EventSubscriber('vpu-auth-update', 'vpu-auth-update-request'); this._updateAuth = this._updateAuth.bind(this); this._subscriber.subscribe(this._updateAuth); @@ -38,9 +40,8 @@ export default class VPUSignatureLitElement extends LitElement { return (window.VPUPerson !== undefined && window.VPUPerson !== null); } - loginCallback() { - // Implement in subclass - this.requestUpdate(); + isLoading() { + return (!this.isLoggedIn() && window.VPUAuthToken !== undefined); } getOrganization() {