Files
emaui/node_modules/@mantine/hooks/esm/use-queue/use-queue.mjs
2026-05-29 15:23:46 +03:00

38 lines
908 B
JavaScript

'use client';
import { useState } from 'react';
function useQueue({
initialValues = [],
limit
}) {
const [state, setState] = 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
};
}
export { useQueue };
//# sourceMappingURL=use-queue.mjs.map