import * as React from 'react'; import { useState, useEffect } from 'react'; import ReactMarkdown from 'react-markdown'; import { MathJax } from "better-react-mathjax"; import '@fontsource/roboto/300.css'; import '@fontsource/roboto/400.css'; import '@fontsource/roboto/500.css'; import '@fontsource/roboto/700.css'; import { Paper, Box, Typography, Accordion, AccordionSummary, AccordionDetails, Tabs, Tab } from '@mui/material'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; function TacticDoc(props) { return ( }> {props.tactic.name} {props.tactic.content} ) } function LemmaDoc({ lemma }) { return ( }> {lemma.userName} {lemma.content} ) } function LemmaDocs({ lemmas }) { const [categories, setCategories] = useState(new Map()) const [curCategory, setCurCategory] = useState("") useEffect(() => { const cats = new Map() lemmas.forEach(function (item) { const category = item.category cats.set(category, (cats.get(category) || []).concat([item])) }); setCategories(cats) setCurCategory(cats.keys().next().value) }, [lemmas]); return ( Inventory {(Array.from(categories)).map(([category, _]) => )} {curCategory && categories.get(curCategory).map((lemma) => )} ) } function LeftPanel({ spells, inventory }) { return ( {spells.length > 0 && Spell book {spells.map((spell) => )} } {inventory.length > 0 && } ) } export default LeftPanel;