UNPKG

useone-react

Version:

This package was make for advance version of useState(). it's simplify to use one state in anywhere of your project to transfer data without props , usecontext(), session storage.It's act like usestate() but different...

69 lines (68 loc) 2.25 kB
import { useState } from "react"; var state1 = {}; var balance = {}; var initialData = {}; var setnormal = {}; var mainfunction; export function useOneFirst(params) { var setinitialstate = useState({})[1]; mainfunction = function (data, params_state) { setinitialstate(function (p) { return ({}); }); }; } export function InitialuseOne() { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i] = arguments[_i]; } if (!params) return; for (var index = 0; index < params.length; index++) { var bug1 = !Array.isArray(params[index]); if (bug1) { throw new Error("params must Array of two values" + " Error : " + bug1); } } for (var _a = 0, params_1 = params; _a < params_1.length; _a++) { var item = params_1[_a]; // console.log(item); if (!item[0]) return; else if (typeof item[0] !== 'number' && typeof item[0] !== 'string') { throw new Error("params_state required must string | number"); } else { if (!balance[item[0]]) { state1[item[0]] = item[1]; balance[item[0]] = true; } return; } } } export function useOne(params_state, initialstate) { if (!params_state || (typeof params_state === "number" ? false : params_state.trim() ? false : true)) { throw new Error("params_state required"); } if (!mainfunction) { throw new Error("call useOneFirst() on root component"); } if (!balance[params_state]) { state1[params_state] = initialstate; balance[params_state] = true; setnormal[params_state] = function (params) { state1[params_state] = params; mainfunction(params_state, params); }; initialData[params_state] = true; } if (!initialData[params_state]) { state1[params_state] = initialstate; setnormal[params_state] = function (params) { state1[params_state] = params; mainfunction(params_state, params); }; initialData[params_state] = true; } return [state1[params_state], setnormal[params_state]]; }