Yeah, I agree that is definitely a tall ask :)
I just published a version with the signal props. Doing this made me realise that it creates this strong concept that StoreProviders becomes the bridge between the reconciling world of React and the observable world of Impact. You have plain values going in as props, becoming signals in Impact. And you have signals going out of Impact, consumed as plain values in React.
So with react-query you would be able to just use that data fetching hook and pass data to a StoreProvider, where it becomes a signal. So you could have a store like:
```
function MyStore(props) {
const reactQueryData = props.data
effect(() => {
console.log(reactQueryData())
})
return {}
}
```
React will update that signal whenever react-query causes reconciliation and the value changed.
In case of RxJS I was thinking of doing something like:
```
function toSignal(rxJsObservable, initialValue) {
const value = signal(initialValue)
const subscription = rxJsObservable.subscribe(value)
cleanup(() => subscription.unsubscribe())
return value
}
```
So basically you give a signal a default value and subscribe to the updates, updating the signal. But as I understand RxJS there are several ways to think about these observables... hot/cold... single event, multiple events etc. etc. Not sure how to create a single abstraction over that.