'use client' import React, { useState, useEffect } from 'react'; import { useQuery } from 'react-query'; import { fetchHardSkills, searchStudents } from '@/api/api'; import { Input, Button, Spin, List, Select, Card } from 'antd'; import { SearchOutlined } from '@ant-design/icons'; import style from './SearchResume.module.scss'; import { ResumeDataWithoutSkills } from '@/types/types'; const { Option } = Select; const SearchResume: React.FC = () => { const [year, setYear] = useState(); const [time, setTime] = useState([]); const [hardskills, setHardskills] = useState([]); const [searchResults, setSearchResults] = useState< ResumeDataWithoutSkills[] | null >(null); // Функция для формирования строки запроса const buildQueryParams = () => { const params = new URLSearchParams(); if (year !== undefined) { params.append('year', year.toString()); } if (time.length > 0) { time.forEach(t => params.append('time', t)); } if (hardskills.length > 0) { hardskills.forEach(skill => params.append('hardskills', skill)); } return params.toString(); }; const { data, error, isLoading, refetch } = useQuery< ResumeDataWithoutSkills[] >( ['searchStudents', buildQueryParams()], () => { const queryString = buildQueryParams(); return searchStudents(queryString); }, { enabled: false, refetchOnWindowFocus: false, retry: false } ); const { data: hardSkills } = useQuery( ['hardSkills'], () => fetchHardSkills(), { refetchOnWindowFocus: false, retry: false, } ); // Используем useEffect для обновления searchResults, когда запрос завершен useEffect(() => { if (data) { setSearchResults(data); } }, [data]); const handleSearch = () => { refetch(); }; return (
{isLoading && } {searchResults && searchResults.length > 0 ? (
{searchResults.map((item: ResumeDataWithoutSkills) => (

Тип: {item.Type}

Группа: {item.Group}

Занятость: {item.Time.join(', ')}

Soft Skills: {item.Soft_skills}

Номер телефона: {item.Phone_number}

Факультет: {item.Faculties}

Ссылка: {item.Link}

Email: {item.Email}

))}
) : ( !isLoading &&
Резюме не найдены
)}
); }; export default SearchResume;