Files
OpenNoodl/dev-docs/tasks/phase-3-editor-ux-overhaul/TASK-012-blockly-integration/NOTES.md
Richard Osborne 554dd9f3b4 feat(blockly): Phase A foundation - Blockly setup, custom blocks, and generators
- Install blockly package (~500KB)
- Create BlocklyWorkspace React component with serialization
- Define custom Noodl blocks (Input/Output, Variables, Objects, Arrays)
- Implement JavaScript code generators for all custom blocks
- Add theme-aware styling for Blockly workspace
- Export initialization functions for easy integration

Part of TASK-012: Blockly Visual Logic Integration
2026-01-11 13:30:13 +01:00

2.2 KiB

TASK-012 Working Notes

Use this file to capture discoveries, decisions, and research during implementation.


Research Notes

Blockly Documentation References

Key Blockly Concepts

  • Workspace: The canvas where blocks are placed
  • Toolbox: The sidebar menu of available blocks
  • Block Definition: JSON or JS object defining block appearance and connections
  • Generator: Function that converts block to code
  • Mutator: Dynamic block that can change shape (e.g., if/elseif/else)

Blockly React Integration

Options:

  1. @blockly/react - Official React wrapper (may have limitations)
  2. Direct integration - Use Blockly.inject() in useEffect

Research needed: Which approach works better with our build system?


Design Decisions

Decision 1: [Topic]

Date: Context: Options: 1. 2.

Decision: Rationale:


Decision 2: [Topic]

Date: Context: Options: 1. 2.

Decision: Rationale:


Technical Discoveries

Discovery 1: [Topic]

Date: Finding:

Impact:


Questions to Resolve

  • Q1:
  • Q2:
  • Q3:

Code Snippets & Patterns

Pattern: [Name]

// Code here

Files to study:

  • packages/noodl-runtime/src/nodes/std-library/javascriptfunction.js - Function node pattern
  • packages/noodl-runtime/src/nodes/std-library/expression.js - Expression node pattern
  • packages/noodl-editor/src/editor/src/views/panels/propertyeditor/ - Property panel patterns

Meeting Notes / Discussions

[Date]: [Topic]

Participants: Summary: Action Items:


Open Issues

  1. Issue: Status: Notes:

  2. Issue: Status: Notes: