Skip to content

Commit

Permalink
New devtools test for named hooks verifying case when hooks are used …
Browse files Browse the repository at this point in the history
…indirectly (facebook#21996)

## Summary
Adds a new unit test to `parseHookNames-test` which verifies that we correctly give names to hooks when they are used indirectly: 

e.g.
```
  const countState = useState(0);
  const count = countState[0];
  const setCount = countState[1];
``` 

Should produce `count` as the name.

## Test plan

```
yarn test
yarn test-build-devtools
yarn test-build-devtools parseHookNames
```
  • Loading branch information
jstejada authored and zhengjitf committed Apr 15, 2022
1 parent 3a77bd8 commit 9e4976f
Show file tree
Hide file tree
Showing 14 changed files with 329 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
*/

import React, {useEffect, useState} from 'react';

export function Component() {
const countState = useState(0);
const count = countState[0];
const setCount = countState[1];

const darkMode = useIsDarkMode();
const [isDarkMode] = darkMode;

useEffect(() => {
// ...
}, []);

const handleClick = () => setCount(count + 1);

return (
<>
<div>Dark mode? {isDarkMode}</div>
<div>Count: {count}</div>
<button onClick={handleClick}>Update count</button>
</>
);
}

function useIsDarkMode() {
const darkModeState = useState(false);
const [isDarkMode] = darkModeState;

useEffect(function useEffectCreate() {
// Here is where we may listen to a "theme" event...
}, []);

return [isDarkMode, () => {}];
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Large diffs are not rendered by default.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 9e4976f

Please sign in to comment.