UNPKG

chayns-components

Version:

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

79 lines (75 loc) 3.22 kB
"use strict"; exports.__esModule = true; exports.getAvailableShareProviders = getAvailableShareProviders; exports.getDefaultShareLink = getDefaultShareLink; var _sharingProvider = require("./sharingProvider"); /* eslint-disable no-param-reassign,no-else-return */ function getAvailableShareProviders() { if (chayns.env.isApp || chayns.env.isMyChaynsApp) { return chayns.getAvailableSharingServices().then(response => { const sharingApps = response.availableSharingApps; _sharingProvider.shareProvider.forEach(curProvider => { if (curProvider.providerId < 0) { return; } const shareApp = sharingApps.find(curApp => curApp === curProvider.providerId); if (shareApp !== undefined) { curProvider.available = true; curProvider.useApp = true; } }); if (chayns.env.isAndroid) { _sharingProvider.shareProvider[0].available = true; const androidApps = response.availableAndroidApps; _sharingProvider.shareProvider.forEach(curProvider => { if (!curProvider.androidIdentifier) { return; } const shareApp = androidApps.find(curApp => curApp === curProvider.androidIdentifier); if (shareApp) { curProvider.available = true; curProvider.useApp = true; } }); } if (chayns.env.isIOS && chayns.env.appVersion >= 5182 || chayns.env.isAndroid && chayns.env.appVersion >= 5205) { _sharingProvider.shareProvider.find(app => app.id === 10).available = true; } return Promise.resolve(_sharingProvider.shareProvider); }); } else { if (!chayns.env.isIOS) { _sharingProvider.shareProvider[0].available = true; } const canShare = navigator.canShare && navigator.canShare({ text: 'text', url: 'https://www.chayns.net' }); // check for edge is needed because the browser returns "true" for canShare(...) and throws an error on share(...) if (chayns.env.browser.name !== 'edge' && canShare && navigator.share && !_sharingProvider.shareProvider.find(app => app.id === 10).available) { _sharingProvider.shareProvider.find(app => app.id === 11).available = true; } return Promise.resolve(_sharingProvider.shareProvider); } } function getDefaultShareLink() { let shareLink; if (chayns.env.isChaynsWeb) { shareLink = chayns.env.site.url.replace(/^(https:\/\/)(chayns.net\/[0-9]{5}-[0-9]{5})/, `$1${chayns.env.site.domain}`); // replace chayns.net/{{siteId}} with domain } else { const tapp = chayns.env.site.tapps.find(element => element.id === chayns.env.site.tapp.id); shareLink = `http://${chayns.env.site.domain || `chayns.net/${chayns.env.site.id}`}/`; if (tapp) { shareLink += tapp.customUrl || `tapp/index/${tapp.id}`; } else { shareLink += `tapp/index/${chayns.env.site.tapp.id}`; } } const ignoreParams = ['v', 'deviceColorMode']; // eslint-disable-next-line no-restricted-syntax for (const ignoreParam of ignoreParams) { shareLink = shareLink.replace(new RegExp(`/(\\?.*)(${ignoreParam}(?:)[^&]*)/`), '$1'); } return shareLink; } //# sourceMappingURL=sharingHelper.js.map