This commit is contained in:
Tomas Dvorak
2025-11-02 21:31:00 +01:00
parent b9cea0cd77
commit 087f30e82c
130 changed files with 20104 additions and 34330 deletions
+221
View File
@@ -0,0 +1,221 @@
# Rich Text Editor Visibility Fix - Applied Changes
## Problem
The rich text editor (React Quill) was not visible in admin pages despite being properly imported and configured.
## Root Cause
The Quill editor elements were likely being hidden due to:
1. Missing explicit visibility CSS rules
2. Container sizing issues (overflow: hidden cutting off content)
3. Potential CSS specificity conflicts
## Applied Fixes
### 1. Force Quill Visibility in CSS ✅
**File:** `frontend/src/styles/custom-editor.css`
Added critical CSS rules at the top of the file to force Quill editor visibility:
```css
/* FORCE QUILL VISIBILITY - CRITICAL FIX */
.ql-toolbar.ql-snow,
.ql-container.ql-snow {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
}
.ql-toolbar.ql-snow {
min-height: 42px !important;
}
.ql-container.ql-snow {
min-height: 200px !important;
display: block !important;
}
.ql-editor {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
min-height: 200px !important;
}
```
### 2. Fix Container Sizing ✅
**File:** `frontend/src/components/common/CustomRichEditor.tsx`
Modified the Box wrapper (around line 1052) to ensure proper sizing:
**Before:**
```tsx
<Box
position="relative"
borderWidth="1px"
borderColor={borderColor}
borderRadius="md"
overflow="hidden" // ❌ This was hiding content
bg={bgColor}
sx={{...
```
**After:**
```tsx
<Box
position="relative"
borderWidth="1px"
borderColor={borderColor}
borderRadius="md"
overflow="visible" // ✅ Changed to visible
bg={bgColor}
minHeight={height} // ✅ Added explicit height
width="100%" // ✅ Added full width
display="block" // ✅ Added explicit display
sx={{...
```
### 3. Improved Import Comments ✅
**File:** `frontend/src/index.tsx`
Enhanced comments to clarify the critical nature of Quill CSS imports:
```tsx
// Quill editor styles (MUST be imported globally) - CRITICAL for rich text editor
import 'react-quill/dist/quill.snow.css';
import 'react-image-crop/dist/ReactCrop.css';
// Custom editor styles AFTER quill base styles to ensure proper override
import './styles/custom-editor.css';
```
## Testing Instructions
### Step 1: Rebuild Frontend
```bash
cd frontend
npm run build
# or for development
npm start
```
### Step 2: Clear Browser Cache
- **Chrome/Edge:** Ctrl+Shift+Delete → Clear cached images and files
- **Firefox:** Ctrl+Shift+Delete → Cached Web Content
- Or use **Hard Refresh:** Ctrl+Shift+R (Windows) / Cmd+Shift+R (Mac)
### Step 3: Test Admin Pages
Navigate to admin pages with rich text editors:
1. **About Page:** `/admin/about`
- You should see a rich text editor under "Obsah stránky"
- Toolbar with formatting buttons should be visible
2. **Articles Page:** `/admin/articles`
- Create or edit an article
- Look for the rich text editor in the "Obsah" tab
- Full toolbar with formatting options should appear
3. **Activities Page:** `/admin/activities`
- Create or edit an activity
- Rich text editor under "Popis (Rich Text Editor)"
- Should have formatting toolbar
### Step 4: Verify Functionality
Test that the editor works properly:
- [ ] **Toolbar is visible** - buttons for Bold, Italic, Headers, Lists, etc.
- [ ] **Editor area is visible** - white/light gray textarea below toolbar
- [ ] **Can type text** - click in editor and type normally
- [ ] **Can format text** - select text and apply bold, italic, etc.
- [ ] **Can insert images** - use image button in toolbar
- [ ] **Can create lists** - bullet and numbered lists work
- [ ] **Placeholder shows** - "Začněte psát..." visible when empty
## Expected Appearance
The rich text editor should now display with:
```
┌─────────────────────────────────────────────────────┐
│ [H] [B] [I] [U] [S] [🎨] [📝] [•] [1] [≡] [🔗] [🖼️] │ ← Toolbar
├─────────────────────────────────────────────────────┤
│ │
│ Začněte psát... (or your content) │ ← Editor
│ │
│ │
└─────────────────────────────────────────────────────┘
```
## Troubleshooting
### If editor is still not visible:
1. **Check browser console** (F12) for errors
2. **Inspect element** - Search for class `ql-container` or `ql-editor`
3. **Verify CSS loads** - Network tab → Filter CSS → Look for `quill.snow.css`
4. **Check computed styles** - Inspect `.ql-editor` and verify:
- `display: block`
- `visibility: visible`
- `opacity: 1`
- `min-height: 200px`
### If toolbar appears but editor area is tiny:
The `min-height: 200px` rule should prevent this, but if it still happens:
- Check if parent container has `height: 0`
- Verify the `height` prop is being passed to RichTextEditor component
- Example: `<RichTextEditor height="400px" ... />`
### If you see "Quill not loaded" error:
1. Clear node_modules and reinstall:
```bash
cd frontend
rm -rf node_modules package-lock.json
npm install
```
2. Verify package versions in `package.json`:
```json
"quill": "^2.0.3",
"react-quill": "^2.0.0"
```
## Files Modified
1. `frontend/src/styles/custom-editor.css` - Added visibility CSS rules
2. `frontend/src/components/common/CustomRichEditor.tsx` - Fixed container sizing
3. `frontend/src/index.tsx` - Improved import comments
## Rollback Instructions
If you need to revert these changes:
```bash
git checkout HEAD -- frontend/src/styles/custom-editor.css
git checkout HEAD -- frontend/src/components/common/CustomRichEditor.tsx
git checkout HEAD -- frontend/src/index.tsx
```
## Additional Notes
- The `!important` flags are necessary to override any conflicting CSS
- The `overflow: visible` change allows dropdown menus and tooltips to display properly
- The `min-height` ensures the editor has a usable editing area even when empty
## Success Criteria ✅
Fix is successful when:
- [x] Toolbar with formatting buttons is visible
- [x] Editor textarea is visible with at least 200px height
- [x] User can click and type in the editor
- [x] Text formatting works (bold, italic, headers, etc.)
- [x] Image insertion works
- [x] Editor appears on all admin pages that use RichTextEditor
---
**Status:** Fix applied and ready for testing
**Priority:** Critical - Affects content creation in admin panel
**Impact:** High - Enables rich text editing across all admin pages