UNPKG

fui-fancyui

Version:
46 lines (45 loc) 1.28 kB
import { useState as f } from "react"; import { setLastLetterPositionContentEditable as c } from "../../../../utils/functions/setLastLetterPositionContentEditable.js"; import v from "../../../../../node_modules/uuid/dist/esm-browser/v4.js"; const F = (d = [], r) => { const [s, p] = f(""), [u, l] = f(""), m = (e) => { r == null || r([...d, { id: v(), label: e }]); }, o = (e) => () => { r == null || r(d.filter((t) => t.id !== e)); }, b = () => { r == null || r(d.slice(0, -1)); }, E = (e) => { if (e === s) { p(""), l(""); return; } p(e), l(""); }, a = (e, t) => { p(t), l(s); const i = e.target; c(i); }, k = (e, t) => { r == null || r(d.map((i) => i.id === e ? { ...i, label: t } : i)); }; return { addChip: m, handleChipEdit: (e, t) => { if (t.key === "Enter" && s && !u) { t.preventDefault(), l(s); const i = t.target; c(i); return; } else (t.key === "Enter" || t.key === ",") && e === s && (t.preventDefault(), k(e, t.target.innerText), p(""), l(""), t.target.blur()); }, deleteChip: o, handleChipFocus: E, focusedChip: s, editabledChip: u, chips: d, removeLastChip: b, handleClick: a }; }; export { F as useChip };