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"; import { FiltersSideBar } from "./components/FiltersSideBar"; 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, removeHandler: Function}[]>([]) 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, removeHandler: Function) => { const id: string = label.replace(/\s+/g, '') if (!questions.find(q => q.id === id)) { setQuestions(q => [...q, { id, label, removeHandler }]) } } const removeQuestion = (id: string) => { setQuestions(q => q.filter(i => i.id !== id)) } return ( <>
{/*bg-blue-500*/}
) }