import type * as AtomIO from "atom.io" import { StoreContext, useO } from "atom.io/react" import * as RTC from "atom.io/realtime-client" import * as React from "react" import { useRealtimeService } from "./use-realtime-service.ts" export function usePullSelector( token: AtomIO.SelectorToken, ): AtomIO.ViewOf { const store = React.useContext(StoreContext) useRealtimeService(`pull:${token.key}`, (socket) => RTC.pullSelector(store, socket, token), ) return useO(token) }