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