All files / pages/UCSBOrganization UCSBOrganizationEditPage.jsx

100% Statements 51/51
100% Branches 12/12
100% Functions 4/4
100% Lines 51/51

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 63 64 651x 1x 1x 1x 1x   1x 18x 18x   18x 18x 18x 18x 18x 18x 18x 18x     18x 18x 4x 4x 4x 4x 4x 4x 4x 4x 4x 18x 4x 4x   18x 18x 18x   18x 18x 1x 1x 1x   18x 3x 3x   14x 14x 14x 14x 14x 18x 18x 18x 18x           18x  
import BasicLayout from "main/layouts/BasicLayout/BasicLayout";
import { useParams, Navigate } from "react-router";
import UCSBOrganizationForm from "main/components/UCSBOrganization/UCSBOrganizationForm";
import { useBackend, useBackendMutation } from "main/utils/useBackend";
import { toast } from "react-toastify";
 
export default function UCSBOrganizationEditPage({ storybook = false }) {
  const { orgCode: orgCodeParam, id: legacyIdParam } = useParams();
  const orgCode = orgCodeParam ?? legacyIdParam;
 
  // GET the record by orgCode
  const { data: ucsbOrganization } = useBackend(
    [`/api/ucsborganizations?orgCode=${orgCode}`],
    {
      method: "GET",
      url: "/api/ucsborganizations",
      params: { orgCode },
    },
  );
 
  // PUT update
  const objectToAxiosPutParams = (form) => ({
    url: "/api/ucsborganizations",
    method: "PUT",
    params: { orgCode },
    data: {
      orgTranslationShort: form.orgTranslationShort,
      orgTranslation: form.orgTranslation,
      inactive: form.inactive,
    },
  });
  const onSuccess = (updated) => {
    toast(`UCSBOrganization Updated - orgCode: ${updated?.orgCode ?? orgCode}`);
  };
 
  const mutation = useBackendMutation(objectToAxiosPutParams, { onSuccess }, [
    `/api/ucsborganizations?orgCode=${orgCode}`,
  ]);
 
  const onSubmit = (data) => mutation.mutate(data);
  if (!orgCode) {
    toast("Missing route param: orgCode (or id). Check your route path.");
    return <Navigate to="/ucsborganization" />;
  }
 
  if (mutation.isSuccess && !storybook) {
    return <Navigate to="/ucsborganization" />;
  }
 
  return (
    <BasicLayout>
      <div className="pt-2">
        <h1>Edit UCSBOrganization</h1>
        {ucsbOrganization && (
          <UCSBOrganizationForm
            initialContents={ucsbOrganization}
            submitAction={onSubmit}
            buttonLabel="Update"
          />
        )}
      </div>
    </BasicLayout>
  );
}