UNPKG

kea-react

Version:

Componentes comunes de react

47 lines (46 loc) 2.59 kB
"use strict"; 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;