1
0

Added a security check to the Input.jsx

This commit is contained in:
Mathias Wagner 2023-11-24 10:40:03 +01:00
parent f607af3498
commit 961517684d
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

View File

@ -11,6 +11,10 @@ export const Input = ({setState, capital, setCost, setWin, settings}) => {
const [error, setError] = useState(""); const [error, setError] = useState("");
const validate = (e) => {
return !(e.target.value.toString().includes(",") || e.target.value.toString().includes("."));
}
const submit = () => { const submit = () => {
if ((settings.costPerCake * amount + settings.costPerRound) > capital) { if ((settings.costPerCake * amount + settings.costPerRound) > capital) {
setError("Zu wenig Kapital"); setError("Zu wenig Kapital");
@ -51,12 +55,12 @@ export const Input = ({setState, capital, setCost, setWin, settings}) => {
<div className="input-area"> <div className="input-area">
<h3>Preis</h3> <h3>Preis</h3>
<input type="number" placeholder="Preis" className="glassy" min={0} max={settings.maxPrice} <input type="number" placeholder="Preis" className="glassy" min={0} max={settings.maxPrice}
onChange={(e) => e.target.value <= settings.maxPrice && setPrice(e.target.value)} value={price}/> onChange={(e) => e.target.value <= settings.maxPrice && validate(e) && setPrice(e.target.value)} value={price}/>
</div> </div>
<div className="input-area"> <div className="input-area">
<h3>Absatzmenge</h3> <h3>Absatzmenge</h3>
<input type="number" placeholder="Menge" className="glassy" min={1} max={settings.maxProduction} <input type="number" placeholder="Menge" className="glassy" min={1} max={settings.maxProduction}
onChange={(e) => e.target.value <= settings.maxProduction && setAmount(e.target.value)} value={amount}/> onChange={(e) => e.target.value <= settings.maxProduction && validate(e) && setAmount(e.target.value)} value={amount}/>
</div> </div>
<Button text="Abgeben" onClick={submit} icon={faPaperPlane} /> <Button text="Abgeben" onClick={submit} icon={faPaperPlane} />
</> </>