All files / react-app/src/features/forms/waiver/app-k index.tsx

80% Statements 4/5
66.66% Branches 4/6
75% Functions 3/4
80% Lines 4/5

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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138                                      72x 1x                                                                                                                                                 17x                                 1x                                                      
import {
  ActionForm,
  DatePicker,
  FormControl,
  FormDescription,
  FormField,
  FormItem,
  FormLabel,
  FormMessage,
  Input,
  RequiredIndicator,
  Textarea,
} from "@/components";
import { formSchemas } from "@/formSchemas";
import { FAQ_TAB } from "@/router";
import { Link } from "react-router";
import { Authority } from "shared-types";
import { getFAQLinkForAttachments } from "../../faqLinks";
 
export const AppKAmendmentForm = () => (
  <ActionForm
    title="1915(c) Appendix K Amendment Details"
    breadcrumbText="Request a 1915(c) Appendix K Amendment"
    schema={formSchemas["app-k"]}
    fields={(form) => (
      <>
        <div>
          <p className="mt-4 font-bold">
            If your Appendix K submission is for more than one waiver number, please enter one of
            the applicable waiver numbers. You do not need to create multiple submissions.
          </p>
        </div>
        <FormField
          control={form.control}
          name="title"
          render={({ field }) => (
            <FormItem className="w-[280px]">
              <FormLabel className="font-bold" htmlFor="amendment-title">
                Amendment Title <RequiredIndicator />
              </FormLabel>
              <Textarea
                {...field}
                className="h-[76px] w-[355px]"
                id="amendment-title"
                maxLength={125}
              />
              <FormDescription>
                <span
                  tabIndex={0}
                  id="character-count"
                  aria-label="character-count"
                  aria-live="polite"
                >
                  {`${125 - (field?.value?.length || 0)} characters remaining`}
                </span>
              </FormDescription>
            </FormItem>
          )}
        />
        <div className="flex flex-col">
          <FormLabel className="font-bold" htmlFor="1975c">
            Waiver Authority
          </FormLabel>
          <span className="text-lg font-thin" id="1975c">
            1915(c)
          </span>
        </div>
        <FormField
          control={form.control}
          name="id"
          render={({ field }) => (
            <FormItem>
              <div className="flex gap-4">
                <FormLabel className="font-bold" data-testid="amendmentnumber-label">
                  Waiver Amendment Number <RequiredIndicator />
                </FormLabel>
                <Link
                  to={"/faq/waiver-c-id"}
                  target={FAQ_TAB}
                  rel="noopener noreferrer"
                  className="text-blue-900 underline"
                >
                  What is my Waiver Amendment Number?
                </Link>
              </div>
              <p className="text-neutral-500" id="waiver-number-format">
                The Waiver Number must be in the the format SS-####.R##.## or SS-#####.R##.##. For
                amendments, the last two digits start with '01' and ascends.
              </p>
              <FormControl className="max-w-sm">
                <Input
                  ref={field.ref}
                  value={field.value}
                  onChange={(e) => field.onChange(e.currentTarget.value.toUpperCase())}
                />
              </FormControl>
              <FormMessage />
            </FormItem>
          )}
        />
        <FormField
          control={form.control}
          name="proposedEffectiveDate"
          render={({ field }) => (
            <FormItem className="max-w-sm">
              <FormLabel className="font-bold block" data-testid="proposedEffectiveDate-label">
                Proposed Effective Date of 1915(c) Appendix K Amendment <RequiredIndicator />
              </FormLabel>
              <FormControl>
                <DatePicker
                  onChange={(date) => field.onChange(date.getTime())}
                  date={field.value ? new Date(field.value) : undefined}
                  dataTestId="proposedEffectiveDate"
                />
              </FormControl>
              <FormMessage />
            </FormItem>
          )}
        />
      </>
    )}
    defaultValues={{ id: "", title: "" }}
    documentPollerArgs={{
      property: "id",
      documentChecker: (checks) =>
        checks.authorityIs([Authority["1915c"]]) && checks.actionIs("Amend"),
    }}
    attachments={{
      faqLink: getFAQLinkForAttachments("app-k"),
    }}
    bannerPostSubmission={{
      header: "Package submitted",
      body: "The 1915(c) Appendix K Amendment request has been submitted.",
      variant: "success",
    }}
  />
);