kea-react
Version:
Componentes comunes de react
47 lines (46 loc) • 2.59 kB
JavaScript
;
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
//Algunos componentes de mas alto orden
var react_mapstate_1 = require("react-mapstate");
var cookies_1 = require("./cookies");
/**Convierte un componente controlado en uno no controlado, almacenando los valores no controlados en los cookies si es que el consumidor establece el prop cookieKey */
function MakeUncontrolledCookies(valueKey, onChangeKey) {
var ret = react_mapstate_1.mapState(function (props, state, setState) {
return (__assign((_a = {}, _a[valueKey] = state.value, _a[onChangeKey] = function (value) {
setState({ value: value });
if (props.cookieKey)
cookies_1.Cookies.Set("uncontrolledCookies_" + props.cookieKey, value);
}, _a), props));
var _a;
}, function (props) { return ({ value: props.cookieKey && cookies_1.Cookies.Get("uncontrolledCookies_" + props.cookieKey) }); });
return ret;
}
exports.MakeUncontrolledCookies = MakeUncontrolledCookies;
/**
* Convierte un componente controlado en uno no controlado, para el cual si se le pasa un value != undefined, se comporta como controlado
* @param valueKey Nombre de la propiedad del valor
* @param onChangeKey Nombre de la propiedad de la función de cambio en la forma (value) => void
*/
function MakeUncontrolled(valueKey, onChangeKey, initialValue) {
return react_mapstate_1.mapState(function (props, state, setState) {
return Object.assign((_a = {},
_a[valueKey] = state.value,
_a[onChangeKey] = function (value) { return setState({ value: value }); },
_a), props);
var _a;
}, function () { return ({ value: initialValue }); });
}
exports.MakeUncontrolled = MakeUncontrolled;
/**Vuelve un componente controlado uno no controlado, donde en el estado inicial no se le pasara ningun valor al props de value */
function mapStateUncontrolled(component) {
return react_mapstate_1.mapState(function (props, state, setState) { return (__assign({ onChange: function (value) { return setState({ value: value }); } }, (state.value ? { value: state.value } : {}))); }, function () { return ({ value: undefined }); })(component);
}
exports.mapStateUncontrolled = mapStateUncontrolled;