Skip to content

Instantly share code, notes, and snippets.

@einarlove
Created February 20, 2016 14:23
Show Gist options
  • Save einarlove/ab7b5f779a4d0435583f to your computer and use it in GitHub Desktop.
Save einarlove/ab7b5f779a4d0435583f to your computer and use it in GitHub Desktop.
Fetch decorator sketches
@connectData({
fetch: fetchMeals,
fromState: state => ({
meal: state.meals[state.profile.preferredMeal]
mealToOld: state.meals[state.profile.preferredMeal].created > new Date()
}),
})
@connect(state => ({
meal: state.meals[state.profile.preferredMeal]
}))
@fetch(fetchMeals, {
mapStateToProps: state => ({
meal: state.meals[state.profile.preferredMeal]
}),
forceFetch: (state, props) => state.mealToOld || props.renew,
onFailure: (error, retry) => (
<button onClick={retry}>Try again</button>
)
})
@fetch((state, props) => fetchMeals,{
mapStateToProps: state => ({
meal: state.meals[state.profile.preferredMeal]
}),
forceFetch: (state, props) => state.mealToOld || props.renew,
onFailure: (error, retry) => (
<button onClick={retry}>Try again</button>
)
})
@loader(props => (
<Loader>Retrieving all meals</Loader>
))
@loader(props => (
<Loader>Retrieving all meals</Loader>
), ['meal'])
class Comp {
render() {
return (
<h1>Hello</h1>
)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment