diff --git a/commonjs/JobProvider.js b/commonjs/JobProvider.js index b6a6ef7..031bb0a 100644 --- a/commonjs/JobProvider.js +++ b/commonjs/JobProvider.js @@ -51,6 +51,9 @@ var JobProvider = function (_Component) { var rehydration = _this2.rehydrateState.jobs[id]; delete _this2.rehydrateState.jobs[id]; return rehydration; + }, + removeRehydrate: function removeRehydrate(id) { + delete _this2.rehydrateState.jobs[id]; } } }; @@ -88,7 +91,8 @@ JobProvider.childContextTypes = { getNextId: _react.PropTypes.func.isRequired, register: _react.PropTypes.func.isRequired, get: _react.PropTypes.func.isRequired, - getRehydrate: _react2.default.PropTypes.func.isRequired + getRehydrate: _react2.default.PropTypes.func.isRequired, + removeRehydrate: _react2.default.PropTypes.func.isRequired }).isRequired }; exports.default = JobProvider; \ No newline at end of file diff --git a/commonjs/withJob.js b/commonjs/withJob.js index 1f5eb42..943a55c 100644 --- a/commonjs/withJob.js +++ b/commonjs/withJob.js @@ -109,6 +109,10 @@ function withJob(config) { if (!this.state.completed) { this.resolveWork(this.props); } + + if (this.context.jobs && env === 'browser') { + this.context.jobs.removeRehydrate(id); + } } }, { key: 'componentWillUnmount', @@ -150,7 +154,8 @@ function withJob(config) { getNextId: _react.PropTypes.func.isRequired, register: _react.PropTypes.func.isRequired, get: _react.PropTypes.func.isRequired, - getRehydrate: _react2.default.PropTypes.func.isRequired + getRehydrate: _react2.default.PropTypes.func.isRequired, + removeRehydrate: _react2.default.PropTypes.func.isRequired }) }; diff --git a/package.json b/package.json index 18d1729..fd76921 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-jobs", - "version": "1.0.0-alpha.1", + "version": "1.0.0-alpha.2", "description": "Attach asynchronous/synchronous \"jobs\" to your components, with SSR support.", "license": "MIT", "main": "commonjs/index.js", diff --git a/umd/react-jobs.js b/umd/react-jobs.js index b323df4..a5cd83d 100644 --- a/umd/react-jobs.js +++ b/umd/react-jobs.js @@ -171,6 +171,9 @@ var JobProvider = function (_Component) { var rehydration = _this2.rehydrateState.jobs[id]; delete _this2.rehydrateState.jobs[id]; return rehydration; + }, + removeRehydrate: function removeRehydrate(id) { + delete _this2.rehydrateState.jobs[id]; } } }; @@ -208,7 +211,8 @@ JobProvider.childContextTypes = { getNextId: _react.PropTypes.func.isRequired, register: _react.PropTypes.func.isRequired, get: _react.PropTypes.func.isRequired, - getRehydrate: _react2.default.PropTypes.func.isRequired + getRehydrate: _react2.default.PropTypes.func.isRequired, + removeRehydrate: _react2.default.PropTypes.func.isRequired }).isRequired }; exports.default = JobProvider; @@ -329,6 +333,10 @@ function withJob(config) { if (!this.state.completed) { this.resolveWork(this.props); } + + if (this.context.jobs && env === 'browser') { + this.context.jobs.removeRehydrate(id); + } } }, { key: 'componentWillUnmount', @@ -370,7 +378,8 @@ function withJob(config) { getNextId: _react.PropTypes.func.isRequired, register: _react.PropTypes.func.isRequired, get: _react.PropTypes.func.isRequired, - getRehydrate: _react2.default.PropTypes.func.isRequired + getRehydrate: _react2.default.PropTypes.func.isRequired, + removeRehydrate: _react2.default.PropTypes.func.isRequired }) }; diff --git a/umd/react-jobs.min.js b/umd/react-jobs.min.js index 3dbb11d..bfeb3c8 100644 --- a/umd/react-jobs.min.js +++ b/umd/react-jobs.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactJobs=t(require("react")):e.ReactJobs=t(e.React)}(this,function(e){return function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.i=function(e){return e},t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,o){"use strict";function r(){var e=0,t={};return{getNextId:function(){return e+=1},register:function(e,o){t[e]=o},get:function(e){return t[e]},getState:function(){return{jobs:t}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r},function(t,o){t.exports=e},function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var o=0;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(o[r]=e[r]);return o}function n(e){return e.displayName||e.name||"Component"}Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.getDisplayName=n;var u=(t.isPromise=function(e){return"object"===(void 0===e?"undefined":i(e))&&"function"==typeof e.then},function(e){e.jobInitState,e.onJobProcessed;return r(e,["jobInitState","onJobProcessed"])});t.propsWithoutInternal=u}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactJobs=t(require("react")):e.ReactJobs=t(e.React)}(this,function(e){return function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var o={};return t.m=e,t.c=o,t.i=function(e){return e},t.d=function(e,o,r){t.o(e,o)||Object.defineProperty(e,o,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(o,"a",o),o},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t,o){"use strict";function r(){var e=0,t={};return{getNextId:function(){return e+=1},register:function(e,o){t[e]=o},get:function(e){return t[e]},getState:function(){return{jobs:t}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r},function(t,o){t.exports=e},function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var o=0;o=0||Object.prototype.hasOwnProperty.call(e,r)&&(o[r]=e[r]);return o}function n(e){return e.displayName||e.name||"Component"}Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.getDisplayName=n;var u=(t.isPromise=function(e){return"object"===(void 0===e?"undefined":i(e))&&"function"==typeof e.then},function(e){e.jobInitState,e.onJobProcessed;return r(e,["jobInitState","onJobProcessed"])});t.propsWithoutInternal=u}])}); \ No newline at end of file