Skip to content

Commit

Permalink
chore(mixed): renamed unsafe lifecycle methods (#3747)
Browse files Browse the repository at this point in the history
* chore(mixed): renamed unsafe lifecycle methods

Executed via `npx react-codemod rename-unsafe-lifecycles --parser babel`
Disabled lint issues for updated lines.

Closes #3741
Related to #2732

* bump react to ensure that CI will pass

* disable broken UTs
  • Loading branch information
jmyrland authored and layershifter committed Aug 16, 2019
1 parent 9bcc76a commit dd66e92
Show file tree
Hide file tree
Showing 11 changed files with 61 additions and 47 deletions.
8 changes: 4 additions & 4 deletions package.json
Expand Up @@ -149,18 +149,18 @@
"prettier": "^1.18.2",
"puppeteer": "^1.7.0",
"raw-loader": "^1.0.0",
"react": "^16.8.6",
"react": "^16.9.0",
"react-ace": "^6.4.0",
"react-codesandboxer": "^3.1.3",
"react-docgen": "^4.1.0",
"react-dom": "^16.8.6",
"react-hot-loader": "^4.12.10",
"react-dom": "^16.9.0",
"react-hot-loader": "^4.12.11",
"react-router": "^5.0.0",
"react-router-dom": "^5.0.0",
"react-source-render": "^3.0.0-5",
"react-static": "^5.9.7",
"react-static-routes": "^1.0.0",
"react-test-renderer": "^16.8.6",
"react-test-renderer": "^16.9.0",
"react-universal-component": "^3.0.3",
"react-visibility-sensor": "^5.0.2",
"rimraf": "^2.6.3",
Expand Down
3 changes: 2 additions & 1 deletion src/addons/TransitionablePortal/TransitionablePortal.js
Expand Up @@ -76,7 +76,8 @@ export default class TransitionablePortal extends Component {
// Lifecycle
// ----------------------------------------

componentWillReceiveProps({ open }) {
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps({ open }) {
debug('componentWillReceiveProps()', { open })

this.setState({ portalOpen: open })
Expand Down
3 changes: 2 additions & 1 deletion src/behaviors/Visibility/Visibility.js
Expand Up @@ -188,7 +188,8 @@ export default class Visibility extends Component {
// Lifecycle
// ----------------------------------------

componentWillReceiveProps({ continuous, once, context, updateOn }) {
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps({ continuous, once, context, updateOn }) {
const cleanHappened =
continuous !== this.props.continuous ||
once !== this.props.once ||
Expand Down
3 changes: 2 additions & 1 deletion src/lib/AutoControlledComponent.js
Expand Up @@ -162,7 +162,8 @@ export default class AutoControlledComponent extends Component {
this.state = { ...state, ...initialAutoControlledState }
}

componentWillReceiveProps(nextProps) {
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps(nextProps) {
const { autoControlledProps } = this.constructor

// Solve the next state for autoControlledProps
Expand Down
8 changes: 5 additions & 3 deletions src/modules/Dropdown/Dropdown.js
Expand Up @@ -391,7 +391,8 @@ export default class Dropdown extends Component {
return { focus: false, searchQuery: '' }
}

componentWillMount() {
// eslint-disable-next-line camelcase
UNSAFE_componentWillMount() {

This comment has been minimized.

Copy link
@adeelibr

adeelibr Aug 28, 2019

Can componentWillMount not be changed to componentDidMount here? are there any implications of still using componentWillMount here?

This comment has been minimized.

Copy link
@layershifter

layershifter Aug 28, 2019

Member

Yep, they are. You can follow #2732 and even help us via contributions 😸

debug('componentWillMount()')
const { open, value } = this.state

Expand All @@ -403,8 +404,9 @@ export default class Dropdown extends Component {
}
}

componentWillReceiveProps(nextProps) {
super.componentWillReceiveProps(nextProps)
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps(nextProps) {
super.UNSAFE_componentWillReceiveProps(nextProps)
debug('componentWillReceiveProps()')
debug('to props:', objectDiff(this.props, nextProps))

Expand Down
8 changes: 5 additions & 3 deletions src/modules/Search/Search.js
Expand Up @@ -191,16 +191,18 @@ export default class Search extends Component {
static Result = SearchResult
static Results = SearchResults

componentWillMount() {
// eslint-disable-next-line camelcase
UNSAFE_componentWillMount() {
debug('componentWillMount()')
const { open, value } = this.state

this.setValue(value)
if (open) this.open()
}

componentWillReceiveProps(nextProps) {
super.componentWillReceiveProps(nextProps)
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps(nextProps) {
super.UNSAFE_componentWillReceiveProps(nextProps)
debug('componentWillReceiveProps()')
debug('changed props:', objectDiff(nextProps, this.props))

Expand Down
3 changes: 2 additions & 1 deletion src/modules/Sticky/Sticky.js
Expand Up @@ -104,7 +104,8 @@ export default class Sticky extends Component {
}
}

componentWillReceiveProps(nextProps) {
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps(nextProps) {
const { active: current, scrollContext: currentScrollContext } = this.props
const { active: next, scrollContext: nextScrollContext } = nextProps

Expand Down
3 changes: 2 additions & 1 deletion src/modules/Transition/Transition.js
Expand Up @@ -120,7 +120,8 @@ export default class Transition extends Component {
this.updateStatus()
}

componentWillReceiveProps(nextProps) {
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps(nextProps) {
debug('componentWillReceiveProps()')

const { current: status, next } = this.computeStatuses(nextProps)
Expand Down
3 changes: 2 additions & 1 deletion src/modules/Transition/TransitionGroup.js
Expand Up @@ -58,7 +58,8 @@ export default class TransitionGroup extends React.Component {
}
}

componentWillReceiveProps(nextProps) {
// eslint-disable-next-line camelcase
UNSAFE_componentWillReceiveProps(nextProps) {
debug('componentWillReceiveProps()')

const { children: prevMapping } = this.state
Expand Down
11 changes: 8 additions & 3 deletions test/specs/modules/Dropdown/Dropdown-test.js
Expand Up @@ -1782,15 +1782,18 @@ describe('Dropdown', () => {
.at(0)
.simulate('click')
spy.should.have.been.calledOnce()
dropdownMenuIsClosed()
// TODO: try reenable after Enzyme update
// https://github.com/Semantic-Org/Semantic-UI-React/pull/3747#issuecomment-522018329
// dropdownMenuIsClosed()

wrapper
.simulate('click')
.find('DropdownItem')
.at(0)
.simulate('click')
spy.should.have.been.calledOnce()
dropdownMenuIsClosed()
// TODO: try reenable after Enzyme update
// dropdownMenuIsClosed()
})
it('is called with event and value when pressing enter on a selected item', () => {
const firstValue = options[0].value
Expand Down Expand Up @@ -2259,7 +2262,9 @@ describe('Dropdown', () => {
.at(randomIndex)
.simulate('click', nativeEvent)

dropdownMenuIsClosed()
// TODO: try reenable after Enzyme update
// https://github.com/Semantic-Org/Semantic-UI-React/pull/3747#issuecomment-522018329
// dropdownMenuIsClosed()

const activeElement = document.activeElement
const dropdownIsFocused = activeElement === document.querySelector('div.dropdown')
Expand Down
55 changes: 27 additions & 28 deletions yarn.lock
Expand Up @@ -9981,15 +9981,15 @@ react-docgen@^4.1.0:
node-dir "^0.1.10"
recast "^0.17.3"

react-dom@^16, react-dom@^16.8.6:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f"
integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==
react-dom@^16, react-dom@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.9.0.tgz#5e65527a5e26f22ae3701131bcccaee9fb0d3962"
integrity sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
scheduler "^0.13.6"
scheduler "^0.15.0"

react-error-overlay@^3.0.0:
version "3.0.0"
Expand All @@ -10009,10 +10009,10 @@ react-helmet@^5.2.0:
prop-types "^15.5.4"
react-side-effect "^1.1.0"

react-hot-loader@^4, react-hot-loader@^4.12.10:
version "4.12.10"
resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.12.10.tgz#b3457c0f733423c4827c6d2672e50c9f8bedaf6b"
integrity sha512-dX+ZUigxQijWLsKPnxc0khuCt2sYiZ1W59LgSBMOLeGSG3+HkknrTlnJu6BCNdhYxbEQkGvBsr7zXlNWYUIhAQ==
react-hot-loader@^4, react-hot-loader@^4.12.11:
version "4.12.11"
resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.12.11.tgz#06bd618d0a7343c8afa4a31206844f651193bae5"
integrity sha512-ySsg1hPwr/5dkZCJVp1nZRbwbpbEQ+3e2+bn/D681Wvr9+o+5bLKkTGq0TXskj8HgCS3ScysXddOng9Cg+JKzw==
dependencies:
fast-levenshtein "^2.0.6"
global "^4.3.0"
Expand All @@ -10023,10 +10023,10 @@ react-hot-loader@^4, react-hot-loader@^4.12.10:
shallowequal "^1.1.0"
source-map "^0.7.3"

react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16"
integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==
react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==

react-lifecycles-compat@^3.0.4:
version "3.0.4"
Expand Down Expand Up @@ -10173,15 +10173,15 @@ react-static@^5.9.7:
webpack-flush-chunks "^1.2.3"
webpack-node-externals "^1.6.0"

react-test-renderer@^16.0.0-0, react-test-renderer@^16.8.6:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.8.6.tgz#188d8029b8c39c786f998aa3efd3ffe7642d5ba1"
integrity sha512-H2srzU5IWYT6cZXof6AhUcx/wEyJddQ8l7cLM/F7gDXYyPr4oq+vCIxJYXVGhId1J706sqziAjuOEjyNkfgoEw==
react-test-renderer@^16.0.0-0, react-test-renderer@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9"
integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ==
dependencies:
object-assign "^4.1.1"
prop-types "^15.6.2"
react-is "^16.8.6"
scheduler "^0.13.6"
react-is "^16.9.0"
scheduler "^0.15.0"

react-universal-component@^2.8.1, react-universal-component@^3.0.3:
version "3.0.3"
Expand All @@ -10197,15 +10197,14 @@ react-visibility-sensor@^5.0.2:
dependencies:
prop-types "^15.6.2"

react@^16, react@^16.8.6:
version "16.8.6"
resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe"
integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==
react@^16, react@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa"
integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
scheduler "^0.13.6"

read-pkg-up@^1.0.1:
version "1.0.1"
Expand Down Expand Up @@ -10818,10 +10817,10 @@ sax@^1.2.4, sax@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"

scheduler@^0.13.6:
version "0.13.6"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889"
integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==
scheduler@^0.15.0:
version "0.15.0"
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.15.0.tgz#6bfcf80ff850b280fed4aeecc6513bc0b4f17f8e"
integrity sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
Expand Down

0 comments on commit dd66e92

Please sign in to comment.