Search.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { actionSearch } from "../actions/actionSearch";
  2. import { Link } from "react-router-dom";
  3. import { connect } from "react-redux";
  4. import { useState } from "react";
  5. import "./Main.css";
  6. const Search = ({ onSearch, snippets }) => {
  7. const [request, setRequest] = useState('');
  8. return (
  9. <>
  10. <Link to="/work">
  11. <button>
  12. Back to Main Page
  13. </button>
  14. </Link>
  15. <br />
  16. <br />
  17. <div>
  18. <input
  19. value={request}
  20. onChange={(e) => setRequest(e.target.value)}
  21. type="search"
  22. placeholder="Name of project"
  23. aria-label="Search"
  24. />
  25. <br />
  26. <button onClick={() => onSearch(request)}>
  27. Search
  28. </button>
  29. </div>
  30. {snippets?.map((key, index) => (
  31. <div>
  32. <div>
  33. <div>
  34. <h3>
  35. {snippets?.[index]?.title || "Project without name"}
  36. </h3>
  37. <p>
  38. <span>Description</span>&nbsp;
  39. {snippets?.[index]?.description || ""}
  40. </p>
  41. <p>{`Owner: ${snippets?.[index]?.owner?.login}`}</p>
  42. <Link to={"/project/" + snippets?.[index]?._id}>
  43. <button>Open project</button>
  44. </Link>
  45. </div>
  46. </div>
  47. </div>
  48. ))}
  49. </>
  50. )
  51. }
  52. const ConnectFormSearch = connect(state => ({ snippets: state?.p?.searchSnippet?.payload?.data?.SnippetFind }), { onSearch: actionSearch })(Search)
  53. export default ConnectFormSearch;