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

6.7 KiB

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:

/* 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:

<Box 
  position="relative"
  borderWidth="1px" 
  borderColor={borderColor}
  borderRadius="md" 
  overflow="hidden"  // ❌ This was hiding content
  bg={bgColor}
  sx={{...

After:

<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:

// 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

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:
cd frontend
rm -rf node_modules package-lock.json
npm install
  1. Verify package versions in package.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:

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:

  • Toolbar with formatting buttons is visible
  • Editor textarea is visible with at least 200px height
  • User can click and type in the editor
  • Text formatting works (bold, italic, headers, etc.)
  • Image insertion works
  • 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