mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
@metabuilder/hooks-core
Core React hooks for workflow UI applications built with Redux.
Key Feature: Service-independent hooks - use these with any Redux-compatible workflow implementation.
What's Included
Canvas Hooks
useCanvasZoom- Manage canvas zoom leveluseCanvasPan- Manage canvas pan/translationuseCanvasSelection- Manage selected items on canvasuseCanvasSettings- Manage grid, snap, and other canvas settingsuseCanvasGridUtils- Grid calculations and utilities
Editor Hooks
useEditor- Aggregated editor stateuseEditorZoom- Node editor zoom controluseEditorPan- Node editor pan controluseEditorNodes- Node selection and manipulationuseEditorEdges- Edge/connection selectionuseEditorSelection- General selection stateuseEditorClipboard- Copy/paste operationsuseEditorHistory- Undo/redo history
UI Hooks
useUI- Aggregated UI stateuseUIModals- Modal dialog stateuseUINotifications- Toast/notification managementuseUILoading- Global loading stateuseUITheme- Theme (light/dark) managementuseUISidebar- Sidebar visibility state
Utility Hooks
useCanvasVirtualization- Virtual scrolling for large canvasuseResponsiveSidebar- Responsive sidebar behaviorusePasswordValidation- Password strength validation
Installation
npm install @metabuilder/hooks-core react react-redux @metabuilder/redux-slices
Usage
import { useCanvasZoom, useEditorSelection, useUIModals } from '@metabuilder/hooks-core'
import { Provider } from 'react-redux'
import { store } from '@metabuilder/redux-slices' // Or your own store
function WorkflowEditor() {
const { zoom, zoomIn, zoomOut } = useCanvasZoom()
const { selectedNodeIds, selectNode } = useEditorSelection()
const { openModal } = useUIModals()
return (
<div>
<button onClick={zoomIn}>Zoom In ({zoom.toFixed(0)}%)</button>
<button onClick={zoomOut}>Zoom Out</button>
{/* Your editor UI */}
</div>
)
}
export default function App() {
return (
<Provider store={store}>
<WorkflowEditor />
</Provider>
)
}
Requirements
- React 18.0+
- Redux with workflow slices
- react-redux
Architecture
All hooks in this package:
- Are service-independent - no API calls, no database access
- Use Redux as source of truth - dispatch actions, select state
- Are framework-agnostic - work with any Redux setup
- Are type-safe - full TypeScript support
- Are composable - hooks are small and combine well
Future
These hooks will be extended with:
- Canvas operations (creation, deletion, layout)
- Workflow execution hooks
- Collaboration hooks (cursors, presence)
- Real-time sync hooks
Contributing
See main metabuilder repository for contribution guidelines.
License
MIT