Skip to content
Snippets Groups Projects
Commit 8b99653e authored by Damien Armillon's avatar Damien Armillon
Browse files

Refactor class to function

parent 409f049f
Branches
No related tags found
No related merge requests found
import React, {Component} from 'react' import React, {useState, useEffect} from 'react'
import {Card, Segment} from 'semantic-ui-react' import {Card, Segment} from 'semantic-ui-react'
import SelectYear from '../../utils/yearSelector' import SelectYear from '../../utils/yearSelector'
import ToucanCard from './ToucanCard' import ToucanCard from './ToucanCard'
...@@ -7,54 +7,46 @@ import env from '../../.env' ...@@ -7,54 +7,46 @@ import env from '../../.env'
const date = new Date() const date = new Date()
const beginYear = 1900 + (date.getMonth() < 8 ? date.getYear()-1 : date.getYear()); const beginYear = 1900 + (date.getMonth() < 8 ? date.getYear()-1 : date.getYear());
class AllToucan extends Component { function AllToucan(props){
constructor(){ const [toucans,setToucans] = useState([]);
super(); const [before,setBefore] = useState((new Date(beginYear+1,7,31)).getTime());
this.state = { const [after, setAfter] = useState((new Date(beginYear,8,1)).getTime());
toucans: [],
before: (new Date(beginYear+1,7,31)).getTime(),
after: (new Date(beginYear,8,1)).getTime(),
}
}
updateToucan(){ useEffect(()=>{
fetch(`${env.backURL}/toucan/toucans?before=${this.state.before}&after=${this.state.after}`) fetch(`${env.backURL}/toucan/toucans?before=${before}&after=${after}`)
.then(result => { .then(result => {
return result.json() return result.json()
}) })
.then(toucans => { .then(toucans => {
this.setState({toucans}) setToucans(toucans)
}) })
.catch(err => console.log(err)) .catch(err => console.log(err))
} },[before,after]
)
updateFrame(value){ function updateFrame(value){
var before = (new Date(value+1,7,31)).getTime() var before = (new Date(value+1,7,31)).getTime()
var after = (new Date(value,8,1)).getTime() var after = (new Date(value,8,1)).getTime()
setBefore(before)
this.setState({before, after},()=> this.updateToucan()) setAfter(after)
} }
componentDidMount(){
this.updateToucan()
}
render(){
return ( return (
<Segment style={{textAlign:"center", margin:"3em",padding:"2em"}} > <Segment style={{textAlign:"center", margin:"3em",padding:"2em"}} >
<SelectYear <SelectYear
style={{marginBottom:"2em"}} style={{marginBottom:"2em"}}
beginYear={beginYear} beginYear={beginYear}
updateFrame = {this.updateFrame.bind(this)} updateFrame = {updateFrame}
/> />
<Card.Group centered > <Card.Group centered >
{this.state.toucans.map( toucan => { {toucans.map( toucan => {
return <ToucanCard return <ToucanCard
image={`${env.backURL}/toucan/img/${toucan["_id"]}`} image={`${env.backURL}/toucan/img/${toucan["_id"]}`}
link={`${env.backURL}/toucan/pdf/${toucan["_id"]}.pdf`} link={`${env.backURL}/toucan/pdf/${toucan["_id"]}.pdf`}
header={toucan.title} header={toucan.title}
toucanId={toucan._id} toucanId={toucan._id}
isAdmin={this.props.isAdmin} isAdmin={props.isAdmin}
date={(new Date(toucan.date).toLocaleDateString())} date={(new Date(toucan.date).toLocaleDateString())}
key={toucan._id} key={toucan._id}
/> />
...@@ -62,6 +54,6 @@ class AllToucan extends Component { ...@@ -62,6 +54,6 @@ class AllToucan extends Component {
</Card.Group> </Card.Group>
</Segment> </Segment>
)} )}
}
export default AllToucan export default AllToucan
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment