All files / react-app/src/features/package/package-actions index.tsx

100% Statements 4/4
16.66% Branches 1/6
100% Functions 1/1
100% Lines 4/4

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 65 66 67                            3x 2x   2x           1x                                                                                      
import { Link, useLocation } from "react-router";
import { opensearch } from "shared-types";
 
import { useGetPackageActions } from "@/api";
import { LoadingSpinner } from "@/components";
import { DETAILS_ORIGIN, mapActionLabel, ORIGIN, WAIVER_SUBMISSION_ORIGIN } from "@/utils";
 
import { DetailCardWrapper } from "..";
 
type PackageActionsCardProps = {
  id: string;
  submission: opensearch.main.Document;
};
 
export const PackageActionsCard = ({ submission, id }: PackageActionsCardProps) => {
  const location = useLocation();
 
  const { data, isLoading } = useGetPackageActions(id, {
    retry: false,
  });
 
  if (isLoading) return <LoadingSpinner />;
 
  Eif (!data?.actions?.length) {
    return (
      <DetailCardWrapper title={"Package Actions"}>
        <div className="my-3">
          <em className="text-gray-400 my-3">
            No actions are currently available for this submission.
          </em>
        </div>
      </DetailCardWrapper>
    );
  }
 
  return (
    <DetailCardWrapper title={"Package Actions"}>
      <div className="my-3 sm:text-nowrap sm:min-w-min">
        <ul className="my-3">
          {data.actions.map((type, idx) => (
            <li className="py-2">
              <Link
                key={`${idx}-${type}`}
                state={{
                  from: `${location.pathname}${location.search}`,
                }}
                to={{
                  pathname: `/actions/${type}/${submission.authority}/${id}`,
                  search: new URLSearchParams({
                    [ORIGIN]:
                      type === "amend-waiver" || type === "temporary-extension"
                        ? WAIVER_SUBMISSION_ORIGIN
                        : DETAILS_ORIGIN,
                  }).toString(),
                }}
                className="text-sky-700 font-semibold text-lg hover:underline hover:decoration-inherit"
              >
                {mapActionLabel(type)}
              </Link>
            </li>
          ))}
        </ul>
      </div>
    </DetailCardWrapper>
  );
};