synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
58 lines (57 loc) • 1.53 kB
JavaScript
import { useReducer as d } from "react";
function s(e, n) {
switch (n.type) {
case "addItemsPendingConfirmation":
return {
...e,
pendingItems: [...e.pendingItems, ...n.newItems]
};
case "confirmItem": {
const t = [
...e.confirmedItems,
...n.itemsToConfirm
], i = e.pendingItems.filter(
(r) => !n.itemsToConfirm.includes(r)
);
return {
confirmedItems: t,
pendingItems: i
};
}
case "removePendingItems": {
const t = e.pendingItems.filter(
(i) => !n.itemsToRemove.includes(i)
);
return {
confirmedItems: e.confirmedItems,
pendingItems: t
};
}
case "clear":
return { confirmedItems: [], pendingItems: [] };
default:
return e;
}
}
function c() {
const [e, n] = d(s, {
pendingItems: [],
confirmedItems: []
}), t = (...m) => {
n({ type: "addItemsPendingConfirmation", newItems: m });
}, i = (...m) => (n({ type: "confirmItem", itemsToConfirm: m }), s(e, { type: "confirmItem", itemsToConfirm: m })), r = (...m) => (n({ type: "removePendingItems", itemsToRemove: m }), s(e, { type: "removePendingItems", itemsToRemove: m })), o = () => {
n({ type: "clear" });
};
return {
pendingItems: e.pendingItems,
confirmedItems: e.confirmedItems,
addItemsPendingConfirmation: t,
confirmItem: i,
removePendingItems: r,
clear: o
};
}
export {
c as default
};
//# sourceMappingURL=useConfirmItems.js.map