Socket
Socket
Sign inDemoInstall

react-share

Package Overview
Dependencies
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-share - npm Package Compare versions

Comparing version 1.15.1 to 1.16.0

6

CHANGELOG.md

@@ -0,1 +1,7 @@

## 1.16.0 (Sep 1, 2017)
* Allow React `v16.x.x` as peer dependency.
* Added `<EmailShareButton />`.
* Added `onShareWindowClose` share button prop (#91).
## 1.15.1 (Aug 13, 2017)

@@ -2,0 +8,0 @@

@@ -23,2 +23,7 @@ 'use strict';

},
email: {
icon: 'M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z',
mask: 'M41.1,25H22.9l9.1,7.1L41.1,25z M44,26.6l-12,9.3l-12-9.3V39h24V26.6z M0,0v64h64V0H0z M47,42H17V22h30V42z',
color: '#7f7f7f'
},
twitter: {

@@ -25,0 +30,0 @@ icon: 'M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z',

9

lib/react-share.js

@@ -6,3 +6,3 @@ 'use strict';

});
exports.shareLinks = exports.ShareCounts = exports.ShareButtons = exports.generateShareIcon = undefined;
exports.shareCountGetters = exports.shareLinks = exports.ShareCounts = exports.ShareButtons = exports.generateShareIcon = undefined;

@@ -23,2 +23,6 @@ var _generateIcon = require('./generateIcon');

var _shareCountGetters = require('./share-count-getters');
var shareCountGetters = _interopRequireWildcard(_shareCountGetters);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

@@ -29,2 +33,3 @@

exports.ShareCounts = ShareCounts;
exports.shareLinks = shareLinks;
exports.shareLinks = shareLinks;
exports.shareCountGetters = shareCountGetters;

@@ -6,3 +6,3 @@ 'use strict';

});
exports.RedditShareButton = exports.OKShareButton = exports.VKShareButton = exports.PinterestShareButton = exports.LinkedinShareButton = exports.GooglePlusShareButton = exports.WhatsappShareButton = exports.TelegramShareButton = exports.TwitterShareButton = exports.FacebookShareButton = undefined;
exports.RedditShareButton = exports.OKShareButton = exports.VKShareButton = exports.PinterestShareButton = exports.LinkedinShareButton = exports.GooglePlusShareButton = exports.EmailShareButton = exports.WhatsappShareButton = exports.TelegramShareButton = exports.TwitterShareButton = exports.FacebookShareButton = undefined;

@@ -78,32 +78,20 @@ var _extends2 = require('babel-runtime/helpers/extends');

disabled = _this$props.disabled,
windowWidth = _this$props.windowWidth,
windowHeight = _this$props.windowHeight,
beforeOnClick = _this$props.beforeOnClick;
onClick = _this$props.onClick,
openWindow = _this$props.openWindow;
if (!disabled) {
(function () {
e.preventDefault();
if (disabled) {
return;
}
var windowOptions = {
height: windowHeight,
width: windowWidth
};
e.preventDefault();
var windowOpenBound = function windowOpenBound() {
return (0, _utils.windowOpen)(_this.link(), windowOptions);
};
var link = _this.link();
if (beforeOnClick) {
var returnVal = beforeOnClick();
if (openWindow) {
_this.openWindow(link);
}
if ((0, _utils.isPromise)(returnVal)) {
returnVal.then(windowOpenBound);
} else {
windowOpenBound();
}
} else {
windowOpenBound();
}
})();
if (onClick) {
onClick(link);
}

@@ -114,2 +102,30 @@ }, _this.onKeyPress = function (e) {

}
}, _this.openWindow = function (link) {
var _this$props2 = _this.props,
beforeOnClick = _this$props2.beforeOnClick,
onShareWindowClose = _this$props2.onShareWindowClose,
windowWidth = _this$props2.windowWidth,
windowHeight = _this$props2.windowHeight;
var windowOptions = {
height: windowHeight,
width: windowWidth
};
var windowOpenBound = function windowOpenBound() {
return (0, _utils.windowOpen)(link, windowOptions, onShareWindowClose);
};
if (beforeOnClick) {
var returnVal = beforeOnClick();
if ((0, _utils.isPromise)(returnVal)) {
returnVal.then(windowOpenBound);
} else {
windowOpenBound();
}
} else {
windowOpenBound();
}
}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);

@@ -172,3 +188,5 @@ }

network: _propTypes2.default.oneOf(supportedNetworks),
onClick: _propTypes2.default.func,
opts: _propTypes2.default.object,
openWindow: _propTypes2.default.bool,
url: _propTypes2.default.string.isRequired,

@@ -178,3 +196,4 @@ style: _propTypes2.default.object,

windowHeight: _propTypes2.default.number,
beforeOnClick: _propTypes2.default.func
beforeOnClick: _propTypes2.default.func,
onShareWindowClose: _propTypes2.default.func
};

@@ -184,3 +203,4 @@ ShareButton.defaultProps = {

opacity: 0.6
}
},
openWindow: true
};

@@ -276,2 +296,17 @@ exports.default = ShareButton;

var EmailShareButton = exports.EmailShareButton = createShareButton('email', function (props) {
return {
subject: props.subject,
body: props.body
};
}, {
subject: _propTypes2.default.string,
body: _propTypes2.default.string
}, {
openWindow: false,
onClick: function onClick(link) {
window.location.href = link;
}
});
var GooglePlusShareButton = exports.GooglePlusShareButton = createShareButton('googlePlus', undefined, undefined, {

@@ -278,0 +313,0 @@ windowWidth: 550,

@@ -27,14 +27,14 @@ 'use strict';

/* eslint-disable prefer-template */
function email(subject, body) {
(0, _assert2.default)(subject, 'email.subject');
(0, _assert2.default)(body, 'email.body');
function email(url, _ref) {
var subject = _ref.subject,
body = _ref.body;
return 'mailto:' + (0, _utils.objectToGetParams)({ subject: subject, body: body });
return 'mailto:' + (0, _utils.objectToGetParams)({ subject: subject, body: body || email });
}
function twitter(url, _ref) {
var title = _ref.title,
via = _ref.via,
_ref$hashtags = _ref.hashtags,
hashtags = _ref$hashtags === undefined ? [] : _ref$hashtags;
function twitter(url, _ref2) {
var title = _ref2.title,
via = _ref2.via,
_ref2$hashtags = _ref2.hashtags,
hashtags = _ref2$hashtags === undefined ? [] : _ref2$hashtags;

@@ -52,4 +52,4 @@ (0, _assert2.default)(url, 'twitter.url');

function telegram(url, _ref2) {
var title = _ref2.title;
function telegram(url, _ref3) {
var title = _ref3.title;

@@ -63,5 +63,5 @@ (0, _assert2.default)(url, 'telegram.url');

function whatsapp(url, _ref3) {
var title = _ref3.title,
separator = _ref3.separator;
function whatsapp(url, _ref4) {
var title = _ref4.title,
separator = _ref4.separator;

@@ -74,5 +74,5 @@ (0, _assert2.default)(url, 'whatsapp.url');

function facebook(url, _ref4) {
var quote = _ref4.quote,
hashtag = _ref4.hashtag;
function facebook(url, _ref5) {
var quote = _ref5.quote,
hashtag = _ref5.hashtag;

@@ -94,5 +94,5 @@ (0, _assert2.default)(url, 'facebook.url');

function linkedin(url, _ref5) {
var title = _ref5.title,
description = _ref5.description;
function linkedin(url, _ref6) {
var title = _ref6.title,
description = _ref6.description;

@@ -108,5 +108,5 @@ (0, _assert2.default)(url, 'linkedin.url');

function pinterest(url, _ref6) {
var media = _ref6.media,
description = _ref6.description;
function pinterest(url, _ref7) {
var media = _ref7.media,
description = _ref7.description;

@@ -123,6 +123,6 @@ (0, _assert2.default)(url, 'pinterest.url');

function vk(url, _ref7) {
var title = _ref7.title,
description = _ref7.description,
image = _ref7.image;
function vk(url, _ref8) {
var title = _ref8.title,
description = _ref8.description,
image = _ref8.image;

@@ -139,6 +139,6 @@ (0, _assert2.default)(url, 'vk.url');

function ok(url, _ref8) {
var title = _ref8.title,
description = _ref8.description,
image = _ref8.image;
function ok(url, _ref9) {
var title = _ref9.title,
description = _ref9.description,
image = _ref9.image;

@@ -155,4 +155,4 @@ (0, _assert2.default)(url, 'ok.url');

function reddit(url, _ref9) {
var title = _ref9.title;
function reddit(url, _ref10) {
var title = _ref10.title;

@@ -159,0 +159,0 @@ (0, _assert2.default)(url, 'reddit.url');

@@ -32,3 +32,3 @@ 'use strict';

} /* eslint-disable prefer-template */
function windowOpen(url, _ref) {
function windowOpen(url, _ref, onShareWindowClose) {
var name = _ref.name,

@@ -59,5 +59,24 @@ _ref$height = _ref.height,

return window.open(url, _platform2.default.name === 'IE' && parseInt(_platform2.default.version, 10) < 10 ? '' : name, (0, _keys2.default)(config).map(function (key) {
var shareDialog = window.open(url, _platform2.default.name === 'IE' && parseInt(_platform2.default.version, 10) < 10 ? '' : name, (0, _keys2.default)(config).map(function (key) {
return key + '=' + config[key];
}).join(', '));
if (onShareWindowClose) {
(function () {
var interval = window.setInterval(function () {
try {
if (shareDialog === null || shareDialog.closed) {
window.clearInterval(interval);
onShareWindowClose(shareDialog);
}
} catch (e) {
/* eslint-disable no-console */
console.error(e);
/* eslint-enable no-console */
}
}, 1000);
})();
}
return shareDialog;
}

@@ -64,0 +83,0 @@

{
"name": "react-share",
"version": "1.15.1",
"version": "1.16.0",
"description": "Easy social media share buttons and share counts.",

@@ -72,4 +72,4 @@ "main": "./lib/react-share.js",

"peerDependencies": {
"react": "0.13.x || 0.14.x || 15.x.x"
"react": "^0.13.0 || ^0.14.0 || ^15.0.0 || ^16.0.0-0"
}
}

@@ -82,2 +82,3 @@ # react-share

RedditShareButton,
EmailShareButton,
} = ShareButtons;

@@ -90,3 +91,3 @@ ```

|-------|--------|--------------|
|__All__|__`children`__: A React node (e.g. string or element)<br />__`url`__: URL of the shared page (string)|__`disabled`__: Disables click action and adds `disabled` class (bool)<br/>__`disabledStyle`__: Style when button is disabled (object, default = { opacity: 0.6 })<br/>__`windowWidth`, `windowHeight`__: opened window dimensions (int, different defaults for all share buttons)<br>__`beforeOnClick`__: Takes a function that returns a Promise to be fulfilled before calling `onClick`. If you do not return promise, `onClick` is called immediately.|
|__All__|__`children`__: A React node (e.g. string or element)<br />__`url`__: URL of the shared page (string)|__`disabled`__: Disables click action and adds `disabled` class (bool)<br/>__`disabledStyle`__: Style when button is disabled (object, default = { opacity: 0.6 })<br/>__`windowWidth`, `windowHeight`__: opened window dimensions (int, different defaults for all share buttons)<br>__`beforeOnClick`__: Takes a function that returns a Promise to be fulfilled before calling `onClick`. If you do not return promise, `onClick` is called immediately.<br>__`onShareWindowClose`__: Takes a function to be called after closing share dialog.|
|FacebookShareButton|-|__`title`__: Title of the shared page (string)<br/>__`description`__: Description of the shared page (string)<br/>__`picture`__: An absolute link to the image that will be shared (string)|

@@ -102,2 +103,3 @@ |GooglePlusShareButton|-|-|

|RedditShareButton|-|__`title`__: Title of the shared page (string)|
|EmailShareButton|-|__`subject`__: Title of the shared page (string)<br/>__`body`__: Body of the email (string), defaults to shared url.|

@@ -152,2 +154,3 @@ ### Share counts

const RedditIcon = generateShareIcon('reddit');
const EmailIcon = generateShareIcon('email');
```

@@ -154,0 +157,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc