diff --git a/UI/ShareButton.ts b/UI/ShareButton.ts new file mode 100644 index 0000000000..42bb0aba12 --- /dev/null +++ b/UI/ShareButton.ts @@ -0,0 +1,38 @@ +import {UIElement} from "./UIElement"; + +export default class ShareButton extends UIElement{ + private _embedded: UIElement; + private _shareData: { text: string; title: string; url: string }; + + constructor(embedded: UIElement, shareData: { + text: string, + title: string, + url: string + }) { + super(); + this._embedded = embedded; + this._shareData = shareData; + } + + InnerRender(): string { + return `` + } + + protected InnerUpdate(htmlElement: HTMLElement) { + super.InnerUpdate(htmlElement); + const self= this; + htmlElement.addEventListener('click', () => { + if (navigator.share) { + navigator.share(self._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'); + } + }); + } + +} \ No newline at end of file diff --git a/UI/SpecialVisualizations.ts b/UI/SpecialVisualizations.ts index b88cff2314..2f65470073 100644 --- a/UI/SpecialVisualizations.ts +++ b/UI/SpecialVisualizations.ts @@ -196,8 +196,8 @@ export default class SpecialVisualizations { } ], constr: (tagSource: UIEventSource, args) => { - if (navigator.share !== undefined) { - return new FixedUiElement("").onClick(() => { + if (navigator.share) { + return new FixedUiElement("Share").onClick(() => { let name = tagSource["name"] let title= State.state.layoutToUse.data.title.txt