diff --git a/.eslintrc.json b/.eslintrc.json index 4d156c64..b339c7df 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -21,5 +21,10 @@ "extends": ["eslint:recommended", "plugin:react/recommended"], "globals": { "Promise": false + }, + "settings": { + "react": { + "version": "detect" + } } } diff --git a/.nvmrc b/.nvmrc index 87ec8842..5bacb9a1 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18.18.2 +20.8.1 \ No newline at end of file diff --git a/package.json b/package.json index 49f553df..9465e15a 100644 --- a/package.json +++ b/package.json @@ -34,14 +34,14 @@ "css-loader": "^6.8.1", "enzyme": "^3.10.0", "eslint": "^4.12.1", - "eslint-plugin-react": "^6.9.0", + "eslint-plugin-react": "^7.33.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jsdom": "^22.1.0", "mini-css-extract-plugin": "^2.7.6", - "react-addons-test-utils": "^15.4.2", "react-hot-loader": "^3.1.1", - "react-test-renderer": "^15.4.2", + "react-test-renderer": "^16.14.0", + "react-with-direction": "^1.3.1", "sass": "^1.69.4", "sass-loader": "^13.3.2", "style-loader": "3.3.3", @@ -49,33 +49,30 @@ "webpack-cli": "^5.1.4" }, "dependencies": { + "@babel/runtime": "^7.0.0", "babel-eslint": "^10.1.0", "copy-to-clipboard": "^3.0.5", "date-fns": "^1.28.0", - "enzyme-adapter-react-15": "^1.4.1", - "es6-promise": "^4.0.5", + "enzyme-adapter-react-16": "^1.15.7", "filesize": "^3.5.4", - "history": "^4.5.1", "lodash": "^4.17.21", "moment": "^2.18.0", "panda-session": "^0.1.6", - "react": "15.7.0", - "react-addons-shallow-compare": "^15.4.2", - "react-dates": "^8.2.1", - "react-dom": "^15.4.2", + "prop-types": "^15.8.1", + "react": "16.14.0", + "react-dates": "^21.8.0", + "react-dom": "^16.14.0", "react-redux": "^5.0.2", "react-router": "^3.0.2", "react-router-dom": "^4.0.0", "react-router-redux": "^4.0.8", - "redux": "^3.6.0", + "redux": "^4.2.1", "redux-thunk": "^2.2.0", "scribe-editor": "3.3.0", "scribe-plugin-keyboard-shortcuts": "^0.1.1", "scribe-plugin-link-prompt-command": "^1.0.0", "scribe-plugin-sanitizer": "^0.1.10", "scribe-plugin-toolbar": "^1.0.0", - "url-search-params": "^0.7.0", - "uuid": "^3.0.1", - "whatwg-fetch": "^2.0.3" + "uuid": "^3.0.1" } } diff --git a/public/js/BaseApp.js b/public/js/BaseApp.js index 901ee6ef..88d16ba4 100644 --- a/public/js/BaseApp.js +++ b/public/js/BaseApp.js @@ -1,6 +1,9 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {Provider} from 'react-redux'; import {Route, IndexRedirect, Router} from 'react-router'; +import 'react-dates/initialize'; +import 'react-dates/lib/css/_datepicker.css'; import Page from './components/Page'; import {AtomCreateTypeSelect} from './components/AtomCreate/AtomCreateTypeSelect'; diff --git a/public/js/actions/AtomActions/getSuggestionsForLatestContent.js b/public/js/actions/AtomActions/getSuggestionsForLatestContent.js index f9097a97..952185be 100644 --- a/public/js/actions/AtomActions/getSuggestionsForLatestContent.js +++ b/public/js/actions/AtomActions/getSuggestionsForLatestContent.js @@ -4,7 +4,7 @@ import {fetchTargetsForTags} from '../../services/TargetingApi'; import AtomsApi from '../../services/AtomsApi'; import {atomPropType} from '../../constants/atomPropType.js'; import {logError} from '../../util/logger'; -import {PropTypes} from 'react'; +import {PropTypes} from 'prop-types'; function requestSuggestionsForLatestContent() { return { diff --git a/public/js/actions/ParliamentActions/getLatestCommonsDivisions.js b/public/js/actions/ParliamentActions/getLatestCommonsDivisions.js index af0e3873..64effa6d 100644 --- a/public/js/actions/ParliamentActions/getLatestCommonsDivisions.js +++ b/public/js/actions/ParliamentActions/getLatestCommonsDivisions.js @@ -1,7 +1,7 @@ import {latestCommonsDivisions} from '../../services/Parliament'; import AtomsApi from '../../services/AtomsApi'; import {logError} from '../../util/logger'; -import {PropTypes} from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../constants/atomPropType'; const MPPropType = PropTypes.shape({ diff --git a/public/js/components/AppMessage/AppMessage.js b/public/js/components/AppMessage/AppMessage.js index 8943e7c9..19015f2e 100644 --- a/public/js/components/AppMessage/AppMessage.js +++ b/public/js/components/AppMessage/AppMessage.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; export default class AppMessage extends React.Component { diff --git a/public/js/components/AtomCreate/AtomCreateExternalApp.js b/public/js/components/AtomCreate/AtomCreateExternalApp.js index 0b8f2e6e..4dc275d6 100644 --- a/public/js/components/AtomCreate/AtomCreateExternalApp.js +++ b/public/js/components/AtomCreate/AtomCreateExternalApp.js @@ -21,7 +21,7 @@ class AtomCreateExternalApp extends React.Component { Due to the complexity of this atom, it cannot be created from within the Atom Workshop directly.
- Open Dedicated Editor + Open Dedicated Editor
); diff --git a/public/js/components/AtomCreate/AtomCreateGenericInfo.js b/public/js/components/AtomCreate/AtomCreateGenericInfo.js index 9e7ef29b..0b4f6428 100644 --- a/public/js/components/AtomCreate/AtomCreateGenericInfo.js +++ b/public/js/components/AtomCreate/AtomCreateGenericInfo.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {Link} from 'react-router'; import {getAtomByType, isAtomTypeEditable} from '../../constants/atomData'; import {AtomTypeCard} from '../AtomTypeCard/AtomTypeCard.js'; diff --git a/public/js/components/AtomEdit/AtomEdit.js b/public/js/components/AtomEdit/AtomEdit.js index 4e2ef8f8..1b194f50 100644 --- a/public/js/components/AtomEdit/AtomEdit.js +++ b/public/js/components/AtomEdit/AtomEdit.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {CTAEditor} from './CustomEditors/CTAEditor'; import {RecipeEditor} from './CustomEditors/RecipeEditor'; import {QAndAEditor} from './CustomEditors/QAndAEditor'; @@ -40,7 +41,7 @@ class AtomEdit extends React.Component { }) } - componentWillMount() { + UNSAFE_componentWillMount() { subscribeToPresence(this.props.routeParams.atomType, this.props.routeParams.id); } diff --git a/public/js/components/AtomEdit/AtomEditHeader.js b/public/js/components/AtomEdit/AtomEditHeader.js index 801c87fe..e32b6032 100644 --- a/public/js/components/AtomEdit/AtomEditHeader.js +++ b/public/js/components/AtomEdit/AtomEditHeader.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../constants/atomPropType.js'; import {allAtomTypes} from '../../constants/atomData.js'; diff --git a/public/js/components/AtomEdit/CustomEditors/AudioEditor.js b/public/js/components/AtomEdit/CustomEditors/AudioEditor.js index 3a1d7ed9..04511330 100644 --- a/public/js/components/AtomEdit/CustomEditors/AudioEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/AudioEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../../constants/atomPropType'; import AutomaticDataFetch from "./AudioFields/AutomaticDataFetch"; diff --git a/public/js/components/AtomEdit/CustomEditors/AudioFields/AutomaticDataFetch.js b/public/js/components/AtomEdit/CustomEditors/AudioFields/AutomaticDataFetch.js index f03a92e8..56ca45ea 100644 --- a/public/js/components/AtomEdit/CustomEditors/AudioFields/AutomaticDataFetch.js +++ b/public/js/components/AtomEdit/CustomEditors/AudioFields/AutomaticDataFetch.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManualDataInput} from "./ManualDataInput"; //REDUX CONNECTIONS diff --git a/public/js/components/AtomEdit/CustomEditors/AudioFields/ManualDataInput.js b/public/js/components/AtomEdit/CustomEditors/AudioFields/ManualDataInput.js index 2c47579b..a4e27978 100644 --- a/public/js/components/AtomEdit/CustomEditors/AudioFields/ManualDataInput.js +++ b/public/js/components/AtomEdit/CustomEditors/AudioFields/ManualDataInput.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManagedForm, ManagedField} from '../../../ManagedEditor'; import FormFieldTextInput from '../../../FormFields/FormFieldTextInput'; import FormFieldNumericInput from '../../../FormFields/FormFieldNumericInput'; diff --git a/public/js/components/AtomEdit/CustomEditors/CTAEditor.js b/public/js/components/AtomEdit/CustomEditors/CTAEditor.js index 0f1b4307..96e30333 100644 --- a/public/js/components/AtomEdit/CustomEditors/CTAEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/CTAEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManagedForm, ManagedField} from '../../ManagedEditor'; import FormFieldTextInput from '../../FormFields/FormFieldTextInput'; diff --git a/public/js/components/AtomEdit/CustomEditors/ChartEditor.js b/public/js/components/AtomEdit/CustomEditors/ChartEditor.js index 5a744e4a..cd332234 100644 --- a/public/js/components/AtomEdit/CustomEditors/ChartEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/ChartEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import Modal from '../../Utilities/Modal'; import {atomPropType} from '../../../constants/atomPropType'; import {logInfo, logError} from '../../../util/logger'; diff --git a/public/js/components/AtomEdit/CustomEditors/CommonsDivisionEditor.js b/public/js/components/AtomEdit/CustomEditors/CommonsDivisionEditor.js index 95be0bb8..dac678ac 100644 --- a/public/js/components/AtomEdit/CustomEditors/CommonsDivisionEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/CommonsDivisionEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManagedForm, ManagedField} from '../../ManagedEditor'; import FormFieldTextInput from '../../FormFields/FormFieldTextInput'; diff --git a/public/js/components/AtomEdit/CustomEditors/ExplainerEditor.js b/public/js/components/AtomEdit/CustomEditors/ExplainerEditor.js index 1c0649f6..81134c9a 100644 --- a/public/js/components/AtomEdit/CustomEditors/ExplainerEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/ExplainerEditor.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManagedForm, ManagedField} from '../../ManagedEditor'; import FormFieldTextInput from '../../FormFields/FormFieldTextInput'; import FormFieldsScribeEditor from '../../FormFields/FormFieldScribeEditor'; diff --git a/public/js/components/AtomEdit/CustomEditors/GuideEditor.js b/public/js/components/AtomEdit/CustomEditors/GuideEditor.js index 04ad6fa9..812d5554 100644 --- a/public/js/components/AtomEdit/CustomEditors/GuideEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/GuideEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from "react"; +import React from "react"; +import {PropTypes} from "prop-types"; import FormFieldImageSelect from "../../FormFields/FormFieldImageSelect"; import FormFieldArrayWrapper from "../../FormFields/FormFieldArrayWrapper"; import { GuideItem } from "./GuideFields/GuideItem"; diff --git a/public/js/components/AtomEdit/CustomEditors/GuideFields/GuideItem.js b/public/js/components/AtomEdit/CustomEditors/GuideFields/GuideItem.js index 009fa872..1b0d1a6d 100644 --- a/public/js/components/AtomEdit/CustomEditors/GuideFields/GuideItem.js +++ b/public/js/components/AtomEdit/CustomEditors/GuideFields/GuideItem.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from "react"; +import React from "react"; +import {PropTypes} from "prop-types"; import { ManagedForm, ManagedField } from "../../../ManagedEditor"; import FormFieldTextInput from "../../../FormFields/FormFieldTextInput"; import FormFieldsScribeEditor from "../../../FormFields/FormFieldScribeEditor"; diff --git a/public/js/components/AtomEdit/CustomEditors/ProfileEditor.js b/public/js/components/AtomEdit/CustomEditors/ProfileEditor.js index 4d297f27..192f5a66 100644 --- a/public/js/components/AtomEdit/CustomEditors/ProfileEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/ProfileEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import FormFieldImageSelect from '../../FormFields/FormFieldImageSelect'; import FormFieldArrayWrapper from '../../FormFields/FormFieldArrayWrapper'; import { ProfileItem } from './ProfileFields/ProfileItem'; diff --git a/public/js/components/AtomEdit/CustomEditors/ProfileFields/ProfileItem.js b/public/js/components/AtomEdit/CustomEditors/ProfileFields/ProfileItem.js index 49981c66..944b6af9 100644 --- a/public/js/components/AtomEdit/CustomEditors/ProfileFields/ProfileItem.js +++ b/public/js/components/AtomEdit/CustomEditors/ProfileFields/ProfileItem.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import { ManagedForm, ManagedField } from '../../../ManagedEditor'; import FormFieldTextInput from '../../../FormFields/FormFieldTextInput'; import FormFieldsScribeEditor from '../../../FormFields/FormFieldScribeEditor'; diff --git a/public/js/components/AtomEdit/CustomEditors/QAndAEditor.js b/public/js/components/AtomEdit/CustomEditors/QAndAEditor.js index f5c4e86d..30e607fe 100644 --- a/public/js/components/AtomEdit/CustomEditors/QAndAEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/QAndAEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import FormFieldImageSelect from '../../FormFields/FormFieldImageSelect'; import {QAItem} from './QAndAFields/QAItem'; import {ManagedField, ManagedForm} from '../../ManagedEditor'; diff --git a/public/js/components/AtomEdit/CustomEditors/QAndAFields/QAItem.js b/public/js/components/AtomEdit/CustomEditors/QAndAFields/QAItem.js index cf3aa112..e9e12f7d 100644 --- a/public/js/components/AtomEdit/CustomEditors/QAndAFields/QAItem.js +++ b/public/js/components/AtomEdit/CustomEditors/QAndAFields/QAItem.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from "react"; +import React from "react"; +import {PropTypes} from "prop-types"; import { ManagedForm, ManagedField } from "../../../ManagedEditor"; import FormFieldsScribeEditor from "../../../FormFields/FormFieldScribeEditor"; import { wordLimits, tooLongMsg } from "../../../../util/wordLimits"; diff --git a/public/js/components/AtomEdit/CustomEditors/RecipeEditor.js b/public/js/components/AtomEdit/CustomEditors/RecipeEditor.js index 920e8f2d..72fa8a75 100644 --- a/public/js/components/AtomEdit/CustomEditors/RecipeEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/RecipeEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManagedForm, ManagedField} from '../../ManagedEditor'; import FormFieldNumericInput from '../../FormFields/FormFieldNumericInput'; diff --git a/public/js/components/AtomEdit/CustomEditors/RecipeFields/Ingredient.js b/public/js/components/AtomEdit/CustomEditors/RecipeFields/Ingredient.js index ae38a2ee..7cda395c 100644 --- a/public/js/components/AtomEdit/CustomEditors/RecipeFields/Ingredient.js +++ b/public/js/components/AtomEdit/CustomEditors/RecipeFields/Ingredient.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManagedForm, ManagedField} from '../../../ManagedEditor'; import FormFieldTextInput from '../../../FormFields/FormFieldTextInput'; import FormFieldSelectBox from '../../../FormFields/FormFieldSelectBox'; diff --git a/public/js/components/AtomEdit/CustomEditors/RecipeFields/IngredientList.js b/public/js/components/AtomEdit/CustomEditors/RecipeFields/IngredientList.js index c81f3fd2..645aeaca 100644 --- a/public/js/components/AtomEdit/CustomEditors/RecipeFields/IngredientList.js +++ b/public/js/components/AtomEdit/CustomEditors/RecipeFields/IngredientList.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {ManagedForm, ManagedField} from '../../../ManagedEditor'; import {Ingredient} from './Ingredient'; import FormFieldTextInput from '../../../FormFields/FormFieldTextInput'; diff --git a/public/js/components/AtomEdit/CustomEditors/RecipeFields/Servings.js b/public/js/components/AtomEdit/CustomEditors/RecipeFields/Servings.js index 7222ca61..dedbab5a 100644 --- a/public/js/components/AtomEdit/CustomEditors/RecipeFields/Servings.js +++ b/public/js/components/AtomEdit/CustomEditors/RecipeFields/Servings.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import FormFieldRadioButtons from '../../../FormFields/FormFieldRadioButtons'; import FormFieldNumericInput from '../../../FormFields/FormFieldNumericInput'; diff --git a/public/js/components/AtomEdit/CustomEditors/TimelineEditor.js b/public/js/components/AtomEdit/CustomEditors/TimelineEditor.js index 5faf6faf..52e8c9e4 100644 --- a/public/js/components/AtomEdit/CustomEditors/TimelineEditor.js +++ b/public/js/components/AtomEdit/CustomEditors/TimelineEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import FormFieldArrayWrapper from '../../FormFields/FormFieldArrayWrapper'; import {TimelineItem} from './TimelineFields/TimelineItem'; import {ManagedField, ManagedForm} from '../../ManagedEditor'; diff --git a/public/js/components/AtomEdit/CustomEditors/TimelineFields/TimelineItem.js b/public/js/components/AtomEdit/CustomEditors/TimelineFields/TimelineItem.js index add82066..72bc82d4 100644 --- a/public/js/components/AtomEdit/CustomEditors/TimelineFields/TimelineItem.js +++ b/public/js/components/AtomEdit/CustomEditors/TimelineFields/TimelineItem.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import { ManagedForm, ManagedField } from '../../../ManagedEditor'; import FormFieldTextInput from '../../../FormFields/FormFieldTextInput'; import FormFieldsScribeEditor from '../../../FormFields/FormFieldScribeEditor'; diff --git a/public/js/components/AtomEdit/EmbeddedAtomPick.js b/public/js/components/AtomEdit/EmbeddedAtomPick.js index bb54865b..6a43c228 100644 --- a/public/js/components/AtomEdit/EmbeddedAtomPick.js +++ b/public/js/components/AtomEdit/EmbeddedAtomPick.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../constants/atomPropType.js'; class EmbeddedAtomPick extends React.Component { diff --git a/public/js/components/AtomEmbed/AtomEmbed.js b/public/js/components/AtomEmbed/AtomEmbed.js index f4a870fa..08d0d914 100644 --- a/public/js/components/AtomEmbed/AtomEmbed.js +++ b/public/js/components/AtomEmbed/AtomEmbed.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import { atomPropType } from '../../constants/atomPropType.js'; import copy from 'copy-to-clipboard'; import { Link } from 'react-router'; diff --git a/public/js/components/AtomEmbed/CreateTargetForm.js b/public/js/components/AtomEmbed/CreateTargetForm.js index 694a566e..8a3ac85d 100644 --- a/public/js/components/AtomEmbed/CreateTargetForm.js +++ b/public/js/components/AtomEmbed/CreateTargetForm.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {createTarget} from '../../services/TargetingApi'; import {ManagedForm, ManagedField} from '../ManagedEditor'; @@ -24,7 +25,7 @@ class CreateTargetForm extends React.Component { } - componentWillMount() { + UNSAFE_componentWillMount() { if (!this.state.currentTarget.title) { this.setState({ diff --git a/public/js/components/AtomEmbed/CurrentTargets.js b/public/js/components/AtomEmbed/CurrentTargets.js index ae1debaa..94b66708 100644 --- a/public/js/components/AtomEmbed/CurrentTargets.js +++ b/public/js/components/AtomEmbed/CurrentTargets.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import { atomPropType } from '../../constants/atomPropType'; import { fetchTargetsForAtomPath, diff --git a/public/js/components/AtomList/AtomList.js b/public/js/components/AtomList/AtomList.js index 21bbb069..3ae17b91 100644 --- a/public/js/components/AtomList/AtomList.js +++ b/public/js/components/AtomList/AtomList.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import _isEqual from 'lodash/fp/isEqual'; import {allAtomTypes} from '../../constants/atomData'; @@ -44,7 +45,7 @@ class AtomList extends React.Component { this.triggerSearch(); } - componentWillReceiveProps(newProps) { + UNSAFE_componentWillReceiveProps(newProps) { if (!_isEqual(newProps.queryParams, this.props.queryParams)) { this.triggerSearch(Object.assign({}, searchParams, newProps.queryParams)); } diff --git a/public/js/components/AtomListItem/AtomListItem.js b/public/js/components/AtomListItem/AtomListItem.js index 7626a43d..4249de98 100644 --- a/public/js/components/AtomListItem/AtomListItem.js +++ b/public/js/components/AtomListItem/AtomListItem.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../constants/atomPropType.js'; import {getTitleForAtom, isAtomWorkshopEditable} from '../../util/atomDataExtractors'; import {getAtomByType} from '../../constants/atomData'; diff --git a/public/js/components/AtomRoot/AtomRoot.js b/public/js/components/AtomRoot/AtomRoot.js index 7eac669d..06b2d86b 100644 --- a/public/js/components/AtomRoot/AtomRoot.js +++ b/public/js/components/AtomRoot/AtomRoot.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import AtomEmbed from '../AtomEmbed/AtomEmbed'; import {atomPropType} from '../../constants/atomPropType.js'; @@ -31,7 +32,7 @@ class AtomRoot extends React.Component { } - componentWillMount() { + UNSAFE_componentWillMount() { this.props.atomActions.getAtom(this.props.routeParams.atomType, this.props.routeParams.id) .then(() => { this.props.workflowActions.getWorkflowStatus(this.props.atom); diff --git a/public/js/components/AtomStats/AtomStats.js b/public/js/components/AtomStats/AtomStats.js index 24bd4e99..5a54b734 100644 --- a/public/js/components/AtomStats/AtomStats.js +++ b/public/js/components/AtomStats/AtomStats.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../constants/atomPropType'; import distanceInWordsToNow from 'date-fns/distance_in_words_to_now'; import {FrontendIcon, ComposerIcon, ViewerIcon} from '../../util/icons.js'; @@ -22,7 +23,7 @@ class AtomStats extends React.Component { }).isRequired } - componentWillMount() { + UNSAFE_componentWillMount() { this.props.atomActions.getAtomUsages(this.props.routeParams.atomType, this.props.routeParams.id); this.props.atomActions.getSuggestedContent(this.props.routeParams.id, this.props.routeParams.atomType); } @@ -40,13 +41,13 @@ class AtomStats extends React.Component {

Created: {distanceInWordsToNow(usage.fields.creationDate, {addSuffix: true})} - + - + - +

diff --git a/public/js/components/CommonsDivisions/CommonsDivisions.js b/public/js/components/CommonsDivisions/CommonsDivisions.js index b5bfc9ce..04f5df7b 100644 --- a/public/js/components/CommonsDivisions/CommonsDivisions.js +++ b/public/js/components/CommonsDivisions/CommonsDivisions.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {CommonsDivisionResultPropType} from '../../actions/ParliamentActions/getLatestCommonsDivisions.js'; import CommonsDivision from './CommonsDivision'; import moment from 'moment'; @@ -11,7 +12,7 @@ class CommonsDivisions extends React.Component { }).isRequired }; - componentWillMount() { + UNSAFE_componentWillMount() { this.props.atomActions.getLatestCommonsDivisions(); } diff --git a/public/js/components/ContentSuggestions/ContentSuggestions.js b/public/js/components/ContentSuggestions/ContentSuggestions.js index caf4e2a0..208dd529 100644 --- a/public/js/components/ContentSuggestions/ContentSuggestions.js +++ b/public/js/components/ContentSuggestions/ContentSuggestions.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import CopyUrlButton from './CopyUrlButton'; import {FrontendIcon, ComposerIcon, ViewerIcon} from '../../util/icons.js'; import {SuggestedAtomsPropType} from '../../actions/AtomActions/getSuggestionsForLatestContent.js'; @@ -17,7 +18,7 @@ class ContentSuggestions extends React.Component { }).isRequired } - componentWillMount() { + UNSAFE_componentWillMount() { this.props.atomActions.getSuggestionsForLatestContent(); } @@ -27,7 +28,7 @@ class ContentSuggestions extends React.Component {
  • - { atom.title } + { atom.title } ({ atom.atomType.charAt(0) + atom.atomType.slice(1).toLowerCase() } atom)
    @@ -48,13 +49,13 @@ class ContentSuggestions extends React.Component {

    - + - + - +

    diff --git a/public/js/components/ContentSuggestions/CopyUrlButton.js b/public/js/components/ContentSuggestions/CopyUrlButton.js index c8d8f7cc..fa78a27d 100644 --- a/public/js/components/ContentSuggestions/CopyUrlButton.js +++ b/public/js/components/ContentSuggestions/CopyUrlButton.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../constants/atomPropType.js'; import copy from 'copy-to-clipboard'; diff --git a/public/js/components/ExternalAtom/ExternalAtom.js b/public/js/components/ExternalAtom/ExternalAtom.js index 23806d3a..12647a1d 100644 --- a/public/js/components/ExternalAtom/ExternalAtom.js +++ b/public/js/components/ExternalAtom/ExternalAtom.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {atomPropType} from '../../constants/atomPropType.js'; import {getAtomEditorUrl} from '../../util/atomDataExtractors'; import _capitalize from 'lodash/fp/capitalize'; @@ -16,7 +17,7 @@ class ExternalAtom extends React.Component { }) } - componentWillMount() { + UNSAFE_componentWillMount() { this.props.externalAtomActions.getExternalAtom(this.props.routeParams.atomType, this.props.routeParams.id); } @@ -24,7 +25,7 @@ class ExternalAtom extends React.Component { return (

    Due to the complexity of this atom, it cannot be created from within the Atom Workshop directly.

    - Open dedicated {_capitalize(atom.atomType)} atom editor + Open dedicated {_capitalize(atom.atomType)} atom editor
    ); } diff --git a/public/js/components/FormFields/FormFieldArrayWrapper.js b/public/js/components/FormFields/FormFieldArrayWrapper.js index 27693713..36828e09 100644 --- a/public/js/components/FormFields/FormFieldArrayWrapper.js +++ b/public/js/components/FormFields/FormFieldArrayWrapper.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import { errorPropType } from '../../constants/errorPropType'; export default class FormFieldArrayWrapper extends React.Component { diff --git a/public/js/components/FormFields/FormFieldCheckbox.js b/public/js/components/FormFields/FormFieldCheckbox.js index d6c5579a..aea76f65 100644 --- a/public/js/components/FormFields/FormFieldCheckbox.js +++ b/public/js/components/FormFields/FormFieldCheckbox.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; diff --git a/public/js/components/FormFields/FormFieldCheckbox.spec.js b/public/js/components/FormFields/FormFieldCheckbox.spec.js index 34c72888..f28bcb5e 100644 --- a/public/js/components/FormFields/FormFieldCheckbox.spec.js +++ b/public/js/components/FormFields/FormFieldCheckbox.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import FormFieldCheckbox from './FormFieldCheckbox'; import renderer from 'react-test-renderer'; import {configure, shallow} from 'enzyme'; -import Adapter from 'enzyme-adapter-react-15'; +import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); diff --git a/public/js/components/FormFields/FormFieldCheckboxGroup.js b/public/js/components/FormFields/FormFieldCheckboxGroup.js index e3b6ba4e..57d4eefa 100644 --- a/public/js/components/FormFields/FormFieldCheckboxGroup.js +++ b/public/js/components/FormFields/FormFieldCheckboxGroup.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; import FormFieldCheckbox from './FormFieldCheckbox'; diff --git a/public/js/components/FormFields/FormFieldDateInput.js b/public/js/components/FormFields/FormFieldDateInput.js index baeb9727..fb936706 100644 --- a/public/js/components/FormFields/FormFieldDateInput.js +++ b/public/js/components/FormFields/FormFieldDateInput.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import {SingleDatePicker} from 'react-dates'; import format from 'date-fns/format'; diff --git a/public/js/components/FormFields/FormFieldDateTextInput.js b/public/js/components/FormFields/FormFieldDateTextInput.js index fcfe7091..8941c2bd 100644 --- a/public/js/components/FormFields/FormFieldDateTextInput.js +++ b/public/js/components/FormFields/FormFieldDateTextInput.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; import moment from 'moment'; diff --git a/public/js/components/FormFields/FormFieldImageSelect.js b/public/js/components/FormFields/FormFieldImageSelect.js index 99162ddd..f8af5dc7 100644 --- a/public/js/components/FormFields/FormFieldImageSelect.js +++ b/public/js/components/FormFields/FormFieldImageSelect.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import filesize from 'filesize'; import Modal from '../Utilities/Modal'; import ShowErrors from '../Utilities/ShowErrors'; @@ -101,7 +102,7 @@ class FormFieldImageSelect extends React.Component {
    - View image in the Grid + View image in the Grid
    Size: {filesize(this.props.fieldValue.master.size)} diff --git a/public/js/components/FormFields/FormFieldImageSelect.spec.js b/public/js/components/FormFields/FormFieldImageSelect.spec.js index 5adeefa4..df638472 100644 --- a/public/js/components/FormFields/FormFieldImageSelect.spec.js +++ b/public/js/components/FormFields/FormFieldImageSelect.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import FormFieldImageSelect from './FormFieldImageSelect'; import renderer from 'react-test-renderer'; import {configure, mount} from 'enzyme'; -import Adapter from 'enzyme-adapter-react-15'; +import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); diff --git a/public/js/components/FormFields/FormFieldMultiSelect.js b/public/js/components/FormFields/FormFieldMultiSelect.js index cc279ad6..17aa0b5a 100644 --- a/public/js/components/FormFields/FormFieldMultiSelect.js +++ b/public/js/components/FormFields/FormFieldMultiSelect.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; diff --git a/public/js/components/FormFields/FormFieldNumericInput.js b/public/js/components/FormFields/FormFieldNumericInput.js index ff5b76e4..c88e2e93 100644 --- a/public/js/components/FormFields/FormFieldNumericInput.js +++ b/public/js/components/FormFields/FormFieldNumericInput.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; diff --git a/public/js/components/FormFields/FormFieldNumericInput.spec.js b/public/js/components/FormFields/FormFieldNumericInput.spec.js index a7e2cf34..eefa0be2 100644 --- a/public/js/components/FormFields/FormFieldNumericInput.spec.js +++ b/public/js/components/FormFields/FormFieldNumericInput.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import FormFieldNumericInput from './FormFieldNumericInput'; import renderer from 'react-test-renderer'; import {configure, shallow} from 'enzyme'; -import Adapter from 'enzyme-adapter-react-15'; +import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); diff --git a/public/js/components/FormFields/FormFieldRadioButtons.js b/public/js/components/FormFields/FormFieldRadioButtons.js index 7d0cced6..50d64ff4 100644 --- a/public/js/components/FormFields/FormFieldRadioButtons.js +++ b/public/js/components/FormFields/FormFieldRadioButtons.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; diff --git a/public/js/components/FormFields/FormFieldRadioButtons.spec.js b/public/js/components/FormFields/FormFieldRadioButtons.spec.js index 894aac75..413eca64 100644 --- a/public/js/components/FormFields/FormFieldRadioButtons.spec.js +++ b/public/js/components/FormFields/FormFieldRadioButtons.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import FormFieldRadioButtons from './FormFieldRadioButtons'; import renderer from 'react-test-renderer'; import {configure, shallow} from 'enzyme'; -import Adapter from 'enzyme-adapter-react-15'; +import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); diff --git a/public/js/components/FormFields/FormFieldScribeEditor.js b/public/js/components/FormFields/FormFieldScribeEditor.js index 49c167c4..14ed86ec 100644 --- a/public/js/components/FormFields/FormFieldScribeEditor.js +++ b/public/js/components/FormFields/FormFieldScribeEditor.js @@ -1,4 +1,5 @@ -import React, { PropTypes } from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import Scribe from 'scribe-editor'; import scribeKeyboardShortcutsPlugin from 'scribe-plugin-keyboard-shortcuts'; import scribePluginToolbar from 'scribe-plugin-toolbar'; diff --git a/public/js/components/FormFields/FormFieldSelectBox.js b/public/js/components/FormFields/FormFieldSelectBox.js index e133d8ed..2ac4baa3 100644 --- a/public/js/components/FormFields/FormFieldSelectBox.js +++ b/public/js/components/FormFields/FormFieldSelectBox.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; diff --git a/public/js/components/FormFields/FormFieldSelectBox.spec.js b/public/js/components/FormFields/FormFieldSelectBox.spec.js index 232b70cd..f4542eb5 100644 --- a/public/js/components/FormFields/FormFieldSelectBox.spec.js +++ b/public/js/components/FormFields/FormFieldSelectBox.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import FormFieldSelectBox from './FormFieldSelectBox'; import renderer from 'react-test-renderer'; import {configure, shallow} from 'enzyme'; -import Adapter from 'enzyme-adapter-react-15'; +import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); diff --git a/public/js/components/FormFields/FormFieldTagPicker.js b/public/js/components/FormFields/FormFieldTagPicker.js index 5bc28c75..2b1eea04 100644 --- a/public/js/components/FormFields/FormFieldTagPicker.js +++ b/public/js/components/FormFields/FormFieldTagPicker.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; import {searchTags} from '../../services/capi'; diff --git a/public/js/components/FormFields/FormFieldTextInput.js b/public/js/components/FormFields/FormFieldTextInput.js index 4ce90a07..02edeb5a 100644 --- a/public/js/components/FormFields/FormFieldTextInput.js +++ b/public/js/components/FormFields/FormFieldTextInput.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import ShowErrors from '../Utilities/ShowErrors'; import { errorPropType } from '../../constants/errorPropType'; diff --git a/public/js/components/FormFields/FormFieldTextInput.spec.js b/public/js/components/FormFields/FormFieldTextInput.spec.js index 42b0b0b9..0241d99e 100644 --- a/public/js/components/FormFields/FormFieldTextInput.spec.js +++ b/public/js/components/FormFields/FormFieldTextInput.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import FormFieldTextInput from './FormFieldTextInput'; import renderer from 'react-test-renderer'; import {configure, shallow} from 'enzyme'; -import Adapter from 'enzyme-adapter-react-15'; +import Adapter from 'enzyme-adapter-react-16'; configure({ adapter: new Adapter() }); diff --git a/public/js/components/FormFields/SearchFields/SearchCheckboxGroup.js b/public/js/components/FormFields/SearchFields/SearchCheckboxGroup.js index f4e1976c..ed778785 100644 --- a/public/js/components/FormFields/SearchFields/SearchCheckboxGroup.js +++ b/public/js/components/FormFields/SearchFields/SearchCheckboxGroup.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; export default class SearchCheckboxGroup extends React.Component { diff --git a/public/js/components/FormFields/SearchFields/SearchSelectBox.js b/public/js/components/FormFields/SearchFields/SearchSelectBox.js index 5cbac640..38d26c01 100644 --- a/public/js/components/FormFields/SearchFields/SearchSelectBox.js +++ b/public/js/components/FormFields/SearchFields/SearchSelectBox.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; export default class SearchSelectBox extends React.Component { diff --git a/public/js/components/FormFields/SearchFields/SearchSuggestions.js b/public/js/components/FormFields/SearchFields/SearchSuggestions.js index bd19ca98..8c417e04 100644 --- a/public/js/components/FormFields/SearchFields/SearchSuggestions.js +++ b/public/js/components/FormFields/SearchFields/SearchSuggestions.js @@ -1,4 +1,5 @@ -import React, {PropTypes} from 'react'; +import React from 'react'; +import {PropTypes} from 'prop-types'; import SearchTextInput from './SearchTextInput'; class SearchSuggestions extends React.Component { @@ -69,7 +70,7 @@ class SearchSuggestions extends React.Component {
  • {result.title}
  • ); const noresult = this.props.results.length === 0 ? -
  • No snippet found matching the word "{this.props.queryStr}"
  • : null; +
  • No snippet found matching the word "{this.props.queryStr}"
  • : null; return (