rsnext/examples/with-redux-code-splitting/containers/homepage.js
Joe Haddad 18a9c7e371
Improve linting rules to catch more errors (#9374)
* Update `packages/`

* Update examples

* Update tests

* Update bench

* Update top level files

* Fix build

* trigger
2019-11-10 19:24:53 -08:00

39 lines
949 B
JavaScript

import React from 'react'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import { namespaceConfig } from 'fast-redux'
import Link from 'next/link'
const DEFAULT_STATE = { build: 1 }
const { actionCreator, getState: getHomepageState } = namespaceConfig(
'homepage',
DEFAULT_STATE
)
const bumpBuild = actionCreator(function bumpBuild(state, increment) {
return { ...state, build: state.build + increment }
})
const Homepage = ({ build, bumpBuild }) => (
<div>
<h1>Homepage</h1>
<h3>Current build: {build}</h3>
<p>
<button onClick={e => bumpBuild(1)}>Bump build!</button>
</p>
<Link href="/about">
<a>About Us</a>
</Link>
</div>
)
function mapStateToProps(state) {
return getHomepageState(state)
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ bumpBuild }, dispatch)
}
export default connect(mapStateToProps, mapDispatchToProps)(Homepage)