mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-28 03:10:55 +00:00
40 lines
933 B
JavaScript
40 lines
933 B
JavaScript
'use client';
|
|
'use strict';
|
|
|
|
var React = require('react');
|
|
|
|
function useQueue({
|
|
initialValues = [],
|
|
limit
|
|
}) {
|
|
const [state, setState] = React.useState({
|
|
state: initialValues.slice(0, limit),
|
|
queue: initialValues.slice(limit)
|
|
});
|
|
const add = (...items) => setState((current) => {
|
|
const results = [...current.state, ...current.queue, ...items];
|
|
return {
|
|
state: results.slice(0, limit),
|
|
queue: results.slice(limit)
|
|
};
|
|
});
|
|
const update = (fn) => setState((current) => {
|
|
const results = fn([...current.state, ...current.queue]);
|
|
return {
|
|
state: results.slice(0, limit),
|
|
queue: results.slice(limit)
|
|
};
|
|
});
|
|
const cleanQueue = () => setState((current) => ({ state: current.state, queue: [] }));
|
|
return {
|
|
state: state.state,
|
|
queue: state.queue,
|
|
add,
|
|
update,
|
|
cleanQueue
|
|
};
|
|
}
|
|
|
|
exports.useQueue = useQueue;
|
|
//# sourceMappingURL=use-queue.cjs.map
|