import { gql, useQuery } from "@apollo/client"; import React, { useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { Axis, Query } from "../../__generated__/graphql-schema"; import { Button, Card, Input, Navigator } from '../../components'; import { SideBar } from "./components/SideBar"; import { QuestionCard } from "./components/QuestionCard"; import { Link } from "react-router-dom"; import { SelectedQuestionsSideBar } from "./components/SelectedQuestionsSideBar"; type NewAssessementManualForm = { axisWeights: Record } const NEW_ASSESSEMENT_DATA_QUERY = gql` query NewAssessementDataQuery { axes { nodes { id name } } } ` export const NewAssessementManual = () => { const { data } = useQuery(NEW_ASSESSEMENT_DATA_QUERY) const axes = data?.axes.nodes const [questions, setQuestions] = useState<{id: string, label: string}[]>([]) 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)) const addQuestion = (label: string) => { const id: string = label.replace(/\s+/g, '') setQuestions(q => [...q, { id, label }]) } const removeQuestion = (id: string) => { setQuestions(q => q.filter(i => i.id != id)) } return ( <>
{/*bgColor="bg-red-700"*/} Filters
{/*bg-blue-500*/}
) }