import React, { useState, useEffect } from 'react' import fetch from 'unfetch' import Head from 'next/head' import Link from 'next/link' import LoadingIndicator from '../components/LoadingIndicator' import Sleep from '../components/sleep' import DbSelector from '../components/dbSelector.js' import styles from './index.module.css' import constants from '../constants.json' const links = { install: { href: '/install', text: 'Install', }, irc: { href: '/irc', text: 'IRC chat', }, dataeditor: { href: '/dataeditor', text: 'Dataeditor', }, } export default function Index(props) { const [news, setNews] = useState(null) const [allQrSelector, setAllQrSelector] = useState(null) const motd = props.globalData.motd const userSpecificMotd = props.globalData.userSpecificMotd useEffect(() => { console.info('Fetching news.json') fetch(`${constants.apiUrl}news.json`, { credentials: 'include', }) .then((resp) => { return resp.json() }) .then((data) => { setNews(data) }) }, []) const renderQAItem = (newsItem, key) => { return (
{key} :
) } const renderNewsItem = (newsItem, key) => { return (
{key} :
) } const renderNews = () => { if (news) { let questions = Object.keys(news) .map((key) => { let newsItem = news[key] if (newsItem.q) { return (
{renderQAItem(newsItem, key)}
) } else { return (
{renderNewsItem(newsItem, key)}
) } }) .reverse() return (
News


{questions}
) } else { return } } const renderMotd = () => { return (
MOTD


{motd ? (
) : (
...
)}
) } const renderUserSpecificMotd = () => { return (

Üzenet admintól:
{userSpecificMotd ? (
) : (
...
)}
) } const renderDbSelector = () => { if (allQrSelector) { return ( { setAllQrSelector(null) }} onDbSelect={(selectedDb) => { console.log(selectedDb, allQrSelector) if (allQrSelector === 'txt') { if (selectedDb === 'all') { window.open(`${constants.apiUrl}allqr.txt`, '_blank') } else { window.open( `${constants.apiUrl}allqr.txt?db=${selectedDb.name}`, '_blank' ) } } else if (allQrSelector === 'json') { window.open(`${constants.apiUrl}${selectedDb.path}`, '_blank') } }} /> ) } else { return null } } return (
Qmining | Frylabs.net
{renderMotd()} {userSpecificMotd && renderUserSpecificMotd()}

{renderNews()} {renderDbSelector()}
) }