import React from 'react'; import { splitFilter } from '../utils.js'; import Adventure from './Adventure.js'; export default class AdventureList extends React.Component { componentWillMount() { this.unsubscribe = this.props.subscribeToAdventures({ scoutID: this.props.scoutID }); } render() { const { scoutID, allAdventures, completedAdventures } = this.props; console.log("completed!: ", completedAdventures); if(!allAdventures || !allAdventures.length) { return
Loading...
} const completedMap = completedAdventures.reduce((map, adv) => { map[adv.adventure.id] = adv; return map; }, {}); const sortedAdventures = [...allAdventures].sort((a,b) => (a.number > b.number)); const [ requiredAdventures, optionalAdventures ] = splitFilter(sortedAdventures, a => a.required); const requiredAdventureList = requiredAdventures.map(adventure => { const props = { key: adventure.id, scoutID: scoutID, completed: completedMap[adventure.id], ...adventure } return ; }); const optionalAdventureList = optionalAdventures.map(adventure => { console.log("ADVENTURE!: ", adventure); const props = { key: adventure.id, scoutID: scoutID, completed: completedMap[adventure.id], ...adventure } return ; }); return
{requiredAdventureList}
{ //optionalAdventureList }
; } componentWillUnmount() { this.unsubscribe(); } }