You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CreateScrapeRequest.js 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import React, { useState } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import Select from 'react-select'
  4. import { prices, beds, types, lifeStyles } from '../../constants/filters';
  5. import { createScrappes } from '../../request/scrappe';
  6. import './CreateScrapeRequest.scss'
  7. const CreateScrapeRequest = () => {
  8. const { t } = useTranslation();
  9. const [inputLocation, setLocation] = useState('')
  10. const [priceFilter, setPriceFilter] = useState('')
  11. const [bedFilter, setBedFilter] = useState('')
  12. const [typeFilter, setTypeFilter] = useState('')
  13. const [lifeStyleFilter, setLifeStyleFilter] = useState('')
  14. const handleChangePriceType = async selectedOption => {
  15. setPriceFilter(selectedOption)
  16. };
  17. const handleChangeBedType = async selectedOption => {
  18. setBedFilter(selectedOption)
  19. };
  20. const handleChangeFilterType = async selectedOption => {
  21. setTypeFilter(selectedOption)
  22. };
  23. const handleChangeLifeStyleType = async selectedOption => {
  24. setLifeStyleFilter(selectedOption)
  25. };
  26. async function handleSubmit(event) {
  27. event.preventDefault()
  28. const res = await createScrappes({ location: inputLocation, price: priceFilter.value, beds: bedFilter.value, type: typeFilter.value, lifestyle: lifeStyleFilter.value })
  29. console.log(res)
  30. }
  31. return (
  32. <div className="card card-primary">
  33. <div className="card-header">
  34. <h3 className="card-title">{t('createScrapeRequest.Title')}</h3>
  35. </div>
  36. <form >
  37. <div className="card-body">
  38. <div className="row">
  39. <div className="col-md-3">
  40. <div className="form-group">
  41. <input type="text" className="form-control input-field cursor-pointer" value={inputLocation} placeholder={t('createScrapeRequest.LocationPlaceholder')} onChange={e => setLocation(e.target.value)} />
  42. </div>
  43. </div>
  44. <div className="col-md-2">
  45. <div className="form-group">
  46. <Select options={prices} onChange={handleChangePriceType} />
  47. </div>
  48. </div>
  49. <div className="col-md-2">
  50. <div className="form-group">
  51. <Select className="cursor-pointer" options={beds} onChange={handleChangeBedType} />
  52. </div>
  53. </div>
  54. <div className="col-md-2">
  55. <Select className="cursor-pointer" options={types} onChange={handleChangeFilterType} />
  56. </div>
  57. <div className="col-md-2">
  58. <Select className="cursor-pointer" options={lifeStyles} onChange={handleChangeLifeStyleType} />
  59. </div>
  60. <div className="col-md-1">
  61. <button type="submit" onClick={handleSubmit} className="btn btn-outline-primary cursor-pointer">Request</button>
  62. </div>
  63. </div>
  64. </div>
  65. </form>
  66. </div>
  67. );
  68. };
  69. CreateScrapeRequest.propTypes = {};
  70. export default CreateScrapeRequest;