chayns-components
Version:
A set of beautiful React components for developing chayns® applications.
79 lines (75 loc) • 3.22 kB
JavaScript
;
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