@artalar/react-single-hoc
Version:
368 lines (367 loc) • 11.4 kB
JavaScript
!(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.ups = t(require('react')))
: (e.ups = t(e.react));
})(global, function(e) {
return (function(e) {
var t = {};
function n(o) {
if (t[o]) return t[o].exports;
var r = (t[o] = { i: o, l: !1, exports: {} });
return e[o].call(r.exports, r, r.exports, n), (r.l = !0), r.exports;
}
return (
(n.m = e),
(n.c = t),
(n.d = function(e, t, o) {
n.o(e, t) || Object.defineProperty(e, t, { enumerable: !0, get: o });
}),
(n.r = function(e) {
'undefined' != typeof Symbol &&
Symbol.toStringTag &&
Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }),
Object.defineProperty(e, '__esModule', { value: !0 });
}),
(n.t = function(e, t) {
if ((1 & t && (e = n(e)), 8 & t)) return e;
if (4 & t && 'object' == typeof e && e && e.__esModule) return e;
var o = Object.create(null);
if (
(n.r(o),
Object.defineProperty(o, 'default', { enumerable: !0, value: e }),
2 & t && 'string' != typeof e)
)
for (var r in e)
n.d(
o,
r,
function(t) {
return e[t];
}.bind(null, r),
);
return o;
}),
(n.n = function(e) {
var t =
e && e.__esModule
? function() {
return e.default;
}
: function() {
return e;
};
return n.d(t, 'a', t), t;
}),
(n.o = function(e, t) {
return Object.prototype.hasOwnProperty.call(e, t);
}),
(n.p = ''),
n((n.s = 1))
);
})([
function(t, n) {
t.exports = e;
},
function(e, t, n) {
'use strict';
n.r(t);
var o = n(0),
r = n.n(o);
function u(e) {
return (u =
'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;
})(e);
}
function i(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 c(e, t) {
return !t || ('object' !== u(t) && 'function' != typeof t)
? (function(e) {
if (void 0 === e)
throw new ReferenceError(
"this hasn't been initialised - super() hasn't been called",
);
return e;
})(e)
: t;
}
function f(e) {
return (f = Object.setPrototypeOf
? Object.getPrototypeOf
: function(e) {
return e.__proto__ || Object.getPrototypeOf(e);
})(e);
}
function a(e, t) {
return (a =
Object.setPrototypeOf ||
function(e, t) {
return (e.__proto__ = t), e;
})(e, t);
}
function s(e, t, n) {
return (
t in e
? Object.defineProperty(e, t, {
value: n,
enumerable: !0,
configurable: !0,
writable: !0,
})
: (e[t] = n),
e
);
}
var p = r.a.createContext({}),
l = p.Provider;
function d(e) {
var t, n;
return (
(n = t = (function(t) {
function n(t, o) {
var r;
!(function(e, t) {
if (!(e instanceof t))
throw new TypeError('Cannot call a class as a function');
})(this, n),
((r = c(
this,
f(n).call(this, t, o),
))._componentDidMountHooks = new Set()),
(r._getSnapshotBeforeUpdateHooks = new Set()),
(r._componentDidUpdateHooks = new Set()),
(r._componentWillUnmountHooks = new Set()),
(r.state = { hooks: [] }),
(r._contextExecutor = function(e) {
return e(r.props, r.context);
});
var u = [],
i = [],
a = 0,
p = !0;
function l(e) {
try {
return u.reduce(function(e, t) {
return Object.assign(e, t(e));
}, Object.assign({}, e));
} finally {
u.length = 0;
}
}
function d(e) {
try {
i.forEach(function(t) {
return t(e);
});
} finally {
i.length = 0;
}
}
var y = {
getInitial: function() {
return (
r._preventUseHooksInRender(p), { props: t, context: o }
);
},
createState: function(e) {
r._preventUseHooksInRender(p);
var t,
n = ((t = a++), 'state #'.concat(t));
return (
(r.state[n] = e),
{
get: function() {
return r.state[n];
},
set: function(e, t) {
var o =
'function' == typeof e
? e
: function() {
return e;
};
u.push(function(e) {
return s({}, n, o(e[n]));
}),
t && i.push(t),
r.setState(l, d);
},
}
);
},
addToComponentDidMount: function(e) {
r._preventUseHooksInRender(p),
r._componentDidMountHooks.add(e);
},
addToGetSnapshotBeforeUpdate: function(e) {
r._preventUseHooksInRender(p),
r._getSnapshotBeforeUpdateHooks.add(e);
},
addToComponentDidUpdate: function(e) {
r._preventUseHooksInRender(p),
r._componentDidUpdateHooks.add(e);
},
addToComponentWillUnmount: function(e) {
r._preventUseHooksInRender(p),
r._componentWillUnmountHooks.add(e);
},
};
return (
(r._render = e(
function(e) {
return r.state.hooks.push(e.name || e.toString()), e(y);
},
t,
o,
)),
(p = !1),
r
);
}
var o, u, p;
return (
(function(e, t) {
if ('function' != typeof t && null !== t)
throw new TypeError(
'Super expression must either be null or a function',
);
(e.prototype = Object.create(t && t.prototype, {
constructor: { value: e, writable: !0, configurable: !0 },
})),
t && a(e, t);
})(n, r.a.Component),
(o = n),
(u = [
{
key: '_preventUseHooksInRender',
value: function(e) {
if (!e)
throw new Error(
'You can not use hooks outside initial phase',
);
},
},
{
key: 'componentDidMount',
value: function() {
this._componentDidMountHooks.forEach(this._contextExecutor);
},
},
{
key: 'getSnapshotBeforeUpdate',
value: function() {
return (
this._getSnapshotBeforeUpdateHooks.forEach(
this._contextExecutor,
),
null
);
},
},
{
key: 'componentDidUpdate',
value: function() {
this._componentDidUpdateHooks.forEach(
this._contextExecutor,
);
},
},
{
key: 'componentWillUnmount',
value: function() {
this._componentWillUnmountHooks.forEach(
this._contextExecutor,
);
},
},
{
key: 'render',
value: function() {
return this._render(this.props);
},
},
]) && i(o.prototype, u),
p && i(o, p),
n
);
})()),
s(t, 'contextType', p.Consumer),
n
);
}
function y(e) {
return function(t) {
return t.createState(e);
};
}
function b(e) {
if ('function' != typeof e)
throw new TypeError(
'@@react-single-hoc: effect callback must be function',
);
return function(t) {
t.addToComponentDidUpdate(e);
};
}
function m() {}
function h(e) {
if ('function' != typeof e)
throw new TypeError(
'@@react-single-hoc: subscriber callback must be function',
);
return function(t) {
var n = m;
t.addToComponentDidMount(function() {
if (void 0 !== (n = e())) {
if ('function' != typeof n)
throw new TypeError(
'@@react-single-hoc: subscriber callback may return only function or nothing',
);
} else n = m;
}),
t.addToComponentWillUnmount(function() {
n();
});
};
}
n.d(t, 'Provider', function() {
return l;
}),
n.d(t, 'createHOC', function() {
return d;
}),
n.d(t, 'createState', function() {
return y;
}),
n.d(t, 'createEffect', function() {
return b;
}),
n.d(t, 'createSubscriber', function() {
return h;
}),
(d.Provider = l);
t.default = d;
},
]);
});