diff --git a/src/containers/EditListingForm/EditListingForm.js b/src/containers/EditListingForm/EditListingForm.js
index d692d3a7..8ab3a4e7 100644
--- a/src/containers/EditListingForm/EditListingForm.js
+++ b/src/containers/EditListingForm/EditListingForm.js
@@ -3,43 +3,66 @@ import { Field, reduxForm, propTypes as formPropTypes } from 'redux-form';
import { intlShape, injectIntl } from 'react-intl';
import { isEqual } from 'lodash';
import { arrayMove } from 'react-sortable-hoc';
-import { noEmptyArray, maxLength, required } from '../../util/validators';
-import { AddImages } from '../../components';
+import {
+ noEmptyArray,
+ maxLength,
+ required,
+ autocompleteSearchRequired,
+ autocompletePlaceSelected,
+} from '../../util/validators';
+import { AddImages, LocationAutocompleteInput } from '../../components';
import css from './EditListingForm.css';
const ACCEPT_IMAGES = 'image/*';
const TITLE_MAX_LENGTH = 60;
-// Custom inputs with validator messages
-const RenderField = ({ input, label, type, meta }) => {
- const { touched, error } = meta;
- const component = type === 'textarea'
- ?
- : ;
- return (
-
-
+const { bool, func, object, shape, string } = PropTypes;
+
+/**
+ * Hoc to convert a component used within a Field to one that renders
+ * a label and possible errors.
+ *
+ * @param {Component|String} Comp component or a String that is used
+ * to create an input element
+ *
+ * @return {Component} new component that wraps the given one with a
+ * label and possible errors
+ */
+const enhancedField = Comp => {
+ const EnhancedField = props => {
+ const { input, label, meta } = props;
+ const { touched, error } = meta;
+ let component = null;
+ if (typeof Comp !== 'string') {
+ component = ;
+ } else if (Comp === 'textarea') {
+ component = ;
+ } else {
+ component = ;
+ }
+ return (