@draftline/react

中文文档
0.4.8发布于 2026/11/06MITTypeScriptES Module构建来源已验证近 30 天下载 2128

React hooks and primitives for Draftline-enabled Tauri applications.

原始使用文档
文档目录3 节
  1. Install
  2. Usage
  3. Design notes

Draftline React

React hooks and primitive components for Draftline-enabled Tauri applications.

@draftline/react builds on @draftline/client and provides provider-backed workspace state, mutation helpers, remote/recovery surfaces, and headless-first graph and variation primitives. The primitives are designed for host apps to keep their own shell, copy, styling, and destructive-operation policy.

Install

npm install @draftline/client @draftline/react

Usage

import { createDraftlineClient } from '@draftline/client';
import {
  DraftlineHistoryGraph,
  DraftlineWorkspaceGraph,
  DraftlineProvider,
  createDraftlineHistoryGraph,
  createDraftlineWorkspaceGraphModel,
} from '@draftline/react';
import '@xyflow/react/dist/style.css';

const client = createDraftlineClient();

export function App() {
  const graph = createDraftlineHistoryGraph({
    activeVariationId: 'main',
    versions: [],
    variations: [],
  });

  return (
    <DraftlineProvider client={client} workspacePath="C:\\path\\to\\workspace">
      <DraftlineHistoryGraph graph={graph} />
    </DraftlineProvider>
  );
}

For Git/DAG history, pass Draftline's WorkspaceGraph DTO directly into createDraftlineWorkspaceGraphModel. Use view: 'first-parent' for a compact main-line view and view: 'expanded' to show every saved side commit and merge parent. Hosts can supply renderNode to use product-specific labels, badges, and theme tokens while Draftline keeps the graph semantics.

Design notes

  • DraftlineGraphNode is an exported discriminated union for version, dirty, and remote-tip nodes.
  • DraftlineHistoryGraph is non-interactive unless the host supplies onSelectNode.
  • DraftlineWorkspaceGraph consumes WorkspaceGraph, supports first-parent and expanded views, and uses React Flow + Dagre for rendering/layout only.
  • Selection callbacks receive full context: { node, graph, selectable, nativeEvent }.
  • Host apps own labels, editor reloads, dirty-navigation prompts, and remote UX.

版本与发布记录

@draftline/react 共发布 27 个版本,首次发布于 2026/06/26;过去 12 个月发布了 27 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.8latest2026/11/068 天前
0.4.72026/11/068 天前
0.4.62026/11/068 天前
0.4.52026/11/059 天前
0.4.42026/11/059 天前
0.4.32026/11/059 天前

关于 @draftline/react 的常见问题

@draftline/react 是什么?

React hooks and primitives for Draftline-enabled Tauri applications.

如何安装 @draftline/react?

在项目目录运行 npm install @draftline/react,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@draftline/react 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@draftline/react 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@draftline/react 可以商用吗?

@draftline/react 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@draftline/react 的下载量有多少?

根据 npm 官方下载统计,@draftline/react 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,128 次,日均约 71 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@draftline/react 还在维护吗?

最新版本 0.4.8 发布于 2026/11/06(8 天前);至今共发布 27 个版本,其中过去 12 个月发布了 27 个;首次发布于 2026/06/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。