import React, {useState, useEffect} from 'react'; import M from 'materialize-css'; import {Icon, Select, Button, Textarea} from 'react-materialize'; import './Cash.css'; import axios from 'axios'; import {errorToast} from "../common/errorHelpers"; const PutInWork = (props) => { const [homies, setHomies] = useState([]); const [selectedTo, setSelectedTo] = useState(''); const [amountToAdd, setAmountToAdd] = useState(''); const [workDescription, setWorkDescription] = useState(''); const [submitInProgress, setSubmitInProgress] = useState(false); useEffect(() => { (async () => { try { const response = await axios.get('/api/homies'); if (response.status === 200 && response.data){ setHomies(response.data); } } catch (e) { errorToast(); } })(); }, []); const homieOptions = homies.map(homie => ); const clearForm = () => { setAmountToAdd(''); setSelectedTo(''); setWorkDescription(''); } const handleSubmit = async (e) => { e.preventDefault(); setSubmitInProgress(true); const workRequest = { work: { amount: parseInt(amountToAdd), homie_id: selectedTo, description: workDescription } } const submitResponse = await axios.post('/api/work', workRequest); if (submitResponse && submitResponse.status === 200 && submitResponse.data && submitResponse.data.ok === true) { M.toast({html: "Alright"}); clearForm(); } else { errorToast(); } setSubmitInProgress(false); } const formComplete = () => selectedTo !== '' && parseInt(amountToAdd) !== 0 && !isNaN(parseInt(amountToAdd)); const disableSubmit = () => (!formComplete() || submitInProgress); return (

Put in Work

setAmountToAdd(parseInt(e.target.value))} />