Passed
Push — dev ( 667a77...5d5c8f )
by Yonathan
04:41 queued 10s
created

resources/assets/js/components/JobBuilder/WorkEnv/JobWorkEnvModal.tsx   A

Complexity

Total Complexity 1
Complexity/F 0

Size

Lines of Code 152
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 121
mnd 1
bc 1
fnc 0
dl 0
loc 152
rs 10
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
1
import React from "react";
2
import { FormattedMessage } from "react-intl";
3
import { JobWorkEnvValues } from "./JobWorkEnv";
4
import Modal from "../../Modal";
5
import WorkEnvFeatures from "./WorkEnvFeatures";
6
7
interface JobWorkEnvModalProps {
8
  modalConfirm: (values) => void;
9
  modalCancel: () => void;
10
  isVisible: boolean;
11
  parentElement: Element | null;
12
  values: JobWorkEnvValues;
13
  cultureSummary: string;
14
  jobIsComplete: boolean;
15
  handleSkipToReview: () => void;
16
}
17
18
const JobWorkEnvModal: React.FunctionComponent<JobWorkEnvModalProps> = ({
19
  modalConfirm,
20
  modalCancel,
21
  isVisible,
22
  parentElement,
23
  values,
24
  cultureSummary,
25
  jobIsComplete,
26
  handleSkipToReview,
27
}): React.ReactElement => {
28
  return (
29
    <>
30
      <Modal
31
        id="work-environment-preview"
32
        parentElement={parentElement}
33
        visible={isVisible}
34
        onModalConfirm={modalConfirm}
35
        onModalCancel={modalCancel}
36
        onModalMiddle={handleSkipToReview}
37
      >
38
        <Modal.Header>
39
          <div
40
            data-c-background="c1(100)"
41
            data-c-border="bottom(thin, solid, black)"
42
            data-c-padding="normal"
43
          >
44
            <h5
45
              data-c-colour="white"
46
              data-c-font-size="h4"
47
              id="work-environment-preview-title"
48
            >
49
              <FormattedMessage
50
                id="jobBuilder.workEnv.greatStart"
51
                defaultMessage="You're off to a great start!"
52
                description="Kicker message at the start of the modal."
53
              />
54
            </h5>
55
          </div>
56
        </Modal.Header>
57
        <Modal.Body>
58
          <div
59
            data-c-border="bottom(thin, solid, black)"
60
            data-c-padding="normal"
61
            id="work-environment-preview-body"
62
          >
63
            <p>
64
              <FormattedMessage
65
                id="jobBuilder.workEnv.openingSentence"
66
                defaultMessage="Here's a preview of the Job Information you just entered. Feel free to go back and edit things or move to the next step if you're happy with it."
67
                description="Opening sentence for modal."
68
              />
69
            </p>
70
          </div>
71
          <div data-c-background="grey(20)" data-c-padding="normal">
72
            <div
73
              className="manager-job-card"
74
              data-c-background="white(100)"
75
              data-c-padding="normal"
76
              data-c-radius="rounded"
77
            >
78
              <h4
79
                data-c-border="bottom(thin, solid, black)"
80
                data-c-font-size="h4"
81
                data-c-font-weight="600"
82
                data-c-margin="bottom(normal)"
83
                data-c-padding="bottom(normal)"
84
              >
85
                <FormattedMessage
86
                  id="jobBuilder.workEnvModal.title"
87
                  defaultMessage="Work Environment"
88
                  description="Header of job poster builder work environment step."
89
                />
90
              </h4>
91
              <WorkEnvFeatures
92
                teamSize={values.teamSize || 0}
93
                selectedEnvOptions={[
94
                  ...values.amenities,
95
                  ...values.physicalEnv,
96
                  ...values.technology,
97
                ]}
98
                envDescription={values.envDescription}
99
              />
100
              <h4
101
                data-c-border="bottom(thin, solid, black)"
102
                data-c-font-size="h4"
103
                data-c-font-weight="600"
104
                data-c-margin="top(double) bottom(normal)"
105
                data-c-padding="bottom(normal)"
106
              >
107
                <FormattedMessage
108
                  id="jobBuilder.workEnvModal.workCultureTitle"
109
                  defaultMessage="Work Culture"
110
                  description="The title displayed for the work culture section on modal."
111
                />
112
              </h4>
113
              <p>{cultureSummary}</p>
114
              {values.moreCultureSummary && (
115
                <p data-c-margin="top(normal)">{values.moreCultureSummary}</p>
116
              )}
117
            </div>
118
          </div>
119
        </Modal.Body>
120
        <Modal.Footer>
121
          <Modal.FooterCancelBtn>
122
            <FormattedMessage
123
              id="jobBuilder.workEnvModal.cancelLabel"
124
              defaultMessage="Go Back"
125
              description="The label displayed on modal cancel button."
126
            />
127
          </Modal.FooterCancelBtn>
128
          {jobIsComplete && (
129
            <Modal.FooterMiddleBtn>
130
              <FormattedMessage
131
                id="jobBuilder.workEnvModal.modalMiddleLabel"
132
                defaultMessage="Skip to Review"
133
                description="The text displayed on the 'Skip to Review' button of the Work Env modal."
134
              />
135
            </Modal.FooterMiddleBtn>
136
          )}
137
          <Modal.FooterConfirmBtn>
138
            <FormattedMessage
139
              id="jobBuilder.workEnvModal.confirmLabel"
140
              defaultMessage="Next Step"
141
              description="The label displayed on modal confirm button."
142
            />
143
          </Modal.FooterConfirmBtn>
144
        </Modal.Footer>
145
      </Modal>
146
      <div data-c-dialog-overlay={isVisible ? "active" : ""} />
147
    </>
148
  );
149
};
150
151
export default JobWorkEnvModal;
152