woltz-react-rich-domain

React hooks and components for @woltz/rich-domain. Use when building frontend UIs with DataTable, Kanban, Timeline, or Criteria-based filtering.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "woltz-react-rich-domain" with this command: npx skills add tarcisioandrade/rich-domain/tarcisioandrade-rich-domain-woltz-react-rich-domain

@woltz/react-rich-domain

React integration for @woltz/rich-domain with hooks, components, and React Query integration.

Installation

npm install @woltz/react-rich-domain @tanstack/react-query

Quick Start

1. Setup QueryClient

import { QueryClient, QueryClientProvider } from "@tanstack/react-query";

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <YourApp />
    </QueryClientProvider>
  );
}

2. Create a Data Table

import { useCriteriaTable, DataTableCriteria } from "@woltz/react-rich-domain";
import { ColumnDef } from "@tanstack/react-table";

interface User {
  id: string;
  name: string;
  email: string;
  status: "active" | "inactive";
}

const columns: ColumnDef<User>[] = [
  { accessorKey: "name", header: "Name" },
  { accessorKey: "email", header: "Email" },
  { accessorKey: "status", header: "Status" },
];

export function UserTable() {
  const { table, filterProps, searchProps } = useCriteriaTable({
    columns,
    queryKey: ["users"],
    queryFn: async (criteria) => {
      const res = await fetch("/api/users?" + criteria.toQueryString());
      return res.json();
    },
    filterFields: [
      {
        field: "status",
        type: "string",
        fieldLabel: "Status",
        options: [
          { label: "Active", value: "active" },
          { label: "Inactive", value: "inactive" },
        ],
      },
    ],
  });

  return (
    <DataTableCriteria
      table={table}
      filterProps={filterProps}
      {...searchProps}
      showColumnToggle
    />
  );
}

3. Create a Kanban Board

import { useCriteriaKanban, DataKanbanCriteria } from "@woltz/react-rich-domain";

interface Task {
  id: string;
  title: string;
  status: "todo" | "doing" | "done";
}

const columns = [
  { id: "todo", title: "To Do", criteria: (c) => c.where("status", "equals", "todo") },
  { id: "doing", title: "In Progress", criteria: (c) => c.where("status", "equals", "doing") },
  { id: "done", title: "Done", criteria: (c) => c.where("status", "equals", "done") },
];

export function TaskBoard() {
  const kanban = useCriteriaKanban<Task>("tasks", fetchTasks, {
    columns,
    getItemId: (task) => task.id,
    groupField: "status",
    onCardMove: async ({ cardId, toColumn }) => {
      await updateTask(cardId, { status: toColumn.id });
    },
  });

  return (
    <DataKanbanCriteria
      kanban={kanban}
      renderCard={(task) => <div>{task.title}</div>}
      showItemCount
    />
  );
}

Available Hooks

HookPurpose
useCriteriaManage filter, sort, pagination state
useCriteriaQueryCriteria + React Query for paginated data
useCriteriaInfiniteQueryInfinite scroll with Criteria
useCriteriaTableTanStack Table + Criteria integration
useCriteriaKanbanKanban board with drag-and-drop
useCriteriaTimelineTimeline view with date grouping

Available Components

ComponentPurpose
DataTableCriteriaFull-featured data table with filtering
DataKanbanCriteriaKanban board with drag-and-drop
DataTimelineCriteriaTimeline view with grouped items
DataViewToolbarSearch, filter, export toolbar
FilterStandalone filter dropdown UI
SortingSorting UI with drag-and-drop reordering

References

For detailed documentation:

  • Hooks - useCriteria, useCriteriaQuery, useCriteriaTable, useCriteriaKanban, useCriteriaTimeline
  • Components - DataTableCriteria, DataKanbanCriteria, DataTimelineCriteria
  • Filter Component - Standalone filter UI with operators by type
  • Sorting Component - Sorting UI with drag-and-drop reordering
  • Filtering - Filter fields, operators, and programmatic management
  • State Persistence - URL sync and localStorage

Load references based on context - don't read all at once.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

woltz-rich-domain

No summary provided by upstream source.

Repository SourceNeeds Review
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated
General

asr

Transcribe audio files to text using local speech recognition. Triggers on: "转录", "transcribe", "语音转文字", "ASR", "识别音频", "把这段音频转成文字".

Archived SourceRecently Updated