import * as React from 'react'; import { useState, useEffect } from 'react'; import './inventory.css' import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faLock, faLockOpen, faBook, faHammer, faBan } from '@fortawesome/free-solid-svg-icons' import Markdown from './Markdown'; import { useLoadDocQuery } from '../state/api'; function Inventory({ tactics, lemmas } : {lemmas: {name: string, locked: boolean, disabled: boolean}[], tactics: {name: string, locked: boolean, disabled: boolean}[]}) { const [docName, setDocName] = useState(null) const [docType, setDocType] = useState(null) return (

Tactics

{ tactics.map(tac => {setDocName(tac.name); setDocType("Tactic")}} name={tac.name} locked={tac.locked} disabled={tac.disabled} />) } {/* TODO: Click on Tactic: show info TODO: click on paste icon -> paste into command line */}

Lemmas

{ lemmas.map(lem => {setDocName(lem.name); setDocType("Lemma")}} name={lem.name} locked={lem.locked} disabled={lem.disabled} />) }
{docName && }
) } function InventoryItem({name, locked, disabled, showDoc}) { const icon = locked ? : disabled ? : "" const className = locked ? "locked" : disabled ? "disabled" : "" const handleClick = () => { if (!locked && !disabled) { showDoc() } } return
{icon} {name}
} function Documentation({name, type}) { const doc = useLoadDocQuery({type: type, name: name}) return <>

{doc.data?.name}

{doc.data?.text} } export default Inventory;