Files
MyClub/DOCS/RICH_TEXT_EDITOR_VISIBILITY_FIX.md
Tomas Dvorak 087f30e82c dev day #80
2025-11-02 21:31:00 +01:00

91 lines
3.3 KiB
Markdown

# Rich Text Editor Visibility Fix
**Date:** October 21, 2025
**Issue:** Quill rich text editor not visible in admin forms
## Problem
The rich text editor was rendering but completely invisible - no toolbar, no text area, nothing. This affected article creation, activity forms, and any other admin page using the editor.
## Root Cause
The Quill CSS files (`quill.snow.css`) were being imported at the component level in `CustomRichEditor.tsx`, but these imports weren't being processed correctly by the CRACO/Create React App webpack build system. This is a common issue with third-party CSS libraries.
## Solution Applied
### 1. Moved CSS Imports to Global Entry Point
**File:** `frontend/src/index.tsx`
Added the following imports at the top of the file (after other CSS imports):
```typescript
// Quill editor styles (MUST be imported globally)
import 'react-quill/dist/quill.snow.css';
import 'react-image-crop/dist/ReactCrop.css';
import './styles/custom-editor.css';
```
### 2. Removed Duplicate Component Imports
**File:** `frontend/src/components/common/CustomRichEditor.tsx`
Removed the CSS imports from the component since they're now loaded globally:
```typescript
// REMOVED (now in index.tsx):
// import 'react-quill/dist/quill.snow.css';
// import 'react-image-crop/dist/ReactCrop.css';
// import '../../styles/custom-editor.css';
```
### 3. Documentation Update
**File:** `DOCS/ADMIN_TROUBLESHOOTING.md`
Added troubleshooting section #14 documenting this issue and solution for future reference.
## What You Need to Do
### 1. Restart Frontend Dev Server (REQUIRED)
```bash
cd frontend
npm start
# or if using Docker:
docker-compose restart frontend
```
**Important:** CSS changes in `index.tsx` require a full restart - hot reload won't work!
### 2. Clear Browser Cache
After restarting:
- Hard refresh: `Ctrl+Shift+R` (Windows/Linux) or `Cmd+Shift+R` (Mac)
- Or clear browser cache completely
### 3. Verify the Fix
Navigate to any admin page with the editor (e.g., `/admin/articles`):
- ✅ You should see the rich text editor toolbar with formatting buttons
- ✅ White text area should be visible
- ✅ Editor should be fully functional with all controls
## Technical Details
### Why This Happened
Component-level CSS imports work differently depending on your build setup:
- Webpack/CRACO may tree-shake or defer CSS that's imported in components
- Third-party libraries like Quill expect their CSS to load before the component mounts
- Global imports in `index.tsx` ensure CSS loads immediately at app startup
### Best Practice
For critical third-party UI libraries (Quill, DatePicker, Crop tools, etc.), always import CSS globally in `index.tsx` rather than at the component level.
## Files Modified
1.`frontend/src/index.tsx` - Added global CSS imports
2.`frontend/src/components/common/CustomRichEditor.tsx` - Removed duplicate imports
3.`DOCS/ADMIN_TROUBLESHOOTING.md` - Added documentation
## Testing Checklist
- [ ] Restart frontend dev server
- [ ] Clear browser cache
- [ ] Test article creation - editor visible?
- [ ] Test activity creation - editor visible?
- [ ] Test about page editing - editor visible?
- [ ] Test image upload in editor - working?
- [ ] Test all formatting buttons - functional?
## Status
**FIXED** - Changes applied and documented. Awaiting dev server restart and verification.