diff --git a/frontend/src/components/nodes/DataNode.tsx b/frontend/src/components/nodes/DataNode.tsx index 69aac51..cdc7777 100644 --- a/frontend/src/components/nodes/DataNode.tsx +++ b/frontend/src/components/nodes/DataNode.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useMemo, useRef, useState } from 'react' +import React, { useCallback, useContext, useMemo, useRef, useState } from 'react' import { AbstractNodeProps, createAbstractNodeComponent, @@ -13,6 +13,8 @@ import { import { NodeFooterEdgeIndicators } from '../base/NodeFooterEdgeIndicators' import { NodeHeaderTitle } from '../base/NodeHeaderTitle' import { NodeMenubar } from '../base/NodeMenubar' +import FlowContext from '../../lib/flowContext' +import { getNodeType } from '../../lib/nodeRegistry' import { OutputHandle } from '../base/NodeHandles' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '../ui/table' import { parseCsvToRows } from '../../lib/csvParse' @@ -50,6 +52,9 @@ export type DataNodeData = { type Props = AbstractNodeProps function DataNodeComponent({ id, data, width, height, selected }: Props) { + const flowContext = useContext(FlowContext) + const setFullscreenNodeId = flowContext?.setFullscreenNodeId + const supportsFullscreen = getNodeType('data')?.supportsFullscreen const { updateData } = useAbstractNode(id, data ?? {}) const rows = data?.rows ?? [] const columns = data?.columns ?? [] @@ -248,7 +253,11 @@ function DataNodeComponent({ id, data, width, height, selected }: Props) { className="sr-only" aria-label="Upload CSV file" /> - } title={} /> + } + title={} + onHeaderDoubleClick={supportsFullscreen && setFullscreenNodeId ? () => setFullscreenNodeId(id) : undefined} + />
diff --git a/frontend/src/lib/registerBuiltinNodes.tsx b/frontend/src/lib/registerBuiltinNodes.tsx index a0ed80e..48a8f8d 100644 --- a/frontend/src/lib/registerBuiltinNodes.tsx +++ b/frontend/src/lib/registerBuiltinNodes.tsx @@ -109,6 +109,7 @@ export function registerBuiltinNodes(): void { menuLabel: 'Data', menuIcon: , connectionLabel: 'data source', + supportsFullscreen: true, }) registerNodeType({