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}
)}
)
}