Files
ALwrity/docs/LINKEDIN_WRITER_DEBUGGING_GUIDE.md

212 lines
7.0 KiB
Markdown

# LinkedIn Writer Debugging Guide - Loading State and Draft Display Issues
## 🐛 **Issue Description**
The LinkedIn post is being generated successfully in the backend, but:
1. **Progress loader is not getting hidden** after post generation completes
2. **Final generated post draft is not visible** to the end user
3. **Loading state persists** even after content generation
## 🔍 **Debugging Added**
I've added comprehensive debugging to track the entire flow from content generation to display:
### **1. LinkedIn Post Generation Action** (`RegisterLinkedInActions.tsx`)
**Added debugging for:**
- Content being sent to draft update
- Content length verification
- Loading state end confirmation
```typescript
// Debug: Log the content being sent
console.log('[LinkedIn Writer] Sending draft update:', fullContent?.substring(0, 100) + '...');
console.log('[LinkedIn Writer] Full content length:', fullContent?.length);
// End loading state
console.log('[LinkedIn Writer] Ending loading state...');
window.dispatchEvent(new CustomEvent('linkedinwriter:loadingEnd'));
```
### **2. LinkedIn Writer Hook** (`useLinkedInWriter.ts`)
**Added debugging for:**
- Draft update event handling
- Loading state clearing
- Progress completion
```typescript
const handleUpdateDraft = (event: CustomEvent) => {
console.log('[LinkedIn Writer] Draft updated:', event.detail?.substring(0, 100) + '...');
console.log('[LinkedIn Writer] Draft length:', event.detail?.length);
console.log('[LinkedIn Writer] Setting draft and clearing loading state...');
// ... state updates
console.log('[LinkedIn Writer] Draft update complete');
};
const handleLoadingEnd = (event: CustomEvent) => {
console.log('[LinkedIn Writer] Loading ended - clearing all loading states');
// ... state clearing
console.log('[LinkedIn Writer] Loading state cleared');
};
const handleProgressComplete = () => {
console.log('[LinkedIn Writer] Progress completed - hiding progress tracker');
// ... progress hiding
console.log('[LinkedIn Writer] Hiding progress steps after delay');
};
```
### **3. Content Editor Component** (`ContentEditor.tsx`)
**Added debugging for:**
- Draft content display
- Loading state visibility
- Content formatting
```typescript
{draft ? (
<div>
{/* Debug info */}
<div style={{ fontSize: '12px', color: '#999', marginBottom: '10px' }}>
Debug: Draft length: {draft.length}, isGenerating: {isGenerating.toString()}
</div>
<div dangerouslySetInnerHTML={{ __html: formatDraftContent(draft, citations, researchSources) }} />
</div>
) : (
// ... placeholder content
)}
```
### **4. Content Formatter** (`contentFormatters.ts`)
**Added debugging for:**
- Content formatting process
- Input validation
- Output verification
```typescript
export function formatDraftContent(content: string, citations?: any[], researchSources?: any[]): string {
console.log('🔍 [formatDraftContent] Called with:', {
contentLength: content?.length || 0,
contentPreview: content?.substring(0, 100) + '...',
citationsCount: citations?.length || 0,
researchSourcesCount: researchSources?.length || 0
});
// ... formatting logic
console.log('🔍 [formatDraftContent] Returning formatted content:', {
formattedLength: formatted.length,
formattedPreview: formatted.substring(0, 200) + '...'
});
return formatted;
}
```
## 🧪 **Testing Instructions**
### **1. Generate a LinkedIn Post**
1. Go to LinkedIn Writer
2. Open browser console (F12)
3. Generate a LinkedIn post
4. Watch the console logs
### **2. Expected Console Output**
**During Generation:**
```
[LinkedIn Writer] Loading started: { action: 'generateLinkedInPost', message: '...' }
[LinkedIn Writer] Progress completed - hiding progress tracker
[LinkedIn Writer] Sending draft update: [content preview]...
[LinkedIn Writer] Full content length: [number]
[LinkedIn Writer] Draft updated: [content preview]...
[LinkedIn Writer] Draft length: [number]
[LinkedIn Writer] Setting draft and clearing loading state...
[LinkedIn Writer] Draft update complete
[LinkedIn Writer] Progress completed - hiding progress tracker
[LinkedIn Writer] Ending loading state...
[LinkedIn Writer] Loading ended - clearing all loading states
[LinkedIn Writer] Loading state cleared
[LinkedIn Writer] Hiding progress steps after delay
```
**During Content Display:**
```
🔍 [formatDraftContent] Called with: { contentLength: [number], contentPreview: '...', citationsCount: [number], researchSourcesCount: [number] }
🔍 [formatDraftContent] Returning formatted content: { formattedLength: [number], formattedPreview: '...' }
```
### **3. Visual Debugging**
**In the Content Editor, you should see:**
```
Debug: Draft length: [number], isGenerating: false
[Generated content displayed here]
```
## 🔍 **What to Look For**
### **1. Missing Console Logs**
If any of the expected console logs are missing, it indicates where the flow is breaking:
- **Missing "Sending draft update"**: Issue in LinkedIn post generation action
- **Missing "Draft updated"**: Issue with event handling in hook
- **Missing "Loading ended"**: Issue with loading state clearing
- **Missing "formatDraftContent Called"**: Issue with content display
### **2. Content Issues**
- **Draft length: 0**: Content not being generated or passed correctly
- **isGenerating: true**: Loading state not being cleared
- **Empty formatted content**: Issue with content formatting
### **3. Event Flow Issues**
- **Events not being dispatched**: Check if API response is successful
- **Events not being received**: Check event listener registration
- **State not updating**: Check React state management
## 🚨 **Common Issues and Solutions**
### **Issue 1: Content Not Displaying**
**Symptoms**: Draft length shows 0, no content visible
**Possible Causes**:
- API response doesn't contain content
- Content not being passed to draft update event
- Content being cleared by another process
### **Issue 2: Loading State Not Clearing**
**Symptoms**: isGenerating remains true, progress loader visible
**Possible Causes**:
- Loading end event not being dispatched
- Loading end event not being received
- State update not triggering re-render
### **Issue 3: Progress Tracker Not Hiding**
**Symptoms**: Progress steps remain visible
**Possible Causes**:
- Progress complete event not being dispatched
- Progress complete event not being received
- Progress state not being cleared
## 📋 **Debugging Checklist**
- [ ] Check browser console for all expected logs
- [ ] Verify content length is > 0
- [ ] Verify isGenerating becomes false
- [ ] Verify progress tracker disappears
- [ ] Verify content is visible in editor
- [ ] Check for any JavaScript errors
- [ ] Verify API response contains content
- [ ] Check event listener registration
## 🎯 **Next Steps**
1. **Run the test** with debugging enabled
2. **Check console logs** for the expected flow
3. **Identify where the flow breaks** based on missing logs
4. **Fix the specific issue** found in the debugging
5. **Remove debugging code** once issue is resolved
The debugging will help pinpoint exactly where the issue occurs in the content generation and display flow.