@commercetools-uikit/collapsible
TypeScript icon, indicating that this package has built-in type declarations

19.2.0 • Public • Published

Collapsible

Description

A render-prop component to manage a toggle state. The component can be controlled or uncontrolled, depending if the isClosed props is defined or not. A controlled component additionally requires the onToggle prop.

Installation

yarn add @commercetools-uikit/collapsible
npm --save install @commercetools-uikit/collapsible

Additionally install the peer dependencies (if not present)

yarn add react
npm --save install react

Usage

import Collapsible from '@commercetools-uikit/collapsible';

const Example = () => (
  <Collapsible>
    {({ isOpen, toggle }) => (
      <div>
        <div>Status: {isOpen ? 'open' : 'closed'}</div>
        <button onClick={toggle}>Toggle</button>
      </div>
    )}
  </Collapsible>
);

export default Example;

Properties

Props Type Required Default Description
isDefaultClosed boolean false This is only used to initialize the isOpen state once, when the component mounts. Therefore there should not be any componentWillReceiveProps to update the state from an external source.
children Function
See signature.
A render-prop function.
children will be called with options: { isOpen: boolean; toggle: TToggleCallback }
options.toggle will be defined given that Collapsible is a controlled component.
isClosed boolean Passing this prop makes the component a controlled component. Controlled components also require to pass a onToggle callback function.
onToggle Function
See signature.
A callback function, called when the consumer calls the toggle function. This function is only required when the component is controlled.

Signatures

Signature children

(options: { isOpen: boolean; toggle?: TToggleCallback }) => ReactNode;

Signature onToggle

(toggleState?: boolean) => void

/@commercetools-uikit/collapsible/

    Package Sidebar

    Install

    npm i @commercetools-uikit/collapsible

    Weekly Downloads

    3,228

    Version

    19.2.0

    License

    MIT

    Unpacked Size

    20.8 kB

    Total Files

    12

    Last publish

    Collaborators

    • emmenko
    • commercetools-admin
    • tdeekens