<NodeToolbar />

GitHub 上のソースコード

このコンポーネントは、カスタムノードの片側にツールバーまたはツールチップをレンダリングできます。このツールバーはビューポートに合わせてスケール変更されないため、コンテンツは常に表示されます。

import { memo } from 'react';
import { Handle, Position, NodeToolbar } from '@xyflow/react';
 
export CustomNode = ({ data }) => {
  return (
    <>
      <NodeToolbar isVisible={data.toolbarVisible} position={data.toolbarPosition}>
        <button>delete</button>
        <button>copy</button>
        <button>expand</button>
      </NodeToolbar>
 
      <div style={{ padding: '10px 20px' }}>
        {data.label}
      </div>
 
      <Handle type="target" position={Position.Left} />
      <Handle type="source" position={Position.Right} />
    </>
  );
};
 
export default memo(CustomNode);

プロパティ

TypeScript ユーザーの場合、<NodeToolbar /> コンポーネントのプロパティ型は `NodeToolbarProps` としてエクスポートされます。

#nodeId?
文字列 | 文字列[]
ノードIDの配列を渡すことで、ノードのグループまたはコレクションに対して単一のツールチップをレンダリングできます。
#isVisible?
ブール値
#position?
Position
#offset?
数値
ノードとツールバーの間のスペース(ピクセル単位)。
10
#align?
"中央" | "開始" | "終了"

備考

  • デフォルトでは、ツールバーはノードが選択されている場合のみ表示されます。複数のノードが選択されている場合、ツールバーの重複またはごちゃごちゃを防ぐために表示されません。`isVisible` プロパティを `true` に設定することで、この動作を上書きできます。