All files / components/Jobs UpdateCowHealthForm.jsx

100% Statements 40/40
100% Branches 4/4
100% Functions 3/3
100% Lines 40/40

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 631x 1x 1x 1x 1x   58x 58x   58x 58x 58x 58x     58x   58x   58x 58x   58x   58x 2x 2x 2x   58x 3x 3x 3x   58x 12x 12x 12x   58x 58x 58x 58x         58x 58x 58x 58x 58x     58x         58x   1x  
import { Button, Form } from "react-bootstrap";
import { useState } from "react";
import { useForm } from "react-hook-form";
import { useBackend } from "main/utils/useBackend";
import CommonsSelect from "main/components/Commons/CommonsSelect";
 
function UpdateCowHealthForm({ submitAction, testid = "UpdateCowHealthForm" }) {
  // Stryker restore all
 
  const { data: commonsAll } = useBackend(
    ["/api/commons/all"],
    { url: "/api/commons/all" },
    [],
  );
 
  const allCommonsProp = { id: 0, name: "All Commons" };
 
  const commons = [allCommonsProp, ...commonsAll];
 
  const [selectedCommons, setSelectedCommons] = useState(null);
  const [selectedCommonsName, setSelectedCommonsName] = useState(null);
 
  const { handleSubmit } = useForm();
 
  const handleCommonsSelection = (id, name) => {
    setSelectedCommons(id);
    setSelectedCommonsName(name);
  };
 
  const onSubmit = () => {
    const params = { selectedCommons, selectedCommonsName };
    submitAction(params);
  };
 
  if (selectedCommons === null) {
    setSelectedCommons(commons[0].id);
    setSelectedCommonsName(commons[0].name);
  }
 
  return (
    <Form onSubmit={handleSubmit(onSubmit)}>
      <Form.Group className="mb-3">
        <Form.Text htmlFor="description">
          Updated the cows' health in a single or all commons.
        </Form.Text>
      </Form.Group>
 
      <CommonsSelect
        commons={commons}
        selectedCommons={selectedCommons}
        handleCommonsSelection={handleCommonsSelection}
        testid={testid}
      />
 
      <Button type="submit" data-testid="UpdateCowHealthForm-Submit-Button">
        Update
      </Button>
    </Form>
  );
}
 
export default UpdateCowHealthForm;