mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-03-08 01:53:30 +01:00
Added new github integration tasks
This commit is contained in:
@@ -4,6 +4,87 @@ This document captures important discoveries and gotchas encountered during Open
|
||||
|
||||
---
|
||||
|
||||
## ✅ VersionControlPanel is Already React! (Jan 18, 2026)
|
||||
|
||||
### The Good News: No jQuery Rewrite Needed
|
||||
|
||||
**Context**: Phase 3 TASK-002B GitHub Advanced Integration - Concerned that extending the existing VersionControlPanel with GitHub features would require a jQuery-to-React rewrite.
|
||||
|
||||
**GREAT NEWS**: The entire VersionControlPanel is already **100% modern React**!
|
||||
|
||||
**What Was Verified**:
|
||||
|
||||
```
|
||||
VersionControlPanel/
|
||||
├── VersionControlPanel.tsx ✅ React (useState, useEffect, useRef)
|
||||
├── context/ ✅ React Context API
|
||||
│ └── index.tsx
|
||||
├── components/
|
||||
│ ├── LocalChanges.tsx ✅ React functional component
|
||||
│ ├── History.tsx ✅ React functional component
|
||||
│ ├── HistoryCommitDiff.tsx ✅ React functional component
|
||||
│ ├── CommitChangesDiff.tsx ✅ React functional component
|
||||
│ ├── DiffList.tsx ✅ React functional component
|
||||
│ ├── BranchList.tsx ✅ React functional component
|
||||
│ ├── BranchMerge.tsx ✅ React functional component
|
||||
│ ├── MergeConflicts.tsx ✅ React functional component
|
||||
│ └── Stashes.tsx ✅ React functional component
|
||||
└── hooks/
|
||||
└── useShowComponentDiffDocument.ts ✅ React hook
|
||||
```
|
||||
|
||||
**Modern Patterns Already in Use**:
|
||||
|
||||
- React hooks (useState, useEffect, useRef)
|
||||
- Context API (VersionControlContext)
|
||||
- TypeScript throughout
|
||||
- @noodl-core-ui design system components
|
||||
- NO jQuery anywhere (except PopupLayer which is separate system)
|
||||
|
||||
**Visual Diff System Already Works**:
|
||||
The "green nodes for additions, red for deletions" visual diff is already implemented:
|
||||
|
||||
1. Click any commit in History tab
|
||||
2. `HistoryCommitDiff.tsx` shows the diff
|
||||
3. `CommitChangesDiff.tsx` fetches project.json diff
|
||||
4. `DiffList.tsx` renders component-level changes
|
||||
5. `useShowComponentDiffDocument` opens visual node graph diff
|
||||
|
||||
**Integration Strategy**:
|
||||
Instead of creating a separate GitHubPanel, extend VersionControlPanel:
|
||||
|
||||
```typescript
|
||||
// Just add new tabs to existing panel
|
||||
<Tabs
|
||||
tabs={[
|
||||
{ id: 'changes', content: <LocalChanges /> }, // Existing
|
||||
{ id: 'history', content: <History /> }, // Existing
|
||||
{ id: 'issues', content: <IssuesTab /> }, // NEW (11-16 hours)
|
||||
{ id: 'prs', content: <PullRequestsTab /> } // NEW
|
||||
]}
|
||||
/>
|
||||
```
|
||||
|
||||
**Why This Matters**:
|
||||
|
||||
- **No rewrite needed** - Just add React components to existing React panel
|
||||
- **Shared context** - Can extend VersionControlContext with GitHub state
|
||||
- **Visual diffs work** - The killer feature is already implemented
|
||||
- **Familiar UX** - Users already know the Version Control panel
|
||||
|
||||
**Time Saved**: Estimated 50+ hours saved vs creating separate panel or rewriting jQuery.
|
||||
|
||||
**Documentation**: Created `GIT-INTEGRATION-STRATEGY.md` with full implementation plan.
|
||||
|
||||
**Location**:
|
||||
|
||||
- Panel: `packages/noodl-editor/src/editor/src/views/panels/VersionControlPanel/`
|
||||
- Strategy: `dev-docs/tasks/phase-3-editor-ux-overhaul/TASK-002B-github-advanced-integration/GIT-INTEGRATION-STRATEGY.md`
|
||||
|
||||
**Keywords**: VersionControlPanel, React, GitHub integration, visual diff, DiffList, History, no jQuery, extend existing panel
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ CRITICAL ARCHITECTURE PATTERNS
|
||||
|
||||
These fundamental patterns apply across ALL Noodl development. Understanding them prevents hours of debugging.
|
||||
|
||||
Reference in New Issue
Block a user