mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
2c0ff4b925
Wonder how that one got through 🤔
33 lines
930 B
JavaScript
33 lines
930 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 = {version: 1}
|
|
|
|
const {actionCreator, getState: getAboutState} = namespaceConfig('about', DEFAULT_STATE)
|
|
|
|
const bumpVersion = actionCreator('bumpVersion', function (state, increment) {
|
|
return {...state, version: state.version + increment}
|
|
})
|
|
|
|
const About = ({ version, bumpVersion }) => (
|
|
<div>
|
|
<h1>About us</h1>
|
|
<h3>Current version: {version}</h3>
|
|
<p><button onClick={(e) => bumpVersion(1)}>Bump version!</button></p>
|
|
<Link href='/'><a>Homepage</a></Link>
|
|
</div>
|
|
)
|
|
|
|
function mapStateToProps (state) {
|
|
return getAboutState(state, 'version')
|
|
}
|
|
|
|
function mapDispatchToProps (dispatch) {
|
|
return bindActionCreators({ bumpVersion }, dispatch)
|
|
}
|
|
|
|
export default connect(mapStateToProps, mapDispatchToProps)(About)
|