1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
next.js/examples/with-freactal/provideState.js
Srigi d03ce5386d Example: with Freactal (#2955)
* Define dependencies & NPM stuff for the example

* Setup Babel preset

* Add sources of working version of example

* Indicate ajax loading state

* Add readme file

* Remove unneeded .babelrc
2017-09-17 23:16:19 +02:00

27 lines
729 B
JavaScript

import { provideState, update } from 'freactal'
import { fetchUserRepos } from './githubApi'
export default serverState => provideState({
initialState: () => ({
...serverState,
ajaxStatus: false
}),
effects: {
setAjaxLoader: update((state, ajaxStatus) => ({ ajaxStatus })),
fetchGithubReposList: (effects, username, page) =>
effects.setAjaxLoader(true)
.then(() => fetchUserRepos(username, page))
.then((repos) => effects.setAjaxLoader(false).then(() => repos))
.then((repos) => (state) => ({
...state,
githubReposList: {
username,
page,
repos: state.githubReposList.repos.concat(repos)
}
}))
}
})