- Export
useGate
withfork
support fromeffector-react/ssr
import {useGate, useStore, Provider} from 'effector-react/ssr'
import {createGate} from 'effector-react'
import {createDomain, forward} from 'effector'
import {fork} from 'effector/fork'
const app = createDomain()
const activeChatGate = createGate({domain: app})
const getMessagesFx = app.createEffect({
async handler({chatId}) {
return ['hi bob!', 'Hello, Alice']
},
})
const messagesAmount = app
.createStore(0)
.on(getMessagesFx.doneData, (_, messages) => messages.length)
forward({
from: activeChatGate.open,
to: getMessagesFx,
})
const ChatPage = ({chatId}) => {
useGate(activeChatGate, {chatId})
return (
<div>
<header>Chat {chatId}</header>
<p>Messages total: {useStore(messagesAmount)}</p>
</div>
)
}
const App = ({root}) => (
<Provider value={root}>
<ChatPage chatId="chat01" />
</Provider>
)
const scope = fork(app)
ReactDOM.render(<App root={scope} />, document.getElementById('root'))
- Add
domain
optional field tocreateGate
which will be used to create gate units (useful for ssr)
createGate({domain}) in documentation
- Improve
useList
hook typings for typescript exported fromeffector-react/ssr
by allowing usage as components' return value (fix DefinitelyTyped issue)