Skip to content

Commit ae8544f

Browse files
committed
Moved parseApplyURL to OfferUtils.js.
Used startWith to verify 'mailto:' prefix.
1 parent b112fb7 commit ae8544f

File tree

3 files changed

+12
-21
lines changed

3 files changed

+12
-21
lines changed

src/components/Offers/Edit/EditOfferForm.js

+2-11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, { useCallback, useContext, useEffect, useState } from "react";
2-
import { OfferConstants, parseRequestErrors } from "../Form/OfferUtils";
2+
import { OfferConstants, parseApplyURL, parseRequestErrors } from "../Form/OfferUtils";
33
import OfferForm from "../Form/form-components/OfferForm";
44
import { editOffer } from "../../../services/offerService";
55
import { Redirect, useLocation, useParams } from "react-router-dom";
@@ -8,7 +8,6 @@ import useOfferForm from "../../../hooks/useOfferForm";
88
import { INITIAL_JOB_DURATION } from "../../../reducers/searchOffersReducer";
99
import useSession from "../../../hooks/useSession";
1010
import EditOfferSchema from "./EditOfferSchema";
11-
import { MailRegex } from "../../../utils/offer/OfferUtils";
1211

1312
export const EditOfferControllerContext = React.createContext();
1413

@@ -43,18 +42,10 @@ const parseOfferForm = ({
4342
vacancies: vacancies || "",
4443
description,
4544
descriptionText: parseDescription(description),
46-
applyURL: /^mailto:/.test(applyURL) ? applyURL.substring(7) : applyURL,
45+
applyURL: applyURL.startsWith("mailto:") ? applyURL.substring(7) : applyURL,
4746
...offer,
4847
});
4948

50-
const parseApplyURL = (applyURL) => {
51-
if (!applyURL)
52-
return null;
53-
if (MailRegex.test(applyURL) && /^(?!mailto:)/.test(applyURL))
54-
return `mailto:${applyURL}`;
55-
return applyURL;
56-
};
57-
5849
export const EditOfferController = () => {
5950
const { id } = useParams();
6051
const { offer, error: errorOffer, loading: loadingOffer } = useOffer(id);

src/components/Offers/Form/OfferUtils.js

+9
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { generalHumanError, generalParseRequestErrors, HumanValidationReasons, validationRulesGenerator } from "../../../utils";
2+
import { MailRegex } from "../../../utils/offer/OfferUtils";
23
import { DAY_IN_MS, MONTH_IN_MS, OFFER_MAX_LIFETIME_MONTHS } from "../../../utils/TimeUtils";
34
import { MAX_FIELDS, MIN_FIELDS } from "../../utils/offers/FieldOptions";
45
import { MAX_TECHNOLOGIES, MIN_TECHNOLOGIES } from "../../utils/offers/TechOptions";
@@ -59,3 +60,11 @@ const HumanReadableErrors = Object.freeze({
5960
export const getHumanError = (error) => generalHumanError(error, HumanReadableErrors);
6061

6162
export const parseRequestErrors = (error) => generalParseRequestErrors(error, getHumanError);
63+
64+
export const parseApplyURL = (applyURL) => {
65+
if (!applyURL)
66+
return null;
67+
if (MailRegex.test(applyURL) && !applyURL.startsWith("mailto:"))
68+
return `mailto:${applyURL}`;
69+
return applyURL;
70+
};

src/components/Offers/New/CreateOfferForm.js

+1-10
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,10 @@
11

22
import React, { useCallback } from "react";
3-
import { parseRequestErrors } from "../Form/OfferUtils";
3+
import { parseApplyURL, parseRequestErrors } from "../Form/OfferUtils";
44
import { newOffer } from "../../../services/offerService";
55
import useOfferForm from "../../../hooks/useOfferForm";
66
import OfferForm from "../Form/form-components/OfferForm";
77
import CreateOfferSchema from "./CreateOfferSchema";
8-
import { MailRegex } from "../../../utils/offer/OfferUtils";
9-
10-
const parseApplyURL = (applyURL) => {
11-
if (!applyURL)
12-
return null;
13-
if (MailRegex.test(applyURL) && /^(?!mailto:)/.test(applyURL))
14-
return `mailto:${applyURL}`;
15-
return applyURL;
16-
};
178

189
export const CreateOfferControllerContext = React.createContext();
1910

0 commit comments

Comments
 (0)