Current section

Files

Jump to
react_phoenix priv js react_phoenix.js
Raw

priv/js/react_phoenix.js

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_reactDom=_interopRequireDefault(require("react-dom"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function ownKeys(t,e){var r,n=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)),n}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}var ReactPhoenix=function(){function r(){_classCallCheck(this,r)}return _createClass(r,null,[{key:"init",value:function(){var e=document.querySelectorAll("[data-react-class]");Array.prototype.forEach.call(e,function(e){return r.renderElement({el:e})})}},{key:"renderElement",value:function(e){var t=e.el,r=e.pushEvent,n=e.handleEvent,o=document.getElementById(t.dataset.reactTargetId),e=o||t,o=t.dataset.reactProps||"{}",t=Array.prototype.reduce.call(t.dataset.reactClass.split("."),function(e,t){return e[t]},window),r=_objectSpread(_objectSpread({},JSON.parse(o)),{},{handleEvent:n,pushEvent:r}),r=_react.default.createElement(t,r);_reactDom.default.render(r,e)}},{key:"mounted",value:function(){var e=this.pushEvent.bind(this),t=this.handleEvent.bind(this);r.renderElement(_objectSpread(_objectSpread({},this),{},{handleEvent:t,pushEvent:e}))}},{key:"destroyed",value:function(){_reactDom.default.unmountComponentAtNode(this.el)}}]),r}();exports.default=ReactPhoenix,document.addEventListener("DOMContentLoaded",function(e){ReactPhoenix.init()});