Home / Function/ SidebarSelectedFiberInfo() — react Function Reference

SidebarSelectedFiberInfo() — react Function Reference

Architecture documentation for the SidebarSelectedFiberInfo() function in SidebarSelectedFiberInfo.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  52d9ce66_89b1_e5d8_c7c8_2f91e6bbb5e0["SidebarSelectedFiberInfo()"]
  05d8745f_e91f_f824_2d34_e3be3fd76a6c["SidebarSelectedFiberInfo.js"]
  52d9ce66_89b1_e5d8_c7c8_2f91e6bbb5e0 -->|defined in| 05d8745f_e91f_f824_2d34_e3be3fd76a6c
  style 52d9ce66_89b1_e5d8_c7c8_2f91e6bbb5e0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-devtools-shared/src/devtools/views/Profiler/SidebarSelectedFiberInfo.js lines 23–150

export default function SidebarSelectedFiberInfo(): React.Node {
  const {profilerStore} = useContext(StoreContext);
  const {
    rootID,
    selectCommitIndex,
    selectedCommitIndex,
    selectedFiberID,
    selectedFiberName,
    selectFiber,
  } = useContext(ProfilerContext);
  const {profilingCache} = profilerStore;
  const selectedListItemRef = useRef<HTMLElement | null>(null);

  useEffect(() => {
    const selectedElement = selectedListItemRef.current;
    if (
      selectedElement !== null &&
      // $FlowFixMe[method-unbinding]
      typeof selectedElement.scrollIntoView === 'function'
    ) {
      selectedElement.scrollIntoView({block: 'nearest', inline: 'nearest'});
    }
  }, [selectedCommitIndex]);

  if (
    selectedFiberID === null ||
    rootID === null ||
    selectedCommitIndex === null
  ) {
    return null;
  }

  const commitIndices = profilingCache.getFiberCommits({
    fiberID: selectedFiberID,
    rootID: rootID,
  });

  const {nodes} = profilingCache.getCommitTree({
    rootID,
    commitIndex: selectedCommitIndex,
  });
  const node = nodes.get(selectedFiberID);

  // $FlowFixMe[missing-local-annot]
  const handleKeyDown = event => {
    switch (event.key) {
      case 'ArrowUp':
        if (selectedCommitIndex !== null) {
          const prevIndex = commitIndices.indexOf(selectedCommitIndex);
          const nextIndex =
            prevIndex > 0 ? prevIndex - 1 : commitIndices.length - 1;
          selectCommitIndex(commitIndices[nextIndex]);
        }
        event.preventDefault();
        break;
      case 'ArrowDown':
        if (selectedCommitIndex !== null) {
          const prevIndex = commitIndices.indexOf(selectedCommitIndex);
          const nextIndex =
            prevIndex < commitIndices.length - 1 ? prevIndex + 1 : 0;
          selectCommitIndex(commitIndices[nextIndex]);
        }
        event.preventDefault();
        break;
      default:
        break;
    }
  };

  const listItems = [];
  let i = 0;
  for (i = 0; i < commitIndices.length; i++) {
    const commitIndex = commitIndices[i];

    const {duration, timestamp} = profilerStore.getCommitData(
      ((rootID: any): number),
      commitIndex,
    );

    listItems.push(
      <button

Domain

Subdomains

Frequently Asked Questions

What does SidebarSelectedFiberInfo() do?
SidebarSelectedFiberInfo() is a function in the react codebase, defined in packages/react-devtools-shared/src/devtools/views/Profiler/SidebarSelectedFiberInfo.js.
Where is SidebarSelectedFiberInfo() defined?
SidebarSelectedFiberInfo() is defined in packages/react-devtools-shared/src/devtools/views/Profiler/SidebarSelectedFiberInfo.js at line 23.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free