54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
import { fromJS } from "immutable"
|
|
import { validateUrl } from "../helpers/validation-helpers"
|
|
|
|
export const contactForm = (updateForm, path) =>
|
|
fromJS({
|
|
value: {
|
|
name: {
|
|
name: "Name",
|
|
value: "",
|
|
updateForm: newForm => updateForm(newForm, path.concat(["value", "name"]))
|
|
},
|
|
url: {
|
|
name: "URL",
|
|
value: "",
|
|
updateForm: newForm => updateForm(newForm, path.concat(["value", "url"])),
|
|
isValid: value => validateUrl(value),
|
|
validationMessage: "Please enter a valid URL."
|
|
},
|
|
email: {
|
|
name: "Email",
|
|
value: "",
|
|
updateForm: newForm => updateForm(newForm, path.concat(["value", "email"]))
|
|
}
|
|
},
|
|
name: "Contact",
|
|
description: "The contact information for the exposed API.",
|
|
updateForm: newForm => updateForm(newForm, path)
|
|
})
|
|
|
|
export const contactObject = (formData) => {
|
|
const name = formData.getIn(["value", "name", "value"])
|
|
const url = formData.getIn(["value", "url", "value"])
|
|
const email = formData.getIn(["value", "email", "value"])
|
|
const contact = {}
|
|
|
|
if (!name && !url && !email) {
|
|
return null
|
|
}
|
|
|
|
if (email) {
|
|
contact.email = email
|
|
}
|
|
|
|
if (name) {
|
|
contact.name = name
|
|
}
|
|
|
|
if (url) {
|
|
contact.url = url
|
|
}
|
|
|
|
return contact
|
|
}
|