import { gql, useQuery } from "@apollo/client"; import React, { useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { Query } from "../../__generated__/graphql-schema"; import { Button, Card, Input, Navigator } from '../../components'; type NewAssessementForm = { subjectWeights: Record } const NEW_ASSESSEMENT_DATA_QUERY = gql` query NewAssessementDataQuery { categories { nodes { id name subjects { id name } } } } ` export const NewAssessement = () => { const { data } = useQuery(NEW_ASSESSEMENT_DATA_QUERY) const [subjectsIds, setSubjectsIds] = useState([]) const subjectForm = useForm<{ subjectId: string }>() const { register, control, watch } = useForm({ mode: 'onBlur' }) const handleSubjectFormSubmit = (data: { subjectId: string }) => { setSubjectsIds(prev => [...prev, data.subjectId]) subjectForm.reset(); } if (!data?.categories) { return null; } return ( <>

Titulo:

Observações:

{data.categories.nodes.map(category => ( category.subjects.find(subject => subjectsIds.includes(subject.id)) ?
{category.name}
{category.subjects.map(subject => subjectsIds.includes(subject.id) ?
{subject.name}
Fácil {watch(`subjectWeights.easy.${subject.id}`) ?? 5}
( )} />
Médio {watch(`subjectWeights.medium.${subject.id}`) ?? 5}
( )} />
Difícil {watch(`subjectWeights.hard.${subject.id}`) ?? 5}
( )} />
: null )}
: null ))}
) }