UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

85 lines (83 loc) 2.72 kB
"use strict"; exports.__esModule = true; exports.default = share; var _sharingProvider = require("./sharingProvider"); function shareWithUrl(link) { if (link.startsWith('mailto')) { window.open(link); } else if (link.indexOf('chaynsqrcodegenerator') > 0) { chayns.openImage(link); } else { chayns.openUrlInBrowser(link); } } function shareWithApp(provider, message) { const value = { text: message, sharingApp: provider.providerId > -1 ? provider.providerId : -1, sharingAndroidApp: provider.androidIdentifier || null }; chayns.share(value); } function copyToClipboard(link) { const aux = document.createElement('input'); const range = document.createRange(); aux.setAttribute('value', link); aux.setAttribute('contenteditable', 'true'); document.body.appendChild(aux); aux.select(); range.selectNodeContents(aux); const s = window.getSelection(); s.removeAllRanges(); s.addRange(range); aux.setSelectionRange(0, 999999); document.execCommand('copy'); document.body.removeChild(aux); } async function webShareApi(link, linkText) { try { await navigator.share({ url: link, text: linkText }); } catch (ignored) { // do nothing } } function share(provider, link, linkText) { switch (provider.id) { case _sharingProvider.shareOptions.COPY: copyToClipboard(link); break; case _sharingProvider.shareOptions.MAIL: { if (provider.useApp) { shareWithApp(provider, `${linkText} ${link}`.trim()); } else { shareWithUrl(provider.url.replace('{url}', encodeURIComponent(`${linkText} ${link}`.trim()))); } break; } case _sharingProvider.shareOptions.WHATSAPP: shareWithUrl(provider.url.replace('{url}', encodeURIComponent(`${linkText} ${link}`.trim()))); break; case _sharingProvider.shareOptions.FACEBOOK: shareWithUrl(provider.url.replace('{url}', encodeURIComponent(link))); break; case _sharingProvider.shareOptions.TWITTER: shareWithUrl(provider.url.replace('{url}', encodeURIComponent(link)).replace('{linkText}', encodeURIComponent(linkText))); break; case _sharingProvider.shareOptions.QRCODE: shareWithUrl(provider.url.replace('{url}', encodeURIComponent(link)).replace('{linkText}', encodeURIComponent(linkText)).replace('{color}', chayns.env.site.color.replace('#', ''))); break; case _sharingProvider.shareOptions.CUSTOM_CHAYNS: shareWithApp(provider, `${linkText} ${link}`.trim()); break; case _sharingProvider.shareOptions.CUSTOM_ALL: webShareApi(link, linkText); break; default: break; } } //# sourceMappingURL=sharingActions.js.map