slickgrid-react
TypeScript icon, indicating that this package has built-in type declarations

9.0.3 • Public • Published

Slickgrid-React

License: MIT TypeScript NPM downloads npm npm bundle size Actions Status

Brief introduction

SlickGrid-React is a custom component created specifically for React framework, it is a wrapper on top of Slickgrid-Universal library which contains the core functionalities. Slickgrid-Universal is written with TypeScript in browser native code, it is framework agnostic and is a monorepo that includes all Editors, Filters, Extensions and Services related to SlickGrid usage with also a few optional packages (like GraphQL, OData, Export to Excel, ...).

Documentation

📘 Documentation website powered by GitBook for version 4+ (... or use the Wikis for older versions).

Installation

Available in Stackblitz (Codeflow) below, this can also be used to provide an issue repro.

Open in StackBlitz

Refer to the Docs - Quick Start and/or clone the Slickgrid-React-Demos repository. Please consult all documentation before opening new issues, also consider asking installation and/or general questions on Stack Overflow unless you think there's a bug with the library.

NPM Package

slickgrid-react on NPM

License

MIT License

Install it

npm install slickgrid-react

Basic Usage

import { type Column, type GridOption, SlickgridReact } from 'slickgrid-react';

export default function Example() {
  const [columns, setColumns] = useState<Column[]>();
  const [options, setOptions] = useState<GridOption>();
  const [dataset, setDataset] = useState<any[]>(getData());

  useEffect(() => defineGrid());

  function defineGrid() {
    setColumns([
      { id: 'firstName', name: 'First Name', field: 'firstName', sortable: true },
      { id: 'lastName', name: 'Last Name', field: 'lastName', sortable: true },
      { id: 'age', name: 'Age', field: 'age', type: 'number', sortable: true },
    ]);

    setOptions({ /*...*/ }); // optional grid options
  }

  function getData() {
    return [
      { id: 1, firstName: 'John', lastName: 'Doe', age: 20 },
      { id: 2, firstName: 'Jane', lastName: 'Smith', age: 21 },
    ];
  }

  return !options ? null : (
    <SlickgridReact gridId="grid1"
        columns={columns}
        options={options}
        dataset={dataset}
     />
  );
}

Troubleshooting

This project does not work well with React.StrictMode, so please make sure to disable it to avoid getting mad at the library :P

Versions Compatibility

Note please be aware that only the latest major version of Slickgrid-React will be supported and receive bug fixes (it's already a lot of work to maintain for a single developer like me).

Slickgrid-React React version Migration Guide Notes
9.x React 18+ Migration 9.x ESM-Only, requires Slickgrid-Universal 9.x
5.x React 18+ Migration 5.x Modern UI / Dark Mode, requires Slickgrid-Universal 5.x
4.x Migration 4.x merge SlickGrid into Slickgrid-Universal, requires Slickgrid-Universal 4.x
3.x Migration 3.x removal of jQuery (now uses browser native code), requires Slickgrid-Universal 3.x
2.x React 18+ Migration 2.x removal of jQueryUI, requires Slickgrid-Universal 2.x version

Styling Themes

Multiple styling themes are available

Also note that all of these themes also have Dark Theme equivalent and even though Bootstrap is often used for live demos, it does work as well with any other UI framework like Bulma, Material, ...

Live Demo page

Slickgrid-React works with all Bootstrap versions, you can see a demo of each one below. It also works well with any other frameworks like Material or Bulma and there are also couple of extra styling themes based on Material & Salesforce which are also available. You can also use different SVG icons, you may want to look at the Docs - SVG Icons

Working Demos

For a complete set of working demos (40+ examples), we strongly suggest you to clone the Slickgrid-React Demos repository (instructions are provided inside it). The repo provides multiple examples and are updated every time a new release is out, so it is updated frequently and is used as the GitHub live demo page.

Latest News & Releases

Check out the Releases section for all latest News & Releases.

Tested with Jest (Unit Tests) - Cypress (E2E Tests)

Slickgrid-Universal has 100% Unit Test Coverage and all Slickgrid-React Examples are tested with Cypress as E2E tests.

Like it? ⭐ it

You like Slickgrid-React? Be sure to upvote ⭐, and perhaps support me with caffeine or GitHub sponsoring and feel free to contribute. 👷👷‍♀️

Buy Me a Coffee at ko-fi.com

Package Sidebar

Install

npm i slickgrid-react

Weekly Downloads

1,449

Version

9.0.3

License

MIT

Unpacked Size

544 kB

Total Files

96

Last publish

Collaborators

  • speige
  • ghiscoding