
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
@revolist/react-datagrid
Advanced tools
React DataGrid Spreadsheet component with native cell render support
Support Millions of cells and thousands of columns easy and efficiently for fast data rendering. Easy to use.
Demo and API • Key Features • How To Use • Installation • Docs • License
High Performance: Handles millions of cells in the viewport with a powerful core built by default.
Accessibility: Follows WAI-ARIA best practices.
Lightweight: Minimal initial bundle size . Can be imported with polyfills or as a module for modern browsers.
Intelligent Virtual DOM: Smart row recombination to minimize redraws.
Virtual Scroll: Handles large datasets with infinite scroll.
Drag and Drop: Drag and drop in rows and columns.
Sorting: Multiple options, customizable per column, with advanced event handling.
Export: Export data to file.
Custom Sizes: Define custom sizes for columns and rows. Automatic sizing based on content.
Column Resizing: Adjust column widths.
Pinned/Sticky/Freezed Elements:
Grouping:
Column Types: More details
Range Operations:
Extensibility: Modern VNode features and tsx support for easy extension.
Trimmed Rows: Hide rows on demand.
Plugin System: Create custom plugins or extend existing ones easily.
Formula Support: Evaluate formulas in cell data.
Master Detail/Subtables/Forms: Expand rows to reveal child data.
Cell/Column/Row Span/Merge: Merge cells to form groups.
Customizations:
Cell properties (define custom properties for rendered cells).
Cell template (create your own cell views).
Cell editor (use predefined or apply your own custom editors and cell types).
Rich API & Additional Improvements: Explore hundreds of other small customizations and improvements in RevoGrid.
⚠️ Note: Repository Notice: This repo is read-only. Create new issues at the revogrid repo
With NPM:
npm i @revolist/react-datagrid
With PNPM:
pnpm add @revolist/react-datagrid
With Yarn:
yarn add @revolist/react-datagrid
With Bun:
bun add @revolist/react-datagrid
[!NOTE] Previous package name:
@revolist/revogrid-react
was renamed to@revolist/react-datagrid
.
import { useState } from 'react'
import { RevoGrid } from '@revolist/react-datagrid'
/**
* note: columns & source need a "stable" reference in order to prevent infinite re-renders
*/
const columns = [
{ prop: 'name', name: 'First' },
{ prop: 'details', name: 'Second' },
]
function App() {
const [source] = useState([
{ name: '1', details: 'Item 1' },
{ name: '2', details: 'Item 2' },
]);
return (<RevoGrid columns={columns} source={source} />)
}
export default App
import { useState } from 'react';
import { RevoGrid, Template, type ColumnDataSchemaModel } from '@revolist/react-datagrid';
/**
* Custom cell component
*/
const Cell = ({ model, prop, value }: ColumnDataSchemaModel) => {
return <div><strong>{value}</strong></div>;
};
/**
* note: columns & source need a "stable" reference in order to prevent infinite re-renders
*/
const columns = [
{ prop: 'name', name: 'First', cellTemplate: Template(Cell) },
];
function App() {
const [source] = useState([{ name: '1' }, { name: '2' }]);
return (<RevoGrid columns={columns} source={source} />)
}
export default App
// App.tsx
import { useState } from 'react';
import { RevoGrid, Editor, type EditorType, type Editors } from '@revolist/react-datagrid';
/**
* Custom editor component
*/
const Button = ({ close } : EditorType) => {
return <button onClick={close}>Close</button>
};
const gridEditors: Editors = { ['custom-editor']: Editor(Button) };
/**
* note: columns & source need a "stable" reference in order to prevent infinite re-renders
*/
const columns = [
{
prop: 'name',
name: 'Custom editor',
editor: 'custom-editor',
},
];
function App() {
const [source] = useState([
{ name: '1', details: 'Item 1' },
{ name: '2', details: 'Item 2' },
]);
return (<RevoGrid columns={columns} source={source} editors={gridEditors} />)
}
export default App
2.0+: Introduced the plugin system, grouping, sorting, and filtering.
3.0+: Breaking changes introduced:
row
-> rgRow
col
-> rgCol
data-cell
-> rgCell
data-header-cell
-> rgHeaderCell
afterEdit
is now afteredit
. Check the API for details.4.0+: Breaking changes introduced. See the migration guide.
Redesigned type support:
- Removed deprecated namespaces:
- Before: RevoGrid.ColumnRegular
- Now: ColumnRegular
;
- Improved type import:
- Before: import { RevoGrid } from '@revolist/revogrid/dist/types/interfaces'
- Now: import { ColumnRegular } from '@revolist/revogrid'
.
- Changed viewport type names everywhere. For example, before: rowDefinitions: [{ type: "row", index: 0, size: 145 }]
, after: rowDefinitions: [{ type: "rgRow", index: 0, size: 145 }]
.
afterEdit
-> afteredit
.BeforeRowRenderEvent
. Check all events for details.Major improvements:
additionalData
for templates and editors. Prop
gives access to parent/root app context.What next?
We would like to extend our heartfelt gratitude to our sponsors for their generous support. Their contributions help us maintain and develop RevoGrid.
If you or your company would like to support the ongoing development of RevoGrid, please consider or use a Pro version. Your support will help us continue to improve the project and provide the best possible tool for the community.
Thank you for supporting RevoGrid! 🙏
By getting involved, you'll have the opportunity to enhance your skills, gain valuable experience, and make a significant impact on an innovative project. Your contribution, no matter how big or small, is valuable.
MIT
FAQs
React DataGrid Spreadsheet component with native cell render support
The npm package @revolist/react-datagrid receives a total of 276 weekly downloads. As such, @revolist/react-datagrid popularity was classified as not popular.
We found that @revolist/react-datagrid demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.