import BaseUIElement from "../BaseUIElement"; export default class ShareButton extends BaseUIElement { private _embedded: BaseUIElement; private _shareData: () => { text: string; title: string; url: string }; constructor(embedded: BaseUIElement, generateShareData: () => { text: string, title: string, url: string }) { super(); this._embedded = embedded; this._shareData = generateShareData; this.SetClass("share-button") } protected InnerConstructElement(): HTMLElement { const e = document.createElement("button") e.type = "button" e.appendChild(this._embedded.ConstructElement()) e.addEventListener('click', () => { if (navigator.share) { navigator.share(this._shareData()).then(() => { console.log('Thanks for sharing!'); }) .catch(err => { console.log(`Couldn't share because of`, err.message); }); } else { console.log('web share not supported'); } }); return e; } }