import { StoreContext, useI, useO } from "atom.io/react" import { LayoutGroup, motion } from "motion/react" import { useContext, useRef } from "react" import { StateIndex } from "./StateIndex.tsx" import { attachDevtoolsStates, DevtoolsContext } from "./store.ts" import { TimelineIndex } from "./TimelineIndex.tsx" import { TransactionIndex } from "./TransactionIndex.tsx" export const AtomIODevtools: React.FC<{ hideByDefault?: boolean }> = ({ hideByDefault = false, }) => { const store = useContext(StoreContext) return ( ) } const AtomIODevtoolsInternal = (): React.ReactNode => { const constraintsRef = useRef(null) const { atomIndex, selectorIndex, devtoolsAreHiddenAtom, devtoolsAreOpenAtom, devtoolsViewSelectionAtom, devtoolsViewOptionsAtom, } = useContext(DevtoolsContext) const devtoolsAreHidden = useO(devtoolsAreHiddenAtom) const setDevtoolsAreOpen = useI(devtoolsAreOpenAtom) const devtoolsAreOpen = useO(devtoolsAreOpenAtom) const setDevtoolsView = useI(devtoolsViewSelectionAtom) const devtoolsView = useO(devtoolsViewSelectionAtom) const devtoolsViewOptions = useO(devtoolsViewOptionsAtom) const mouseHasMoved = useRef(false) return ( {devtoolsAreHidden ? null : ( {devtoolsAreOpen ? ( <>

atom.io

{devtoolsView === `atoms` ? ( ) : devtoolsView === `selectors` ? ( ) : devtoolsView === `transactions` ? ( ) : ( )} ) : null}
)}
) }