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