Realtime Flow
supabase-ui-library/realtime-flow-tanstackFreeComponent
Real-time flow diagram editor for collaborative applications.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/supabase/supabase/master/apps/ui-library/public/r/realtime-flow-tanstack.jsonSource
1'use client'23import {4 ReactFlow,5 ReactFlowProvider,6 Background,7 Controls,8 type Node,9 type Edge,10 type NodeTypes,11 type EdgeTypes,12} from '@xyflow/react'13import '@xyflow/react/dist/style.css'14import type { SupabasePersistenceOptions } from '@supabase-labs/y-supabase'1516import { RealtimeFlowOverlay } from './realtime-flow-overlay'17import { useRealtimeFlow } from '../hooks/use-realtime-flow'1819type RealtimeFlowProps = {20 channel: string21 className?: string22 style?: React.CSSProperties23 persistence?: boolean | SupabasePersistenceOptions24 initialNodes?: Node[]25 initialEdges?: Edge[]26 nodeTypes?: NodeTypes27 edgeTypes?: EdgeTypes28 height?: string | number29}3031const DEFAULT_HEIGHT = 5503233const RealtimeFlowContent = ({34 channel,35 className,36 style,37 persistence,38 initialNodes,39 initialEdges,40 nodeTypes,41 edgeTypes,42 height = DEFAULT_HEIGHT,43}: RealtimeFlowProps) => {44 const { nodes, edges, synced, syncError, onNodesChange, onEdgesChange, onConnect } =45 useRealtimeFlow({46 channel,47 persistence,48 initialNodes,49 initialEdges,50 })5152 return (53 <div style={{ height, position: 'relative', ...style }} className={className}>54 <ReactFlow55 nodes={synced ? nodes : []}56 edges={synced ? edges : []}57 onNodesChange={synced ? onNodesChange : undefined}58 onEdgesChange={synced ? onEdgesChange : undefined}59 onConnect={synced ? onConnect : undefined}60 nodeTypes={nodeTypes}61 edgeTypes={edgeTypes}62 fitView63 >64 <Background />65 <Controls />66 </ReactFlow>67 {!synced && !syncError && <RealtimeFlowOverlay status="syncing" />}68 {!synced && syncError && <RealtimeFlowOverlay status="error" message={syncError} />}69 </div>70 )71}7273const RealtimeFlow = (props: RealtimeFlowProps) => (74 <ReactFlowProvider>75 <RealtimeFlowContent {...props} />76 </ReactFlowProvider>77)7879export { RealtimeFlow }
What it pulls in
npm packages
Files it writes
More from Supabase UI Library
All 37 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Current User Avatarcurrent-user-avatar-nextjs | Supabase UI Library | Components | Unverified | 2 deps · 6 files | |
| Current User Avatarcurrent-user-avatar-react | Supabase UI Library | Components | Unverified | 1 dep · 4 files | |
| Current User Avatarcurrent-user-avatar-react-router | Supabase UI Library | Components | Unverified | 2 deps · 5 files | |
| Current User Avatarcurrent-user-avatar-tanstack | Supabase UI Library | Components | Unverified | 2 deps · 5 files | |
| Dropzone (File Upload)dropzone-nextjs | Supabase UI Library | Components | Unverified | 4 deps · 5 files | |
| Dropzone (File Upload)dropzone-react | Supabase UI Library | Components | Unverified | 3 deps · 3 files | |
| Dropzone (File Upload)dropzone-react-router | Supabase UI Library | Components | Unverified | 4 deps · 4 files | |
| Dropzone (File Upload)dropzone-tanstack | Supabase UI Library | Components | Unverified | 4 deps · 4 files |
