UNPKG

react-vk

Version:
3 lines (2 loc) 10.7 kB
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),React__default=_interopDefault(React);function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){_defineProperty(e,t,n[t])})}return e}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,t){var n=[],o=!0,i=!1,r=void 0;try{for(var s,u=e[Symbol.iterator]();!(o=(s=u.next()).done)&&(n.push(s.value),!t||n.length!==t);o=!0);}catch(e){i=!0,r=e}finally{try{o||null==u.return||u.return()}finally{if(i)throw r}}return n}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}var VKContext=React__default.createContext(null),VKApi=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,e),this.apiId=t,this.options=n,this.promise=null,this.load()}return _createClass(e,[{key:"init",value:function(){var e=this.apiId,t=this.options.onlyWidgets;e&&window.VK.init({apiId:e,onlyWidgets:t})}},{key:"load",value:function(){var e=this,t=this.options.version;return this.promise?this.promise:(this.promise=new Promise(function(n){window.VK&&window.VK.init?(e.init(),n(window.VK)):window.vkAsyncInit=function(){e.init(),n(window.VK)};var o="https://vk.com/js/api/openapi.js?".concat(t);if(!document.getElementById("vk-openapi")){var i=document.createElement("script");i.type="text/javascript",i.id="vk-openapi",i.src=o,i.async=!0,document.head.appendChild(i)}}),this.promise)}}]),e}(),isDOMReady="undefined"!=typeof window&&window.document&&window.document.createElement,VK=function(e){var t=e.onApiAvailable,n=e.apiId,o=e.options,i=e.children,r=_slicedToArray(React.useState(null),2),s=r[0],u=r[1];return React.useEffect(function(){isDOMReady&&new VKApi(n,o).load().then(function(e){t(e),u(e)})},[]),s?React__default.createElement(VKContext.Provider,{value:s},i):null};VK.defaultProps={apiId:null,options:{version:160,onlyWidgets:!0},onApiAvailable:function(){}};var AllowMessagesFromCommunity=function(e){var t=e.elementId,n=e.options,o=e.groupId,i=e.onAllow,r=e.onDeny,s=React.useContext(VKContext);return React.useEffect(function(){return s.Widgets.AllowMessagesFromCommunity(t,n,o),s.Observer.subscribe("widgets.allowMessagesFromCommunity.allowed",function(e){return i(e)}),s.Observer.subscribe("widgets.allowMessagesFromCommunity.denied",function(e){return r(e)}),function(){return s.Observer.unsubscribe("widgets.allowMessagesFromCommunity.allowed")}},[]),React__default.createElement("div",{id:t})};AllowMessagesFromCommunity.defaultProps={elementId:"vk_allow_messages_from_community",options:{height:24},onAllow:function(){},onDeny:function(){}};var Application=function(e){var t=e.elementId,n=e.appId,o=e.options,i=React.useContext(VKContext);return React.useEffect(function(){i.Widgets.App(t,n,o)},[]),React__default.createElement("div",{id:t})};Application.defaultProps={elementId:"vk_app",options:{mode:1}};var Auth=function(e){var t=e.elementId,n=e.options,o=React.useContext(VKContext);return React.useEffect(function(){var e=_objectSpread({},n);e.onAuth=function(e,t,o,i,r,s){return n.onAuth(e,t,o,i,r,s)},o.Widgets.Auth(t,e)},[]),React__default.createElement("div",{id:t})};Auth.defaultProps={elementId:"vk_auth",options:{width:300,onAuth:function(){}}};var Comments=function(e){var t=e.elementId,n=e.options,o=e.pageId,i=e.onNewComment,r=e.onDeleteComment,s=React.useContext(VKContext);return React.useEffect(function(){return s.Widgets.Comments(t,n,o),s.Observer.subscribe("widgets.comments.new_comment",function(e,t,n,o){return i(e,t,n,o)}),s.Observer.subscribe("widgets.comments.delete_comment",r),function(){s.Observer.unsubscribe("widgets.comments.new_comment"),s.Observer.unsubscribe("widgets.comments.delete_comment")}},[]),React__default.createElement("div",{id:t})};Comments.defaultProps={elementId:"vk_comments",options:{height:0,limit:10,attach:"*",autoPublish:0,mini:"auto",norealtime:0},pageId:null,onNewComment:function(){},onDeleteComment:function(){}};var CommentsBrowse=function(e){var t=e.elementId,n=e.options,o=React.useContext(VKContext);return React.useEffect(function(){o.Widgets.CommentsBrowse(t,n)},[]),React__default.createElement("div",{id:t})};CommentsBrowse.defaultProps={elementId:"vk_comments_browse",options:{height:0,limit:10,mini:"auto",norealtime:0}};var CommunityMessages=function(e){var t=e.elementId,n=e.groupId,o=e.options,i=e.onMount,r=React.useContext(VKContext);return React.useEffect(function(){var e=r.Widgets.CommunityMessages(t,n,o);i(e,t)},[]),React__default.createElement("div",{id:t})};CommunityMessages.defaultProps={elementId:"vk_community_messages",options:{onCanNotWrite:function(){},welcomeScreen:1,expandTimeout:0,expanded:0,widgetPosition:"right",buttonType:"blue_circle",disableButtonTooltip:0},onMount:function(){}};var ContactUs=function(e){var t=e.elementId,n=e.options,o=e.ownerId,i=React.useContext(VKContext);return React.useEffect(function(){i.Widgets.ContactUs(t,n,-o)},[]),React__default.createElement("div",{id:t})};ContactUs.defaultProps={elementId:"vk_contact_us",options:{height:24}};var Group=function(e){var t=e.elementId,n=e.options,o=e.groupId,i=e.onJoin,r=e.onLeave,s=React.useContext(VKContext);return React.useEffect(function(){return s.Widgets.Group(t,n,o),s.Observer.subscribe("widgets.groups.joined",i),s.Observer.subscribe("widgets.groups.leaved",r),function(){s.Observer.unsubscribe("widgets.groups.joined"),s.Observer.unsubscribe("widgets.groups.leaved")}},[]),React__default.createElement("div",{id:t})};Group.defaultProps={elementId:"vk_groups",options:{width:"auto",mode:3,no_cover:1,wide:1},onJoin:function(){},onLeave:function(){}};var Like=function(e){var t=e.elementId,n=e.options,o=e.pageId,i=e.onLike,r=e.onUnlike,s=e.onShare,u=e.onUnshare,a=React.useContext(VKContext);return React.useEffect(function(){return o?a.Widgets.Like(t,n,o):a.Widgets.Like(t,n),a.Observer.subscribe("widgets.like.liked",function(e){return i(e)}),a.Observer.subscribe("widgets.like.unliked",function(e){return r(e)}),a.Observer.subscribe("widgets.like.shared",function(e){return s(e)}),a.Observer.subscribe("widgets.like.unshared",function(e){return u(e)}),function(){a.Observer.unsubscribe("widgets.like.liked"),a.Observer.unsubscribe("widgets.like.unliked"),a.Observer.unsubscribe("widgets.like.shared"),a.Observer.unsubscribe("widgets.like.unshared")}},[]),React__default.createElement("div",{id:t})};Like.defaultProps={elementId:"vk_like",options:{type:"full",width:350,height:22,verb:0},pageId:null,onLike:function(){},onUnlike:function(){},onShare:function(){},onUnshare:function(){}};var Playlist=function(e){var t=e.elementId,n=e.ownerId,o=e.playlistId,i=e.hash,r=e.options,s=React.useContext(VKContext);return React.useEffect(function(){s.Widgets.Playlist(t,-n,o,i,r)},[]),React__default.createElement("div",{id:t})};Playlist.defaultProps={elementId:"vk_playlist",options:{}};var Poll=function(e){var t=e.elementId,n=e.options,o=e.pollId,i=React.useContext(VKContext);return React.useEffect(function(){i.Widgets.Poll(t,n,o)},[]),React__default.createElement("div",{id:t})};Poll.defaultProps={elementId:"vk_poll",options:{height:24}};var Post=function(e){var t=e.elementId,n=e.ownerId,o=e.postId,i=e.hash,r=e.options,s=React.useContext(VKContext);return React.useEffect(function(){s.Widgets.Post(t,n,o,i,r)},[]),React__default.createElement("div",{id:t})};Post.defaultProps={elementId:"vk_post",options:{}};var Recommended=function(e){var t=e.elementId,n=e.options,o=React.useContext(VKContext);return React.useEffect(function(){o.Widgets.Recommended(t,n)},[]),React__default.createElement("div",{id:t})};Recommended.defaultProps={elementId:"vk_recommend",options:{limit:5,max:20,period:"week",sort:"friend_like",target:"parent"}};var URL="https://vk.com/js/api/share.js?93",Share=function(e){var t=e.shareOptions,n=e.buttonOptions,o=React__default.createRef();return React.useEffect(function(){if(isDOMReady)if(document.getElementById("vk-share"))window.VK.Share&&(o.current.innerHTML=window.VK.Share.button(t,n));else{var e=document.createElement("script");e.type="text/javascript",e.charset="windows-1251",e.id="vk-share",e.src=URL,e.async=!0,document.head.appendChild(e),e.addEventListener("load",function(){o.current.innerHTML=window.VK.Share.button(t,n)})}},[]),React__default.createElement("div",{ref:o})};Share.defaultProps={shareOptions:null,buttonOptions:null};var Subscribe=function(e){var t=e.elementId,n=e.options,o=e.ownerId,i=e.onSubscribe,r=e.onUnsubscribe,s=React.useContext(VKContext);return React.useEffect(function(){return s.Widgets.Subscribe(t,n,o),s.Observer.subscribe("widgets.subscribed",i),s.Observer.subscribe("widgets.unsubscribed",r),function(){s.Observer.unsubscribe("widgets.subscribed"),s.Observer.unsubscribe("widgets.unsubscribed")}},[]),React__default.createElement("div",{id:t})};Subscribe.defaultProps={elementId:"vk_subscribe",options:{mode:0,soft:0},onSubscribe:function(){},onUnsubscribe:function(){}};var Article=function(e){var t=e.elementId,n=e.articleUrl,o=React.useContext(VKContext);return React.useEffect(function(){o.Widgets.Article(t,n)},[]),React__default.createElement("div",{id:t})};Article.defaultProps={elementId:"vk_article"},exports.AllowMessagesFromCommunity=AllowMessagesFromCommunity,exports.Application=Application,exports.Article=Article,exports.Auth=Auth,exports.Comments=Comments,exports.CommentsBrowse=CommentsBrowse,exports.CommunityMessages=CommunityMessages,exports.ContactUs=ContactUs,exports.Group=Group,exports.Like=Like,exports.Playlist=Playlist,exports.Poll=Poll,exports.Post=Post,exports.Recommended=Recommended,exports.Share=Share,exports.Subscribe=Subscribe,exports.default=VK; //# sourceMappingURL=react-vk.cjs.production.min.js.map