Collate food totals
This commit is contained in:
@@ -14,6 +14,14 @@ class Admin extends React.Component {
|
|||||||
password: PropTypes.string,
|
password: PropTypes.string,
|
||||||
attending: PropTypes.boolean,
|
attending: PropTypes.boolean,
|
||||||
})).isRequired,
|
})).isRequired,
|
||||||
|
starters: PropTypes.arrayOf(PropTypes.shape({
|
||||||
|
name: PropTypes.string,
|
||||||
|
total: PropTypes.integer,
|
||||||
|
})).isRequired,
|
||||||
|
mains: PropTypes.arrayOf(PropTypes.shape({
|
||||||
|
name: PropTypes.string,
|
||||||
|
total: PropTypes.integer,
|
||||||
|
})).isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@@ -27,6 +35,21 @@ class Admin extends React.Component {
|
|||||||
<p>{this.props.people.filter(person => person.completed).length} responses</p>
|
<p>{this.props.people.filter(person => person.completed).length} responses</p>
|
||||||
<Link to="/admin/people">Manage people</Link>
|
<Link to="/admin/people">Manage people</Link>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2>Food</h2>
|
||||||
|
<h3>Starters</h3>
|
||||||
|
<ul>
|
||||||
|
{this.props.starters.map((starter, index) => (
|
||||||
|
<li key={index}>{starter.name} - {starter.total}</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
<h3>Mains</h3>
|
||||||
|
<ul>
|
||||||
|
{this.props.mains.map((main, index) => (
|
||||||
|
<li key={index}>{main.name} - {main.total}</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -15,8 +15,14 @@ export default {
|
|||||||
const people = data.getAllPersons || [];
|
const people = data.getAllPersons || [];
|
||||||
|
|
||||||
const food = {
|
const food = {
|
||||||
starters: starters.map(name => ({ name, total: 0 })),
|
starters: starters.map((name, index) => {
|
||||||
mains: mains.map(name => ({ name, total: 0 })),
|
const total = people.filter(person => person.starter === `${index}`).length;
|
||||||
|
return { name, total };
|
||||||
|
}),
|
||||||
|
mains: mains.map((name, index) => {
|
||||||
|
const total = people.filter(person => person.main === `${index}`).length;
|
||||||
|
return { name, total };
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
const Admin = await new Promise((resolve) => {
|
const Admin = await new Promise((resolve) => {
|
||||||
@@ -29,7 +35,8 @@ export default {
|
|||||||
component: <Layout><Admin
|
component: <Layout><Admin
|
||||||
title={title}
|
title={title}
|
||||||
people={people}
|
people={people}
|
||||||
food={food}
|
starters={food.starters}
|
||||||
|
mains={food.mains}
|
||||||
/></Layout>,
|
/></Layout>,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user