
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
react-mantine-table
Advanced tools

You can install the React Mantine Table component using npm or yarn.
Using npm:
npm install react-mantine-table
Using yarn:
yarn add react-mantine-table
Please visit this page to explore the demo examples alongwith their code reference.
The React Mantine Table component offers the following features:

| Prop Name | Type | Default Value | Description | Required |
|---|---|---|---|---|
columns | ColumnDef<T>[] | An array of column definitions for the table. | Yes | |
data | TableOption<T>[] | An array of data rows to display in the table. | Yes | |
tableName | string | A unique name for the table. | Yes | |
disableCrud | boolean | false | Disable CRUD (Create, Read, Update, Delete) operations on the table. Explicitly add this to disable CRUD operations. | No |
crudOptions | CrudOptions<T> | Props related to CRUD operations on the table. (Please refer to below snippet for more details of its types.) | No | |
disablePagination | boolean | false | Disables pagination for the table. | No |
setTableConfig | (values: TableConfigData<T>) => void | A function to set table configuration values. You have to pass this to the table if you have to do manual pagination. | No | |
totalRecords | number | The total number of records in the table (manualPagination is enabled). | No | |
renderDetailPanel | (row: T) => ReactNode | A function to render a detail panel for a row in the table. | No | |
rowActionsPosition | start or end | "end" | Position of row actions in the table (start or end). | No |
hideOuterBorder | boolean | false | Flag to Hide the outer border of the table. | No |
tableOptions | Partial<TableOptions<T>> | Additional options for configuring the table appearance and behavior. | No | |
isLoading | boolean | false | Indicates whether the table is in a loading state. | No |
reloadFn | () => void | A function to reload or refresh the table data. | No | |
EmptyStateComponent | ReactNode | A custom component to display when the table is empty. | No | |
debugRows | boolean | false | Enable debugging mode for table rows. It will print the table data to console. | No |
To use the React Mantine Table component, import it into your React component and pass the necessary props. You must have to pass three props for table to show up
columns: Definition for columnsdata: Data to displaytableName: Name of Table. (Eg. User, Product, Order etc)Here's an example of how to use it:
import React, { useMemo, useState } from 'react';
import { ColumnDef, Table } from 'react-mantine-table';
// Define your columns
const columns = useMemo<ColumnDef<UserData>[]>(
() => [
{
accessorKey: "name",
header: "Name",
},
{
accessorKey: "email",
header: "Email Id",
enableClickToCopy: true,
Cell: ({ cell }) => (
<Text>{cell.getValue<string>().toLowerCase()}</Text>
),
},
{
accessorKey: "country",
header: "Country",
},
],
[]
);
// Your data source (usersApiData or productsApiData)
const data = // Your data source;
const UserList = () => {
return (
<Table
columns={columns}
data={data}
tableName="User"
tableOptions={{
enableRowSelection: true,
}}
/>
);
};
export default UserList;
Here's a more advanced example of using the React Mantine Table component with users data:
import React, { useMemo, useState } from 'react';
import { Table } from 'react-mantine-table';
// Define your product columns
const columns = useMemo(
() => [
// Define your product columns here (column configuration)
// ...
],
// Dependencies array
);
// Your product data source (productsApiData)
const data = // Your product data source;
// Your table options for products (optional)
const tableOptions = // Your table options;
const YourProductComponent = () => {
const [tableRowObject, setTableRowObject] = useState({});
// Add your CRUD API functions for products here (addProductApi, updatedProductApi, addProductApi, deleteProductApi, etc.)
return (
<Table
columns={columns}
data={data}
tableName="Product" // Provide a table name
isLoading={isLoading} // Set isLoading to true when data is loading
crudOptions={{
tableRowObject: userData,
setTableRowObject: setUserData,
onCreateRow: addUserApi,
onEditSaveRow: updatedUserApi,
onDeleteRow: deleteUserApi,
}}
// tableRowObject: State for holding the edited row data
// setTableRowObject: Setter Function to set the edited row data
// Add your CRUD API functions for products here (onCreateRow, onEditSaveRow, onDeleteRow, etc.)
// Add any other table options as needed (enableRowActions, enableColumnActions, etc.)
// Add your custom renderDetailPanel function to render the row detail panel
/>
);
};
export default YourProductComponent;
This table is built on top of Mantine UI so it will depend of mantine packages. Some of the core packages are listed here. These all will be installed alongwith this package, so no need to install them manually.
@mantine/core@mantine/styles@tabler/icons-reactdayjsmantine-react-tableHere is a code snippet demonstrating various table options available that you can configure and make your table as per your requirements.
NOTE: These options are OPTIONAL. You can pass these options to enable/disable the features for your table.
const tableOptions={
enableRowActions: true, // row actions menu
enableRowSelection: true, // row selection checkbox
enableColumnActions: true, // colummn level actions
enableExpanding: true, // expand rows to display more details
enableRowNumbers: true,
enableColumnDragging: true, // column dragging & ordering
enableColumnOrdering: true,
enableColumnResizing: true, // adjust column width
enableRowDragging: true, //
enableRowOrdering: true,
}
// Usage
<Table
columns={columns}
data={usersData} // Your data source
tableName='User'
tableOptions={tableOptions}
/>
FAQs
React Table component built using Mantine UI
The npm package react-mantine-table receives a total of 8 weekly downloads. As such, react-mantine-table popularity was classified as not popular.
We found that react-mantine-table demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.