MCPcopy
hub / github.com/preactjs/preact / Child

Function Child

demo/stateOrderBug.jsx:22–67  ·  view source on GitHub ↗
({ items, setItems })

Source from the content-addressed store, hash-verified

20`;
21
22const Child = ({ items, setItems }) => {
23 let [pendingId, setPendingId] = useState(null);
24 if (!pendingId) {
25 setPendingId((pendingId = Math.random().toFixed(20).slice(2)));
26 }
27
28 const onInput = useCallback(
29 evt => {
30 let val = evt.target.value,
31 _items = [...items, { _id: pendingId, val }];
32 if (childFirst) {
33 setPendingId(null);
34 setItems(_items);
35 } else {
36 setItems(_items);
37 setPendingId(null);
38 }
39 },
40 [childFirst, setPendingId, setItems, items, pendingId]
41 );
42
43 return html`
44 <div class="item-editor">
45 ${items.map(
46 (item, idx) => html`
47 <input
48 key=${item._id}
49 value=${item.val}
50 oninput=${evt => {
51 let val = evt.target.value,
52 _items = [...items];
53 _items.splice(idx, 1, { ...item, val });
54 setItems(_items);
55 }}
56 />
57 `
58 )}
59
60 <input
61 key=${pendingId}
62 placeholder="type to add an item"
63 oninput=${onInput}
64 />
65 </div>
66 `;
67};
68
69const Parent = () => {
70 let [items, setItems] = useState([]);

Callers

nothing calls this directly

Calls 3

useStateFunction · 0.90
useCallbackFunction · 0.90
htmlFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…