Node Tooltip
A wrapper for node components that displays a tooltip when hovered. Built on top of the NodeToolbar component that comes with React Flow.
Installation
Make sure to follow the prerequisites before installing the component.
npx shadcn@latest add https://ui.reactflow.dev/node-tooltip
Usage
1. Copy the component into your app
import React, { memo } from "react";
import { NodeProps, Position } from "@xyflow/react";
import {
NodeTooltip,
NodeTooltipContent,
NodeTooltipTrigger,
} from "@/components/node-tooltip";
import { BaseNode, BaseNodeContent } from "../base-node";
const NodeTooltipDemo = memo(() => {
return (
<NodeTooltip>
<NodeTooltipContent position={Position.Top} className="text-center">
You can display any content here, like text, images, or even components.{" "}
<br />
The tooltip will appear when you hover over the trigger.
</NodeTooltipContent>
<BaseNode className="w-64 text-center">
<BaseNodeContent className="flex flex-col items-center">
<NodeTooltipTrigger className="rounded border border-gray-300 p-2 text-lg font-bold">
Hover me! ⭐️
</NodeTooltipTrigger>
<span>
You can add more content that does not trigger the tooltip.
</span>
</BaseNodeContent>
</BaseNode>
</NodeTooltip>
);
});
export default NodeTooltipDemo;
2. Connect the component with your React Flow application.
import { Background, ReactFlow } from "@xyflow/react";
import NodeTooltipDemo from "./component-example";
const nodeTypes = {
nodeTooltip: NodeTooltipDemo,
};
const defaultNodes = [
{
id: "1",
position: { x: 200, y: 200 },
data: {},
type: "nodeTooltip",
},
];
export default function App() {
return (
<div className="h-full w-full">
<ReactFlow defaultNodes={defaultNodes} nodeTypes={nodeTypes} fitView>
<Background />
</ReactFlow>
</div>
);
}
Last updated on