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'; const MakeMoneyMove = (props) => { const [selectedFrom, setSelectedFrom] = useState(""); const [selectedTo, setSelectedTo] = useState(""); const [homiesCash, setHomiesCash] = useState([]); const [amountToMove, setAmountToMove] = useState(null); const [moveDescription, setMoveDescription] = useState(""); const [submitInProgress, setSubmitInProgress] = useState(false); useEffect(() => { const getCashForHomies = async () => { try { const cash = await axios.get(`/api/homies/cash`); setHomiesCash(cash.data); } catch (e) { console.log("Error fetching", e); } }; getCashForHomies(); }, []); const handleAmountChange = (e) => { setAmountToMove(parseFloat(e.target.value)) } const homieToOptionMapper = (homieCash) => { const homie = homieCash.homie; return ( ); }; const homieOptions = homiesCash.map(homieToOptionMapper); const handleFromHomieChange = (e) => { setSelectedFrom(e.target.value); }; const filteredHomieCashes = homiesCash.filter((homieCash) => homieCash.homie.id !== parseInt(selectedFrom)); const filteredHomieOptions = filteredHomieCashes.map(homieToOptionMapper); const handleToHomieChange = (e) => { setSelectedTo(e.target.value); } const handleDescriptionChange = (e) => { setMoveDescription(e.target.value); } const clearForm = () => { setAmountToMove(""); setSelectedFrom(""); setSelectedTo(""); setMoveDescription(""); } const handleSubmit = async (e) => { e.preventDefault(); setSubmitInProgress(true); const moneyMoveRequest = { money_move: { amount: amountToMove, from_homie_id: selectedFrom, to_homie_id: selectedTo, description: moveDescription } } const submitResponse = await axios.post('/api/money_moves', moneyMoveRequest); if (submitResponse && submitResponse.status === 200 && submitResponse.data === true) { M.toast({html: "Money lounde...moved"}); clearForm(); } else { M.toast({html: "Yo! It ain't workin'"}); } setSubmitInProgress(false); } const formComplete = () => ( selectedFrom !== selectedTo && selectedTo !== "" && amountToMove > 0 ); const disableSubmit = () => (!formComplete() || submitInProgress); return (

Make Money Move