import React from 'react'; import Layout from '../../components/Layout'; import fetchQL from '../../core/fetchQL'; import fetch from '../../core/fetch'; import { starters, mains } from '../../config'; const title = 'Admin'; export default { path: '/admin', async action() { const resp = await fetchQL('{getAllPersons{key,firstname,lastname,email,password,completed,starter,main}}'); const configResp = await fetch('/config.json', { headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, credentials: 'include', }); const settingsResp = await fetchQL('{settings{slack,email}}'); const { data } = await resp.json(); const config = await configResp.json(); let settings = await settingsResp.json(); if (settings && settings.data && settings.data.settings && settings.data.settings[0]) { settings = settings.data.settings[0]; } else { settings = { slack: false, email: false, }; } const people = data.getAllPersons || []; const food = { starters: starters.map((name, index) => { 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) => { require.ensure([], (require) => resolve(require('./Admin').default), 'admin'); }); return { title, chunk: 'admin', component: , }; }, };