@finki70/shufflejs-react

0.2.6 • Public • Published

ShuffleJS-React

Build Status dependencies Status devDependencies Status License: MIT node GitHub package.json version npm (prod) dependency version npm (prod) dependency version GitHub issues Website GitHub last commit (branch)

Getting Started

In progress...but check codesandbox or website for demo.

import { SortFilter } from "shufflejs-react";
import taxonomies from "./data/taxonomiesObject.json";
import records from "./data/basicRecords.json";

export default function App() {
  const defaultSort = ""; // empty string defaults to show all
  const itemSelector = "sortblock";
  return (
    <div className="App">
      <SortFilter
        defaultSort={defaultSort}
        taxonomies={taxonomies}
        itemSelector={itemSelector}
      >
        <Elements records={records} itemSelector={itemSelector} />
      </SortFilter>
    </div>
  );
}

Child elements can be anything that takes in array of records objects

function Elements({ itemSelector }) {
  return records.map(record => (
    <Element key={record.id} record={record} itemSelector={itemSelector} />
  ));
}

function Element(props) {
  const { itemSelector, record } = props;
  return (
    <div
      className={`col-md-6 ${itemSelector}`}
      data-groups={`${JSON.stringify(record.dataGroupArrayString)}`}
    >
      <div className="aspect aspect--4x3">
        <div className="aspect__inner">
          <img className="element__img" src={record.src} alt="" />
        </div>
      </div>
    </div>
  );
}

Files for data

// basicRecords.json
[
  {
    "id": 1,
    "src": "https://images.unsplash.com/photo-1484244233201-29892afe6a2c?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=800&h=600&fit=crop&s=14d236624576109b51e85bd5d7ebfbfc",
    "dataGroupArrayString": ["Cat","Cat Procedures","Cat Lift"]
  },
  {
    "id": 2,
    "src": "https://images.unsplash.com/photo-1465414829459-d228b58caf6e?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=800&h=600&fit=crop&s=7a7080fc0699869b1921cb1e7047c5b3",
    "dataGroupArrayString": ["City"]
  }
]
// taxonomiesObject.json
{
  "Body Types": {
    "people": {
      "slug": "people"
    },
    "food": {
      "slug": "food"
    },
    "cat": {
      "slug": "cat"
    },
    "city": {
      "slug": "city"
    },
    "nature": {
      "slug": "nature"
    },
    "abstract": {
      "slug": "abstract"
    }
  }
}

Contributing

Read the Contributing.md file for instructions on running locally and contributing.

License

MIT © Aricode00

/@finki70/shufflejs-react/

    Package Sidebar

    Install

    npm i @finki70/shufflejs-react

    Weekly Downloads

    1

    Version

    0.2.6

    License

    MIT

    Unpacked Size

    28.9 kB

    Total Files

    14

    Last publish

    Collaborators

    • finki70