mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
d03ce5386d
* 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
27 lines
729 B
JavaScript
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)
|
|
}
|
|
}))
|
|
}
|
|
})
|