import type { ReadonlyPureSelectorToken, RegularAtomToken, TransactionOutcomeEvent, TransactionToken, } from "atom.io" import { findInStore, type Fn } from "atom.io/internal" import { useI, useO } from "atom.io/react" import { type FC, useContext } from "react" import { button } from "./Button.tsx" import { DevtoolsContext } from "./store.ts" import { article } from "./Updates.tsx" export const TransactionLog: FC<{ token: TransactionToken isOpenState: RegularAtomToken logState: ReadonlyPureSelectorToken< readonly TransactionOutcomeEvent>[] > }> = ({ token, isOpenState, logState }) => { const log = useO(logState) const isOpen = useO(isOpenState) const setIsOpen = useI(isOpenState) return (

{token.key}

({log.length})
{isOpen ? (
{log.map((update, index) => ( ))}
) : null}
) } export const TransactionIndex: FC = () => { const { transactionIndex, transactionLogSelectors, viewIsOpenAtoms, store } = useContext(DevtoolsContext) const tokenIds = useO(transactionIndex) return (
{tokenIds.length === 0 ? (

(no transactions)

) : ( tokenIds .filter((token) => !token.key.startsWith(`🔍`)) .map((token) => { return ( ) }) )}
) }