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
JavaScript
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]];
}