UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

58 lines (57 loc) 1.53 kB
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