Orders Table

A full-featured orders data table with search, filtering, sorting, column management, row selection, bulk actions, CSV export, and pagination.

Order IDCustomerStatusDateAmountUpdatedEmailItemsPayment MethodChannelTracking #Actions
ORD-1041Prestige WorldwideProcessingDec 10, 2026$7,479.11
Apr 24
prestigeworldwide.1041@orders.example.com26Credit CardPhoneFDX-722284500
ORD-1034EndframePendingDec 9, 2026$4,230.99
1d ago
endframe.1034@orders.example.com36Wire TransferOnline StoreUSPS-729054412
ORD-1029Buy n LargeDeliveredDec 7, 2026$5,331.21
in 6d
buynlarge.1029@orders.example.com26Wire TransferOnline StoreUSPS-755387235
ORD-1026Tyrell CorporationShippedNov 27, 2026$5,621.59
in 1d
tyrellcorporation.1026@orders.example.com38Apple PayPhoneTRK-202316187
ORD-1042Umbrella LLCShippedNov 25, 2026$7,450.93
Apr 4
umbrellallc.1042@orders.example.com3InvoiceShopifyFDX-725140224
ORD-1003Acme CorpCancelledNov 23, 2026$3,771.93
Apr 22
acmecorp.1003@orders.example.com13PayPalShopifyTRK-528658160
ORD-1031InitechCancelledNov 23, 2026$1,751.57
May 28
initech.1031@orders.example.com7Wire TransferPhoneTRK-192769711
ORD-1033Gringotts BankProcessingNov 17, 2026$2,542.46
Mar 23
gringottsbank.1033@orders.example.com35Credit CardPhoneUSPS-335579455
ORD-1022Lumon IndustriesDeliveredNov 16, 2026$7,309.81
Apr 22
lumonindustries.1022@orders.example.com14Wire TransferShopify
ORD-1021HooliPendingNov 15, 2026$1,592.66
Jan 23
hooli.1021@orders.example.com19Credit CardAmazonTRK-051032367

Usage

OrdersTable is a ready-to-use block. Rendered on its own it shows a built-in seeded sample dataset, so you can drop it in and see the full experience right away.

import { OrdersTable } from "@blakeui-pro/react";

function App() {
  return <OrdersTable />;
}

Your own data

Pass an orders array to render real data. Each order matches the exported Order type.

import { OrdersTable, type Order } from "@blakeui-pro/react";

const orders: Order[] = [
  {
    id: "ORD-1001",
    customer: "Acme Corp",
    status: "Delivered",
    date: "2026-04-12",
    amount: 1299.0,
    email: "orders@acme.example.com",
    items: 3,
    paymentMethod: "Credit Card",
    channel: "Online Store",
    trackingNumber: "TRK-000123456",
    updatedAt: "2026-04-12T14:30:00",
    updatedBy: "Jane Cooper",
  },
  // ...
];

function App() {
  return <OrdersTable orders={orders} />;
}

Need a quick dataset to prototype with? The built-in sample is exported too:

import { OrdersTable, ordersTableSampleData } from "@blakeui-pro/react";

// Also available as OrdersTable.sampleData
<OrdersTable orders={ordersTableSampleData} />;

Loading & error states

OrdersTable is fully controlled. Drive isLoading and isError from your data fetching, and respond to the retry affordance with onRetry.

function OrdersPage() {
  const { data, isLoading, isError, refetch } = useOrders();

  return (
    <OrdersTable
      orders={data}
      isError={isError}
      isLoading={isLoading}
      onRetry={refetch}
    />
  );
}
  • isLoading — renders shimmer skeleton rows.
  • isError — renders an inline Alert with a Retry button that calls onRetry.

Actions

Row-level buttons (view, edit, delete) and the bulk Selected Actions menu report through a single onAction callback. Export selected and the toolbar Export button are handled internally and download a CSV — they do not fire onAction.

<OrdersTable
  onAction={(action, orderIds) => {
    // action: "view" | "edit" | "delete" | "mark-shipped"
    //       | "print-invoices" | "cancel-orders"
    console.log(action, orderIds);
  }}
/>

Props

PropTypeDefaultDescription
ordersOrder[]Built-in sampleOrders to display.
isLoadingbooleanfalseRenders skeleton rows instead of data.
isErrorbooleanfalseRenders an inline error state with a retry affordance.
onRetry() => voidCalled when the user presses Retry in the error state.
onAction(action: OrderAction, orderIds: string[]) => voidCalled for per-row and bulk actions.

All other div props (className, style, id, …) are forwarded to the root element.

Features

  • Search across order ID, customer, and status.
  • Filter by one or more statuses and sort by any column (toolbar menu or column headers).
  • Column management — toggle visibility and drag to reorder; resizable columns.
  • Row selection with a contextual toolbar, including a "select all matching" affordance across pages.
  • Density toggle (comfortable / compact).
  • CSV export of all rows or just the current selection, respecting visible columns.
  • Pagination with a results summary.
  • States for loading (skeletons), error (with retry), and empty (clear-filters).

Icons

The toolbar and row actions use Material Icons (Two Tone) from the ic set via @iconify/react, with the secondary layer dimmed to match the BlakeUI two-tone look. Only the glyphs the component needs are bundled, so there is no icon-library install step on your side.

On this page