diff --git a/src/Routes.js b/src/Routes.js
index 756529d3..40b28786 100644
--- a/src/Routes.js
+++ b/src/Routes.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { compose } from 'redux';
import { connect } from 'react-redux';
import { Switch, Route, withRouter } from 'react-router-dom';
diff --git a/src/app.js b/src/app.js
index 8cad66ce..bf56f000 100644
--- a/src/app.js
+++ b/src/app.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import ReactDOMServer from 'react-dom/server';
import Helmet from 'react-helmet';
import { BrowserRouter, StaticRouter } from 'react-router-dom';
diff --git a/src/components/AddImages/AddImages.js b/src/components/AddImages/AddImages.js
index cab7105e..ac3c298b 100644
--- a/src/components/AddImages/AddImages.js
+++ b/src/components/AddImages/AddImages.js
@@ -7,7 +7,8 @@
*
*
*/
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { SortableContainer } from 'react-sortable-hoc';
import classNames from 'classnames';
import { ImageFromFile, ResponsiveImage, IconSpinner } from '../../components';
diff --git a/src/components/AddImages/RemoveImageButton.js b/src/components/AddImages/RemoveImageButton.js
index 80891789..970320cf 100644
--- a/src/components/AddImages/RemoveImageButton.js
+++ b/src/components/AddImages/RemoveImageButton.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './AddImages.css';
diff --git a/src/components/Avatar/Avatar.js b/src/components/Avatar/Avatar.js
index 6f680296..2aec0918 100644
--- a/src/components/Avatar/Avatar.js
+++ b/src/components/Avatar/Avatar.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { injectIntl, intlShape } from 'react-intl';
import classNames from 'classnames';
import * as propTypes from '../../util/propTypes';
diff --git a/src/components/BirthdayInputField/BirthdayInputField.js b/src/components/BirthdayInputField/BirthdayInputField.js
index 9267cc04..110bdcd7 100644
--- a/src/components/BirthdayInputField/BirthdayInputField.js
+++ b/src/components/BirthdayInputField/BirthdayInputField.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Field } from 'redux-form';
import { injectIntl, intlShape } from 'react-intl';
import classNames from 'classnames';
diff --git a/src/components/BookingBreakdown/BookingBreakdown.js b/src/components/BookingBreakdown/BookingBreakdown.js
index 24d39fbc..5afaa1a7 100644
--- a/src/components/BookingBreakdown/BookingBreakdown.js
+++ b/src/components/BookingBreakdown/BookingBreakdown.js
@@ -2,7 +2,8 @@
* This component will show the booking info and calculated total price.
* I.e. dates and other details related to payment decision in receipt format.
*/
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage, FormattedHTMLMessage, intlShape, injectIntl } from 'react-intl';
import classNames from 'classnames';
import { types } from '../../util/sdkLoader';
diff --git a/src/components/Button/Button.js b/src/components/Button/Button.js
index 7389ad25..adda2afa 100644
--- a/src/components/Button/Button.js
+++ b/src/components/Button/Button.js
@@ -1,4 +1,5 @@
-import React, { PropTypes, Component } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import { IconSpinner, IconCheckmark } from '../../components';
diff --git a/src/components/CurrencyInputField/CurrencyInputField.example.js b/src/components/CurrencyInputField/CurrencyInputField.example.js
index 87d5daf8..440ca64d 100644
--- a/src/components/CurrencyInputField/CurrencyInputField.example.js
+++ b/src/components/CurrencyInputField/CurrencyInputField.example.js
@@ -1,5 +1,6 @@
/* eslint-disable no-console */
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { IntlProvider, addLocaleData } from 'react-intl';
import { reduxForm, propTypes as formPropTypes } from 'redux-form';
import en from 'react-intl/locale-data/en';
diff --git a/src/components/CurrencyInputField/CurrencyInputField.js b/src/components/CurrencyInputField/CurrencyInputField.js
index b6d590a3..a3744606 100644
--- a/src/components/CurrencyInputField/CurrencyInputField.js
+++ b/src/components/CurrencyInputField/CurrencyInputField.js
@@ -3,7 +3,8 @@
* onFocus: renders given value in unformatted manner: "9999,99"
* onBlur: formats the given input: "9 999,99 €"
*/
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { intlShape, injectIntl } from 'react-intl';
import { Field } from 'redux-form';
import classNames from 'classnames';
diff --git a/src/components/DateInputField/DateInputField.js b/src/components/DateInputField/DateInputField.js
index 1ff145b7..36049306 100644
--- a/src/components/DateInputField/DateInputField.js
+++ b/src/components/DateInputField/DateInputField.js
@@ -3,7 +3,8 @@
* Styles for SingleDatePicker can be found from 'public/reactDates.css'.
* CSS modules can't handle global styles so they are currently added separately
*/
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Field } from 'redux-form';
import { intlShape, injectIntl } from 'react-intl';
import { SingleDatePicker, isInclusivelyAfterDay } from 'react-dates';
diff --git a/src/components/DateRangeInputField/DateRangeInput.js b/src/components/DateRangeInputField/DateRangeInput.js
index bb184a3d..17306128 100644
--- a/src/components/DateRangeInputField/DateRangeInput.js
+++ b/src/components/DateRangeInputField/DateRangeInput.js
@@ -4,7 +4,8 @@
*
* N.B. *isOutsideRange* in defaultProps is defining what dates are available to booking.
*/
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { intlShape, injectIntl } from 'react-intl';
import { DateRangePicker, isInclusivelyAfterDay, isInclusivelyBeforeDay } from 'react-dates';
import classNames from 'classnames';
diff --git a/src/components/DateRangeInputField/DateRangeInputField.js b/src/components/DateRangeInputField/DateRangeInputField.js
index 862787f0..0d0c6c57 100644
--- a/src/components/DateRangeInputField/DateRangeInputField.js
+++ b/src/components/DateRangeInputField/DateRangeInputField.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Field } from 'redux-form';
import classNames from 'classnames';
import { START_DATE, END_DATE } from '../../util/dates';
diff --git a/src/components/DateRangeInputField/NextMonthIcon.js b/src/components/DateRangeInputField/NextMonthIcon.js
index 849c9de8..87df1076 100644
--- a/src/components/DateRangeInputField/NextMonthIcon.js
+++ b/src/components/DateRangeInputField/NextMonthIcon.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './DateRangeInput.css';
diff --git a/src/components/DateRangeInputField/PreviousMonthIcon.js b/src/components/DateRangeInputField/PreviousMonthIcon.js
index 24ebbe89..f3d79399 100644
--- a/src/components/DateRangeInputField/PreviousMonthIcon.js
+++ b/src/components/DateRangeInputField/PreviousMonthIcon.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './DateRangeInput.css';
diff --git a/src/components/Discussion/Discussion.js b/src/components/Discussion/Discussion.js
index f03b6eec..a50aa6d1 100644
--- a/src/components/Discussion/Discussion.js
+++ b/src/components/Discussion/Discussion.js
@@ -1,5 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
-
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Button } from '../../components';
import css from './Discussion.css';
diff --git a/src/components/EditListingDescriptionPanel/EditListingDescriptionPanel.js b/src/components/EditListingDescriptionPanel/EditListingDescriptionPanel.js
index 23b64786..2e6d89cf 100644
--- a/src/components/EditListingDescriptionPanel/EditListingDescriptionPanel.js
+++ b/src/components/EditListingDescriptionPanel/EditListingDescriptionPanel.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import { FormattedMessage } from 'react-intl';
import { ensureListing } from '../../util/data';
diff --git a/src/components/EditListingLocationPanel/EditListingLocationPanel.js b/src/components/EditListingLocationPanel/EditListingLocationPanel.js
index a8b0f1cf..038b7703 100644
--- a/src/components/EditListingLocationPanel/EditListingLocationPanel.js
+++ b/src/components/EditListingLocationPanel/EditListingLocationPanel.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import { FormattedMessage } from 'react-intl';
import { ensureListing, parseAddress } from '../../util/data';
diff --git a/src/components/EditListingPhotosPanel/EditListingPhotosPanel.js b/src/components/EditListingPhotosPanel/EditListingPhotosPanel.js
index b0422d89..5efb3797 100644
--- a/src/components/EditListingPhotosPanel/EditListingPhotosPanel.js
+++ b/src/components/EditListingPhotosPanel/EditListingPhotosPanel.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import { omitBy, isUndefined } from 'lodash';
diff --git a/src/components/EditListingPricingPanel/EditListingPricingPanel.js b/src/components/EditListingPricingPanel/EditListingPricingPanel.js
index 71a35826..015b3ff3 100644
--- a/src/components/EditListingPricingPanel/EditListingPricingPanel.js
+++ b/src/components/EditListingPricingPanel/EditListingPricingPanel.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import { FormattedMessage } from 'react-intl';
import { createSlug } from '../../util/urlHelpers';
diff --git a/src/components/EditListingWizard/EditListingWizard.js b/src/components/EditListingWizard/EditListingWizard.js
index e5188d6b..1a024527 100644
--- a/src/components/EditListingWizard/EditListingWizard.js
+++ b/src/components/EditListingWizard/EditListingWizard.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { injectIntl, intlShape } from 'react-intl';
import classNames from 'classnames';
import routeConfiguration from '../../routeConfiguration';
diff --git a/src/components/ExternalLink/ExternalLink.js b/src/components/ExternalLink/ExternalLink.js
index 74cea4c8..92ee87b7 100644
--- a/src/components/ExternalLink/ExternalLink.js
+++ b/src/components/ExternalLink/ExternalLink.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
// External link that opens in a new tab/window, ensuring that the
// opened page doesn't have access to the current page.
diff --git a/src/components/Form/Form.js b/src/components/Form/Form.js
index 3165d5d4..961e205c 100644
--- a/src/components/Form/Form.js
+++ b/src/components/Form/Form.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
const Form = props => {
const { children, ...restProps } = props;
diff --git a/src/components/HeroSection/HeroSection.js b/src/components/HeroSection/HeroSection.js
index fdfac7b1..3a8d7e02 100644
--- a/src/components/HeroSection/HeroSection.js
+++ b/src/components/HeroSection/HeroSection.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import { stringify } from '../../util/urlHelpers';
diff --git a/src/components/IconBannedUser/IconBannedUser.js b/src/components/IconBannedUser/IconBannedUser.js
index 855d348a..dc932c6d 100644
--- a/src/components/IconBannedUser/IconBannedUser.js
+++ b/src/components/IconBannedUser/IconBannedUser.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import css from './IconBannedUser.css';
diff --git a/src/components/IconCheckmark/IconCheckmark.js b/src/components/IconCheckmark/IconCheckmark.js
index 726db408..377d6e78 100644
--- a/src/components/IconCheckmark/IconCheckmark.js
+++ b/src/components/IconCheckmark/IconCheckmark.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './IconCheckMark.css';
diff --git a/src/components/IconClose/IconClose.js b/src/components/IconClose/IconClose.js
index b749c05d..b8c9858a 100644
--- a/src/components/IconClose/IconClose.js
+++ b/src/components/IconClose/IconClose.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './IconClose.css';
diff --git a/src/components/IconEmailAttention/IconEmailAttention.js b/src/components/IconEmailAttention/IconEmailAttention.js
index d50df81d..163c69a6 100644
--- a/src/components/IconEmailAttention/IconEmailAttention.js
+++ b/src/components/IconEmailAttention/IconEmailAttention.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './IconEmailAttention.css';
diff --git a/src/components/IconEmailSent/IconEmailSent.js b/src/components/IconEmailSent/IconEmailSent.js
index 046a8260..3e022398 100644
--- a/src/components/IconEmailSent/IconEmailSent.js
+++ b/src/components/IconEmailSent/IconEmailSent.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './IconEmailSent.css';
diff --git a/src/components/IconEmailSuccess/IconEmailSuccess.js b/src/components/IconEmailSuccess/IconEmailSuccess.js
index 8879b2dd..724ae1e6 100644
--- a/src/components/IconEmailSuccess/IconEmailSuccess.js
+++ b/src/components/IconEmailSuccess/IconEmailSuccess.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './IconEmailSuccess.css';
diff --git a/src/components/IconKeys/IconKeys.js b/src/components/IconKeys/IconKeys.js
index e39d718a..0339b3e7 100644
--- a/src/components/IconKeys/IconKeys.js
+++ b/src/components/IconKeys/IconKeys.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
const IconKeys = props => {
const { className } = props;
diff --git a/src/components/IconKeysSuccess/IconKeysSuccess.js b/src/components/IconKeysSuccess/IconKeysSuccess.js
index f29749f1..dc6f086e 100644
--- a/src/components/IconKeysSuccess/IconKeysSuccess.js
+++ b/src/components/IconKeysSuccess/IconKeysSuccess.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
const IconKeysSuccess = props => {
const { className } = props;
diff --git a/src/components/IconSearch/IconSearch.js b/src/components/IconSearch/IconSearch.js
index 7e12da0a..768d228c 100644
--- a/src/components/IconSearch/IconSearch.js
+++ b/src/components/IconSearch/IconSearch.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './IconSearch.css';
diff --git a/src/components/IconSpinner/IconSpinner.js b/src/components/IconSpinner/IconSpinner.js
index 3d0edd85..3e633a45 100644
--- a/src/components/IconSpinner/IconSpinner.js
+++ b/src/components/IconSpinner/IconSpinner.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './IconSpinner.css';
diff --git a/src/components/ImageCarousel/ImageCarousel.js b/src/components/ImageCarousel/ImageCarousel.js
index 6f511dca..26f74ca3 100644
--- a/src/components/ImageCarousel/ImageCarousel.js
+++ b/src/components/ImageCarousel/ImageCarousel.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { injectIntl, intlShape } from 'react-intl';
import classNames from 'classnames';
import { ResponsiveImage } from '../../components';
diff --git a/src/components/ImageFromFile/ImageFromFile.js b/src/components/ImageFromFile/ImageFromFile.js
index f1e9ba8a..a1fbed48 100644
--- a/src/components/ImageFromFile/ImageFromFile.js
+++ b/src/components/ImageFromFile/ImageFromFile.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import { Promised } from '../../components';
diff --git a/src/components/LayoutSideNavigation/ContentWrapper.js b/src/components/LayoutSideNavigation/ContentWrapper.js
index b2803f8e..e7f4bada 100644
--- a/src/components/LayoutSideNavigation/ContentWrapper.js
+++ b/src/components/LayoutSideNavigation/ContentWrapper.js
@@ -3,7 +3,8 @@
* and main content. Side navigation (first child) will be shown aside on Desktop and
* as sub bar under Topbar on mobile screens.
*/
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './LayoutSideNavigation.css';
diff --git a/src/components/LayoutSideNavigation/LayoutSideNavigation.js b/src/components/LayoutSideNavigation/LayoutSideNavigation.js
index 142e13b5..011d1e41 100644
--- a/src/components/LayoutSideNavigation/LayoutSideNavigation.js
+++ b/src/components/LayoutSideNavigation/LayoutSideNavigation.js
@@ -3,7 +3,8 @@
* SideNavWrapper will be shown aside on Desktop layout and
* as a sub bar under Topbar on mobile screens.
*/
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import TopbarWrapper from './TopbarWrapper';
import SideNavWrapper from './SideNavWrapper';
diff --git a/src/components/LayoutSideNavigation/SideNavWrapper.js b/src/components/LayoutSideNavigation/SideNavWrapper.js
index ab07cf93..401fb9f5 100644
--- a/src/components/LayoutSideNavigation/SideNavWrapper.js
+++ b/src/components/LayoutSideNavigation/SideNavWrapper.js
@@ -3,7 +3,8 @@
* and main content. Side navigation (first child) will be shown aside on Desktop and
* as sub bar under Topbar on mobile screens.
*/
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './LayoutSideNavigation.css';
diff --git a/src/components/LayoutSideNavigation/TopbarWrapper.js b/src/components/LayoutSideNavigation/TopbarWrapper.js
index 5da8a605..aecc98a6 100644
--- a/src/components/LayoutSideNavigation/TopbarWrapper.js
+++ b/src/components/LayoutSideNavigation/TopbarWrapper.js
@@ -3,7 +3,8 @@
* and main content. Side navigation (first child) will be shown aside on Desktop and
* as sub bar under Topbar on mobile screens.
*/
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './LayoutSideNavigation.css';
diff --git a/src/components/ListingCard/ListingCard.js b/src/components/ListingCard/ListingCard.js
index 40d8a281..81da2b86 100644
--- a/src/components/ListingCard/ListingCard.js
+++ b/src/components/ListingCard/ListingCard.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { FormattedMessage, intlShape, injectIntl } from 'react-intl';
import classNames from 'classnames';
import { NamedLink, ResponsiveImage } from '../../components';
diff --git a/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js b/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js
index 412e010e..733547e4 100644
--- a/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js
+++ b/src/components/LocationAutocompleteInput/LocationAutocompleteInput.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import { Field } from 'redux-form';
import { debounce } from 'lodash';
import classNames from 'classnames';
diff --git a/src/components/ManageListingCard/ManageListingCard.js b/src/components/ManageListingCard/ManageListingCard.js
index e862e6e1..bc9d38fa 100644
--- a/src/components/ManageListingCard/ManageListingCard.js
+++ b/src/components/ManageListingCard/ManageListingCard.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { compose } from 'redux';
import { withRouter } from 'react-router-dom';
import { FormattedMessage, intlShape, injectIntl } from 'react-intl';
diff --git a/src/components/ManageListingCard/MenuIcon.js b/src/components/ManageListingCard/MenuIcon.js
index bd03c15e..823aa20f 100644
--- a/src/components/ManageListingCard/MenuIcon.js
+++ b/src/components/ManageListingCard/MenuIcon.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import css from './ManageListingCard.css';
diff --git a/src/components/Map/Map.js b/src/components/Map/Map.js
index 9dc3ceb9..2645a25a 100644
--- a/src/components/Map/Map.js
+++ b/src/components/Map/Map.js
@@ -1,4 +1,5 @@
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import * as propTypes from '../../util/propTypes';
diff --git a/src/components/MapPanel/MapPanel.js b/src/components/MapPanel/MapPanel.js
index dca7a482..d0e00b64 100644
--- a/src/components/MapPanel/MapPanel.js
+++ b/src/components/MapPanel/MapPanel.js
@@ -1,4 +1,5 @@
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import { NamedLink } from '../../components';
import css from './MapPanel.css';
diff --git a/src/components/Menu/Menu.js b/src/components/Menu/Menu.js
index d9ac71ac..72a3f553 100644
--- a/src/components/Menu/Menu.js
+++ b/src/components/Menu/Menu.js
@@ -16,7 +16,8 @@
*
*/
-import React, { Component, PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import { MenuContent, MenuLabel } from '../../components';
diff --git a/src/components/MenuContent/MenuContent.js b/src/components/MenuContent/MenuContent.js
index 89e6d917..62d37bc0 100644
--- a/src/components/MenuContent/MenuContent.js
+++ b/src/components/MenuContent/MenuContent.js
@@ -2,7 +2,8 @@
* MenuContent is a immediate child of Menu component sibling to MenuLabel.
* Clicking MenuLabel toggles visibility of MenuContent.
*/
-import React, { PropTypes } from 'react'; // eslint-disable-line react/no-deprecated
+import React from 'react';
+import PropTypes from 'prop-types';
import classNames from 'classnames';
import { MenuItem } from '../../components';
diff --git a/src/components/MenuItem/MenuItem.js b/src/components/MenuItem/MenuItem.js
index bf109d45..5fdd2e3c 100644
--- a/src/components/MenuItem/MenuItem.js
+++ b/src/components/MenuItem/MenuItem.js
@@ -6,7 +6,8 @@
* Example:
*