diff --git a/public/js/webComponents/musicPlayer.js b/public/js/webComponents/musicPlayer.js new file mode 100644 index 0000000..283f002 --- /dev/null +++ b/public/js/webComponents/musicPlayer.js @@ -0,0 +1,51 @@ +const template = document.createElement("template"); + +template.innerHTML = ` + + +
+
+ +
+
+
+
+
+ +
+
+`; + +class mplayer extends HTMLElement { + constructor() { + super(); + + this._shadowRoot = this.attachShadow({ mode: "open" }); + this._shadowRoot.appendChild(template.content.cloneNode(true)); + this.$mplayer = this._shadowRoot.querySelector(".mplayer"); + } + + static get observedAttributes() { + return ["title", "artist", "media_url", "cover_url"]; + } + + attributeChangedCallback(name, oldVal, newVal) { + if (oldVal != newVal) { + this[name] = newVal; + this.render(); + } + } + + render() { + this.$mplayer.querySelector(".title").innerHTML = this.title; + this.$mplayer.querySelector(".artist").innerHTML = this.artist; + this.$mplayer.querySelector(".player").src = this.media_url; + this.$mplayer.querySelector(".coverContainer > img").src = this.cover_url; + } +} + +window.customElements.define("wc-mplayer", mplayer);