UNPKG

hooks-me

Version:

<div align="center"> <h1>hooks-me</h1> <div>React useful hooks.</div>

35 lines (34 loc) 1.56 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var useArray = function (defaultValue) { var _a = (0, react_1.useState)(defaultValue), array = _a[0], setArray = _a[1]; var push = function (item) { setArray(function (old) { return __spreadArray(__spreadArray([], old, true), [item], false); }); }; var update = function (index, item) { setArray(function (a) { return __spreadArray(__spreadArray(__spreadArray([], a.slice(0, index), true), [ item ], false), a.slice(index + 1, a.length), true); }); }; var remove = function (index) { setArray(function (currentValue) { return __spreadArray(__spreadArray([], currentValue.slice(0, index), true), currentValue.slice(index + 1, currentValue.length), true); }); }; var filter = function (predicate) { setArray(function (currentValue) { return currentValue.filter(predicate); }); }; var clear = function () { setArray([]); }; return { value: array, push: push, update: update, remove: remove, filter: filter, set: setArray, clear: clear }; }; exports.default = useArray;