1.0.1 • Published 2 years ago

@mish-tv/sortable-list v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Usage

import React from "react";
import { RowCreator, SortableList } from "@mish-tv/sortable-list";

type Item = { id: number; body: string };

export const Component = (props: { initialIds: number[]; items: Record<number, Item> }) => {
  const [ids, setIds] = React.useState(props.initialIds);

  const row: RowCreator<HTMLLIElement, number> = React.useCallback(
    (id, rowAttributes, handleAttributes, options) => {
      const item = props.items[id];
      let className = "row";
      if (options.isDraggingThis) className += " draggingThis";
      if (options.isDraggingOthers) className += " draggingOthers";

      return (
        <li className={className} {...rowAttributes}>
          <button type="button" {...handleAttributes}>
            ⣿
          </button>
          <span>{item.body}</span>
        </li>
      );
    },
    [props.items],
  );

  return (
    <ul className="list">
      <SortableList ids={ids} setIds={setIds} row={row} />
    </ul>
  );
};

Installation

npm install --save @mish-tv/sortable-list
1.0.1

2 years ago

1.0.0

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago