chore(examples): make dev tools example reusable
This commit is contained in:
@@ -59,7 +59,7 @@ const CustomMiniMapNodeFlow = () => {
|
|||||||
onNodeClick={onNodeClick}
|
onNodeClick={onNodeClick}
|
||||||
onConnect={(p) => onConnect(p)}
|
onConnect={(p) => onConnect(p)}
|
||||||
onNodeDragStop={onNodeDragStop}
|
onNodeDragStop={onNodeDragStop}
|
||||||
onlyRenderVisibleElements={false}
|
onlyRenderVisibleElements={true}
|
||||||
>
|
>
|
||||||
<Controls />
|
<Controls />
|
||||||
<Background variant={BackgroundVariant.Lines} />
|
<Background variant={BackgroundVariant.Lines} />
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
import { useState, type Dispatch, type SetStateAction, type ReactNode, HTMLAttributes } from 'react';
|
import { useState, type Dispatch, type SetStateAction, type ReactNode, HTMLAttributes } from 'react';
|
||||||
import { Panel } from '@xyflow/react';
|
import { Panel, PanelPosition } from '@xyflow/react';
|
||||||
|
|
||||||
import NodeInspector from './NodeInspector';
|
import NodeInspector from './NodeInspector';
|
||||||
import ChangeLogger from './ChangeLogger';
|
import ChangeLogger from './ChangeLogger';
|
||||||
|
|
||||||
export default function ReactFlowDevTools() {
|
import './style.css';
|
||||||
|
|
||||||
|
export default function ReactFlowDevTools({ position = 'top-left' }: { position: PanelPosition }) {
|
||||||
const [nodeInspectorActive, setNodeInspectorActive] = useState(false);
|
const [nodeInspectorActive, setNodeInspectorActive] = useState(false);
|
||||||
const [changeLoggerActive, setChangeLoggerActive] = useState(false);
|
const [changeLoggerActive, setChangeLoggerActive] = useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="react-flow__devtools">
|
<div className="react-flow__devtools">
|
||||||
<Panel position="top-left">
|
<Panel position={position}>
|
||||||
<DevToolButton setActive={setNodeInspectorActive} active={nodeInspectorActive} title="Toggle Node Inspector">
|
<DevToolButton setActive={setNodeInspectorActive} active={nodeInspectorActive} title="Toggle Node Inspector">
|
||||||
Node Inspector
|
Node Inspector
|
||||||
</DevToolButton>
|
</DevToolButton>
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { useCallback } from 'react';
|
|||||||
import { ReactFlow, addEdge, Node, Connection, Edge, useNodesState, useEdgesState } from '@xyflow/react';
|
import { ReactFlow, addEdge, Node, Connection, Edge, useNodesState, useEdgesState } from '@xyflow/react';
|
||||||
|
|
||||||
import DevTools from './DevTools';
|
import DevTools from './DevTools';
|
||||||
import './Devtools/style.css';
|
|
||||||
|
|
||||||
const initNodes: Node[] = [
|
const initNodes: Node[] = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
MiniMap,
|
MiniMap,
|
||||||
Controls,
|
Controls,
|
||||||
} from '@xyflow/react';
|
} from '@xyflow/react';
|
||||||
|
import ReactFlowDevTools from '../DevTools/DevTools';
|
||||||
|
|
||||||
const initialNodes: Node[] = [
|
const initialNodes: Node[] = [
|
||||||
{
|
{
|
||||||
@@ -82,6 +83,7 @@ const HiddenFlow = () => {
|
|||||||
>
|
>
|
||||||
<MiniMap />
|
<MiniMap />
|
||||||
<Controls />
|
<Controls />
|
||||||
|
<ReactFlowDevTools position="top-right" />
|
||||||
|
|
||||||
<div style={{ position: 'absolute', left: 10, top: 10, zIndex: 4 }}>
|
<div style={{ position: 'absolute', left: 10, top: 10, zIndex: 4 }}>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -100,7 +100,6 @@ export function NodeWrapper<NodeType extends Node>({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (nodeRef.current && !node.hidden) {
|
if (nodeRef.current && !node.hidden) {
|
||||||
const currNode = nodeRef.current;
|
const currNode = nodeRef.current;
|
||||||
|
|
||||||
if (!initialized || !hasHandleBounds) {
|
if (!initialized || !hasHandleBounds) {
|
||||||
resizeObserver?.unobserve(currNode);
|
resizeObserver?.unobserve(currNode);
|
||||||
resizeObserver?.observe(currNode);
|
resizeObserver?.observe(currNode);
|
||||||
|
|||||||
Reference in New Issue
Block a user