0.1.29 • Published 4 years ago

@belong-ui/popover v0.1.29

Weekly downloads
89
License
MIT
Repository
github
Last release
4 years ago

Basic Popover Usage:

The Popover is a core UI component used to build UI elements like Dropdowns, SelectBoxes, Tooltip etc. It uses compound components and Popper.js library under the Hood.

In this example we have built a simple Select Dropdown.

const PopoverTarget = Popover.TARGET;

const PopoverContent = Popover.CONTENT;

const PopoverArrow = Popover.ARROW;

const PopoverOverlay = Popover.OVERLAY;

initialState = {
  isDropdownOpen: false,
  selectedItem: null,
};
const suggestions = ['apple', 'orange', 'banana'];

<div className="styleguidist__popover-wrap">
  <Popover
    className="styleguidist__popover"
    placement="bottom-end"
  >
    <div className="styleguidist__popover-text" onClick={() => { setState({ isDropdownOpen: true }) }}>
      {state.selectedItem ? state.selectedItem : 'Select Fruit'}
    </div>
    <PopoverTarget>
      <div className="styleguidist__popover-dropdown-icon" onClick={() => { setState({ isDropdownOpen: true }) }}>
        {state.isDropdownOpen ? <i className="fa fa-chevron-up"></i> : <i className="fa fa-chevron-down"></i>}
      </div>
    </PopoverTarget>
    <PopoverContent
      isOpen={state.isDropdownOpen}
    >
      <PopoverArrow />
      <div className="styleguidist__popover-dropdown">
        {
          suggestions.map((suggestion) => (
            <p
              className="styleguidist__popover-dropdown-item"
              onClick={() => { setState({ selectedItem: suggestion }); }}
            >
              {suggestion}
            </p>
          ))
        }
      </div>
    </PopoverContent>
    <PopoverOverlay
      isOpen={state.isDropdownOpen}
      onClick={() => { setState({ isDropdownOpen: false }); }}
    />
  </Popover>
</div>

Without Arrow. (Can be used with Input Elements).

const PopoverTarget = Popover.TARGET;
const PopoverContent = Popover.CONTENT;
const PopoverOverlay = Popover.OVERLAY;

initialState = {
  isDropdownOpen: false,
  selectedItem: null,
};
const suggestions = ['apple', 'orange', 'banana'];

<div className="styleguidist__popover-wrap">
  <Popover
    className="styleguidist__popover styleguidist__popover--input"
    placement="bottom-start"
  >
    <PopoverTarget>
      <div className="styleguidist__popover-input-wrap" onClick={() => { setState({ isDropdownOpen: true }) }}>
        <div className="styleguidist__popover-text styleguidist__popover-text--input">
          {state.selectedItem ? state.selectedItem : 'Edit Fruit'}
        </div>
        <div className="styleguidist__popover-dropdown-icon">
          <i className="fa fa-pencil"></i>
        </div>
      </div>
    </PopoverTarget>
    <PopoverContent
      isOpen={state.isDropdownOpen}
    >
      <div className="styleguidist__popover-dropdown">
        {
          suggestions.map((suggestion) => (
            <p
              className="styleguidist__popover-dropdown-item"
              onClick={() => { setState({ selectedItem: suggestion }); }}
            >
              {suggestion}
            </p>
          ))
        }
      </div>
    </PopoverContent>
    <PopoverOverlay
      isOpen={state.isDropdownOpen}
      onClick={() => { setState({ isDropdownOpen: false }); }}
    />
  </Popover>
</div>
0.1.29

4 years ago

0.1.28

4 years ago

0.1.27

4 years ago

0.1.26

4 years ago

0.1.25

4 years ago

0.1.24

4 years ago

0.1.23

4 years ago

0.1.22

4 years ago

0.1.21

4 years ago

0.1.20

4 years ago

0.1.19

4 years ago

0.1.18

4 years ago

0.1.17

4 years ago

0.1.16

4 years ago

0.1.15

4 years ago

0.1.14

4 years ago

0.1.13

4 years ago

0.1.12

4 years ago

0.1.11

4 years ago

0.1.10

4 years ago

0.1.9

4 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.16

6 years ago

0.0.15

6 years ago

0.0.14

6 years ago

0.0.13

6 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago