New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@commercetools-uikit/dropdown-menu

Package Overview
Dependencies
Maintainers
0
Versions
170
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@commercetools-uikit/dropdown-menu

The Dropdown Menu component represents a component that triggers the rendering of a floating menu.

  • 19.22.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4.9K
decreased by-18.65%
Maintainers
0
Weekly downloads
 
Created
Source

DropdownMenu

Description

This component should be used whenever you need to display a floating panel after clicking on an element.

It allows to use any component as the element used to trigger the floating panel.

The panel can be customized to render whatever is needed. However, as a common use case would be to render a list of elements and select one of them, this component provides some helpers to easily implement such use case.

Something to bear in mind is that, when the panel is open, the document scroll is blocked.

Installation

yarn add @commercetools-uikit/dropdown-menu
npm --save install @commercetools-uikit/dropdown-menu

Additionally install the peer dependencies (if not present)

yarn add react
npm --save install react

Usage

import CheckboxInput from '@commercetools-uikit/checkbox-input';
import DropdownMenu from '@commercetools-uikit/dropdown-menu';
import IconButton from '@commercetools-uikit/icon-button';
import SecondaryButton from '@commercetools-uikit/secondary-button';
import SpacingsStack from '@commercetools-uikit/spacings-stack';
import Text from '@commercetools-uikit/text';
import { ColumnsIcon, FilterIcon } from '@commercetools-uikit/icons';

export const ListDropdownExample = () => {
  return (
    <DropdownMenu
      triggerElement={<IconButton icon={<ColumnsIcon />} label="list" />}
      menuHorizontalConstraint={6}
      menuPosition="left"
      menuType="list"
    >
      <DropdownMenu.ListMenuItem onClick={() => {}}>
        Option 1
      </DropdownMenu.ListMenuItem>
      <DropdownMenu.ListMenuItem onClick={() => {}} isDisabled>
        Option 2
      </DropdownMenu.ListMenuItem>
      <DropdownMenu.ListMenuItem onClick={() => {}}>
        Option 3
      </DropdownMenu.ListMenuItem>
    </DropdownMenu>
  );
};

export const CustomDropdownExample = () => {
  return (
    <DropdownMenu
      triggerElement={
        <SecondaryButton label="Filters" iconLeft={<FilterIcon />} />
      }
      menuHorizontalConstraint={6}
      menuPosition="right"
    >
      <SpacingsStack scale="m">
        <Text.Body>Store</Text.Body>
        <CheckboxInput isChecked value="store" onChange={(event) => {}}>
          Canada (FR)
        </CheckboxInput>
      </SpacingsStack>
    </DropdownMenu>
  );
};

Properties

PropsTypeRequiredDefaultDescription
menuPositionunion
Possible values:
'left' , 'right'
'left'The position of the menu relative to the trigger element.
menuMaxHeightnumberThe maximum height for the menu in pixels. By default, the max height will be the available space between the trigger element and the bottom of the viewport.
triggerElementReactElementThe element that triggers the dropdown.
menuTypeunion
Possible values:
'default' , 'list'
'default'The type of the menu. The 'default' type just renders a dropdown container but the 'list' type is intended to be used with the DropdownMenu.ListMenuItem component.
menuHorizontalConstraintTMaxProp'auto'The horizontal constraint of the menu.
childrenReactNodeThe content of the dropdown.

Additional info

ListMenuItem

When using the list floating panel, the DropdownMenu component exposes an inner sub-component called DropdownMenu.ListMenuItem that should be used to render each item in the list.

Clicking on an item will close the panel and call the onClick callback with the item's value.

Properties

PropsTypeRequiredDefaultDescription
isDisabledbooleanfalseWhether the item should be disabled.
onClick() => voidA callback to be called when the item is clicked.
childrenstringThe label for the item.

Keywords

FAQs

Package last updated on 21 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc