Lambda-School-Labs/designhub-fe

View on GitHub
src/views/Search/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import React, { useState } from 'react';
import Layout from '../../common/Layout';
import './styles.scss';
import { useMutation } from '@apollo/react-hooks';
import { useForm } from 'react-hook-form';
import { SEARCH_MUTATION } from '../../graphql';
import Display from './Display';

export default function Search() {
  const [users, setUsers] = useState([]);
  const [projects, setProjects] = useState([]);
  const [loading, setLoading] = useState(false);
  const { register, handleSubmit } = useForm();
  const [search] = useMutation(SEARCH_MUTATION);
  const onSubmit = async (data) => {
    setLoading(true);
    const { data: searchData } = await search({
      variables: {
        searchText: data.search,
      },
    });
    console.log(searchData);
    setUsers(searchData?.search?.users);
    setProjects(searchData?.search?.projects);
    setLoading(false);
  };
  return (
    <Layout>
      <div className="searchWrapper">
        <h1>Search!</h1>
        <form onSubmit={handleSubmit(onSubmit)}>
          <input name="search" ref={register} />
          <button type="submit">Submit</button>
        </form>
        <Display users={users} projects={projects} loading={loading} />
      </div>
    </Layout>
  );
}