react-native-share
Version:
Social share, sending simple data to other apps.
149 lines (148 loc) • 5.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Button", {
enumerable: true,
get: function () {
return _Button.default;
}
});
Object.defineProperty(exports, "Overlay", {
enumerable: true,
get: function () {
return _Overlay.default;
}
});
Object.defineProperty(exports, "ShareAsset", {
enumerable: true,
get: function () {
return _types.ShareAsset;
}
});
Object.defineProperty(exports, "ShareSheet", {
enumerable: true,
get: function () {
return _ShareSheet.default;
}
});
Object.defineProperty(exports, "Sheet", {
enumerable: true,
get: function () {
return _Sheet.default;
}
});
Object.defineProperty(exports, "Social", {
enumerable: true,
get: function () {
return _types.Social;
}
});
exports.default = void 0;
var _reactNative = require("react-native");
var _NativeRNShare = _interopRequireDefault(require("../codegenSpec/NativeRNShare"));
var _Overlay = _interopRequireDefault(require("./components/Overlay"));
var _Sheet = _interopRequireDefault(require("./components/Sheet"));
var _Button = _interopRequireDefault(require("./components/Button"));
var _ShareSheet = _interopRequireDefault(require("./components/ShareSheet"));
var _requireAndAskPermissions = _interopRequireDefault(require("./helpers/requireAndAskPermissions"));
var _types = require("./types");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const RNShare = {
Button: _Button.default,
ShareSheet: _ShareSheet.default,
Overlay: _Overlay.default,
Sheet: _Sheet.default,
Social: {
FACEBOOK: _NativeRNShare.default.getConstants().FACEBOOK || _types.Social.Facebook,
FACEBOOK_STORIES: _NativeRNShare.default.getConstants().FACEBOOKSTORIES || _types.Social.FacebookStories,
PAGESMANAGER: _NativeRNShare.default.getConstants().PAGESMANAGER || _types.Social.Pagesmanager,
TWITTER: _NativeRNShare.default.getConstants().TWITTER || _types.Social.Twitter,
WHATSAPP: _NativeRNShare.default.getConstants().WHATSAPP || _types.Social.Whatsapp,
WHATSAPPBUSINESS: _NativeRNShare.default.getConstants().WHATSAPPBUSINESS || _types.Social.Whatsappbusiness,
INSTAGRAM: _NativeRNShare.default.getConstants().INSTAGRAM || _types.Social.Instagram,
INSTAGRAM_STORIES: _NativeRNShare.default.getConstants().INSTAGRAMSTORIES || _types.Social.InstagramStories,
GOOGLEPLUS: _NativeRNShare.default.getConstants().GOOGLEPLUS || _types.Social.Googleplus,
EMAIL: _NativeRNShare.default.getConstants().EMAIL || _types.Social.Email,
PINTEREST: _NativeRNShare.default.getConstants().PINTEREST || _types.Social.Pinterest,
LINKEDIN: _NativeRNShare.default.getConstants().LINKEDIN || _types.Social.Linkedin,
SMS: _NativeRNShare.default.getConstants().SMS || _types.Social.Sms,
TELEGRAM: _NativeRNShare.default.getConstants().TELEGRAM || _types.Social.Telegram,
MESSENGER: _NativeRNShare.default.getConstants().MESSENGER || _types.Social.Messenger,
SNAPCHAT: _NativeRNShare.default.getConstants().SNAPCHAT || _types.Social.Snapchat,
VIBER: _NativeRNShare.default.getConstants().VIBER || _types.Social.Viber
},
open(options) {
return new Promise((resolve, reject) => {
(0, _requireAndAskPermissions.default)(options).then(() => {
if (_reactNative.Platform.OS === 'ios' && options.url && !options.urls) {
// Backward compatibility with { Share } from react-native
const url = options.url;
delete options.url;
options.urls = [url];
if (options.filename && !options.filenames) {
options.filenames = [options.filename];
}
}
_NativeRNShare.default.open(options).then(ret => {
if (ret.success) {
return resolve({
success: ret.success,
message: ret.message
});
} else if (options.failOnCancel === false) {
return resolve({
dismissedAction: true,
success: ret.success,
message: ret.message
});
} else {
reject(new Error('User did not share'));
}
});
}).catch(e => reject(e));
});
},
shareSingle(options) {
if (_reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android') {
return new Promise((resolve, reject) => {
(0, _requireAndAskPermissions.default)(options).then(() => {
if (options.url) {
options.urls = [options.url];
}
if (options.social === RNShare.Social.INSTAGRAM_STORIES && !options.appId) {
return reject({
success: false,
message: 'Instagram Story share requires an appId based on Meta policy.'
});
}
_NativeRNShare.default.shareSingle(options).then(ret => {
return resolve({
success: Boolean(ret.success),
message: ret.message
});
}).catch(e => reject(e));
}).catch(e => reject(e));
});
} else {
throw new Error('Not implemented');
}
},
isPackageInstalled(packageName) {
if (_reactNative.Platform.OS === 'android') {
return new Promise((resolve, reject) => {
_NativeRNShare.default.isPackageInstalled(packageName).then(isInstalled => {
return resolve({
isInstalled,
message: 'Package is Installed'
});
}).catch(e => reject(e));
});
} else {
throw new Error('Not implemented');
}
}
};
var _default = RNShare;
exports.default = _default;
//# sourceMappingURL=index.js.map