33 lines
950 B
JavaScript
33 lines
950 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var tslib_1 = require("tslib");
|
|
var react_1 = require("react");
|
|
var useQueue = function (initialValue) {
|
|
if (initialValue === void 0) { initialValue = []; }
|
|
var _a = react_1.useState(initialValue), state = _a[0], set = _a[1];
|
|
return {
|
|
add: function (value) {
|
|
set(function (queue) { return tslib_1.__spreadArrays(queue, [value]); });
|
|
},
|
|
remove: function () {
|
|
var result;
|
|
set(function (_a) {
|
|
var first = _a[0], rest = _a.slice(1);
|
|
result = first;
|
|
return rest;
|
|
});
|
|
return result;
|
|
},
|
|
get first() {
|
|
return state[0];
|
|
},
|
|
get last() {
|
|
return state[state.length - 1];
|
|
},
|
|
get size() {
|
|
return state.length;
|
|
},
|
|
};
|
|
};
|
|
exports.default = useQueue;
|