1.0.1 • Published 4 years ago

dropkit v1.0.1

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

dropkit npm npm.io

A minimalist approach to custom dropdowns, autocompletes, and more.

Features

  • bring your own markup
  • no magic
  • full a11y support
  • supports multi-select
  • controlled, integrate with any form library

Install

npm i dropkit --save

Usage

import React from "react";
import cx from "classnames";

import { useSelect } from "dropkit";

function Dropdown() {
  const [label, labelSet] = React.useState("Please select");

  const {
    id,
    items,
    isOpen,
    getControlProps,
    getDropProps,
  } = useSelect({
    items: [
      { value: "san-francisco", label: "San Francisco" },
      { value: "los-angeles", label: "Los Angeles" },
      { value: "san-diego", label: "San Diego" },
      { value: "new-york", label: "New York" },
      { value: "albany", label: "Albany" },
      { value: "rochester", label: "Rochester" }
    ],
    onSelect(item) {
      labelSet(item.label); // set to active item
    },
    onRemove() {
      labelSet("Please select"); // reset to placeholder
    },
  });

  return (
    <>
      <label htmlFor={id}>Cities</label>
      <button id={id} {...getControlProps()}>{label}</button>

      {isOpen && (
        <ul {...getDropProps()}>
          {items.map(i => (
            <li
              key={i.value}
              className={cx({
                'is-selected': i.selected,
                'is-highlighted': i.highlighted,
              })}
              {...i.getItemProps()}
            >
              {i.label}
            </li>
          ))}
        </ul>
      )}
    </>
  );
}

Credits

Many thanks to @wmira for providing the dropkit npm package name. If you're looking for the Digital Ocean V2 REST API library, try v0.9.4 and below.

License

MIT License © Eric Bailey

1.0.1

4 years ago

1.0.0

5 years ago

1.0.0-0

5 years ago

0.9.4

10 years ago

0.9.3

10 years ago

0.9.2

10 years ago

0.9.1

10 years ago

0.9.0

11 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago