import { useContext, useState } from 'preact/hooks' import { isAdministrator, Problem as ProblemModel, Solution as SolutionModel } from '../../shared/model' import { server } from '../api' import { Header } from '../components/Header' import { MarkdownEditor } from '../components/MarkdownEditor' import { Problem } from '../components/Problem' import { Solution } from '../components/Solution' import { MetadataContext, useCurrentUser, useListResource, useResource } from '../hooks' type RouteProps = { id: string } export const ProblemPage = ({ id }: RouteProps) => { const metadata = useContext(MetadataContext) metadata.title = `Problem ${id}` const [user] = useCurrentUser() const [source, setSource] = useState('') const [{ content }] = useResource<{ content: string }>(`/api/problem/${id}`, { content: '', }) const [solutions, refreshSolutions, setSolutionHeuristic] = useListResource( `/api/solutions?problem=${id}` ) const sendSolution = async () => { await server.post('/api/solution', { forProblem: id, content: source, }) setSource('') refreshSolutions() } return (
Testo del problema
{solutions.length > 0 && (
Soluzioni
{solutions.map((s, index) => ( setSolutionHeuristic(index, solFn)} /> ))}
)} {user && ( <>
Invia una soluzione al problema
)}
) }