Home / File/ ContextMenuContainer.js — react Source File

ContextMenuContainer.js — react Source File

Architecture documentation for ContextMenuContainer.js, a javascript file in the react codebase. 5 imports, 1 dependents.

File javascript BabelCompiler Validation 5 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  7eedd21d_ae6a_7447_035b_f34143688483["ContextMenuContainer.js"]
  6b15267e_6087_7e9b_ceab_28e7a8ab3cd9["ContextMenu.js"]
  7eedd21d_ae6a_7447_035b_f34143688483 --> 6b15267e_6087_7e9b_ceab_28e7a8ab3cd9
  b286a239_8afb_5e3f_a9eb_6310cf2e0167["ContextMenu"]
  7eedd21d_ae6a_7447_035b_f34143688483 --> b286a239_8afb_5e3f_a9eb_6310cf2e0167
  27c1f5e3_f1ca_440b_62aa_b832f761835e["useContextMenu.js"]
  7eedd21d_ae6a_7447_035b_f34143688483 --> 27c1f5e3_f1ca_440b_62aa_b832f761835e
  f94c772c_e76f_6e89_bc9b_2d47148e561c["types.js"]
  7eedd21d_ae6a_7447_035b_f34143688483 --> f94c772c_e76f_6e89_bc9b_2d47148e561c
  ac587885_e294_a1e9_b13f_5e7b920fdb42["react"]
  7eedd21d_ae6a_7447_035b_f34143688483 --> ac587885_e294_a1e9_b13f_5e7b920fdb42
  1be4c533_22f9_d4ee_5d61_bdd15076cee1["KeyValueContextMenuContainer.js"]
  1be4c533_22f9_d4ee_5d61_bdd15076cee1 --> 7eedd21d_ae6a_7447_035b_f34143688483
  style 7eedd21d_ae6a_7447_035b_f34143688483 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

/**
 * Copyright (c) Meta Platforms, Inc. and 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 * as React from 'react';
import {useImperativeHandle} from 'react';

import ContextMenu from './ContextMenu';
import useContextMenu from './useContextMenu';

import type {ContextMenuItem, ContextMenuRef} from './types';

type Props = {
  anchorElementRef: {
    current: React.ElementRef<any> | null,
  },
  items: ContextMenuItem[],
  closedMenuStub?: React.Node | null,
  ref?: ContextMenuRef,
};

export default function ContextMenuContainer({
  anchorElementRef,
  items,
  closedMenuStub = null,
  ref,
}: Props): React.Node {
  const {shouldShow, position, hide} = useContextMenu(anchorElementRef);

  useImperativeHandle(
    ref,
    () => ({
      isShown() {
        return shouldShow;
      },
      hide,
    }),
    [shouldShow, hide],
  );

  if (!shouldShow) {
    return closedMenuStub;
  }

  return (
    <ContextMenu
      anchorElementRef={anchorElementRef}
      position={position}
      hide={hide}
      items={items}
      ref={ref}
    />
  );
}

Domain

Subdomains

Frequently Asked Questions

What does ContextMenuContainer.js do?
ContextMenuContainer.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Validation subdomain.
What functions are defined in ContextMenuContainer.js?
ContextMenuContainer.js defines 1 function(s): ContextMenuContainer.
What does ContextMenuContainer.js depend on?
ContextMenuContainer.js imports 5 module(s): ContextMenu, ContextMenu.js, react, types.js, useContextMenu.js.
What files import ContextMenuContainer.js?
ContextMenuContainer.js is imported by 1 file(s): KeyValueContextMenuContainer.js.
Where is ContextMenuContainer.js in the architecture?
ContextMenuContainer.js is located at packages/react-devtools-shared/src/devtools/ContextMenu/ContextMenuContainer.js (domain: BabelCompiler, subdomain: Validation, directory: packages/react-devtools-shared/src/devtools/ContextMenu).

Analyze Your Own Codebase

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

Try Supermodel Free