import { gql, useQuery } from "@apollo/client"; import React, { useState } from "react"; import { FaTrash } from "react-icons/fa"; import { Controller, useForm } from "react-hook-form"; import { Axis, Query } from "../../__generated__/graphql-schema"; import { Button, Card, Input, Navigator } from '../../components'; type NewAssessementForm = { axisWeights: Record } const NEW_ASSESSEMENT_DATA_QUERY = gql` query NewAssessementDataQuery { axes { nodes { id name } } } ` export const NewAssessement = () => { const { data } = useQuery(NEW_ASSESSEMENT_DATA_QUERY) const axes = data?.axes.nodes const [subjectsIds, setSubjectsIds] = useState([]) const { register, control, watch } = useForm({ mode: 'onBlur' }) const addAxisForm = useForm<{ axisId: string }>() const handleAddAxis = (formData: { axisId: string }) => { setSubjectsIds(prev => [...prev, formData.axisId]) addAxisForm.reset(); } const handleRemoveAxis = (axisId: string) => { setSubjectsIds(prev => prev.filter((axis => axis !== axisId))) } if (!axes?.length) return null const notSelectedAxis: Axis[] = axes.filter((axis) => !subjectsIds.includes(axis.id)) const selectedAxis: Axis[] = axes.filter((axis) => subjectsIds.includes(axis.id)) return ( <>

Titulo:

Observações:

{selectedAxis.map(axis => (
{axis.name}
handleRemoveAxis(axis.id)}>
Fácil {watch(`axisWeights.easy.${axis.id}`) ?? 5}
( )} />
Médio {watch(`axisWeights.medium.${axis.id}`) ?? 5}
( )} />
Difícil {watch(`axisWeights.hard.${axis.id}`) ?? 5}
( )} />
))}
) }