import { atom, Atom, useAtom, useAtomValue } from "jotai"; import { useState } from "react"; import { Badge, Card, ListGroup } from "react-bootstrap"; import { receiptAtom } from "../lib/state"; import EditBox from "./EditBox"; import Person, { IPerson } from "./Person"; export interface IReceiptItem { name: string; price: Atom; splitBetween: Atom[]>; } export interface Props { itemAtom: Atom; } function SplitBetween({ splitBetweenAtom }) { const [splitBetween, setSplitBetween] = useAtom(splitBetweenAtom); const [input, setInput] = useState(""); const [editing, setEditing] = useState(false); const startEditing = (_) => { setInput(""); setEditing(true); }; const addPerson = (e) => { e.preventDefault(); setSplitBetween([...splitBetween, atom({ name: input })]); setEditing(false); }; return (
Split between ({splitBetween.length}): {splitBetween.map((a, i) => ( ))} {editing ? (
setEditing(false)} onInput={(e) => setInput(e.target.value)} />
) : ( "[+]" )}
); } function Price({ priceAtom }) { return ; } export default function ReceiptItem({ itemAtom }: Props) { const [receipt, setReceipt] = useAtom(receiptAtom); const [item, _] = useAtom(itemAtom); const removeSelf = (_) => { setReceipt([...receipt.filter((x) => x != itemAtom)]); }; return ( {item.name} Item price: × ); }