fix: use RichEditor with readOnly prop instead of raw HTML for locked/invalidated offers
RichEditor now supports readOnly prop — hides toolbar and disables editing via ReactQuill's built-in readOnly. Content renders with proper Quill CSS (list margins, indentation, fonts) instead of broken browser defaults from dangerouslySetInnerHTML. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1097,22 +1097,13 @@ export default function OfferDetail() {
|
||||
|
||||
<div style={{ marginTop: '0.5rem' }}>
|
||||
<label className="admin-form-label">Obsah</label>
|
||||
{(isInvalidated || isLockedByOther) ? (
|
||||
<div className="rich-editor">
|
||||
<div
|
||||
className="ql-editor"
|
||||
style={{ minHeight: '80px', background: 'var(--bg-primary)', border: '1px solid var(--border-color)', borderRadius: 'var(--border-radius-sm)', cursor: 'default', overflowWrap: 'anywhere', wordBreak: 'break-word' }}
|
||||
dangerouslySetInnerHTML={{ __html: section.content || '<em style="color: var(--text-tertiary)">Prázdný obsah</em>' }}
|
||||
/>
|
||||
</div>
|
||||
) : (
|
||||
<RichEditor
|
||||
value={section.content}
|
||||
onChange={(val) => setSections(prev => prev.map((s, i) => i === idx ? { ...s, content: val } : s))}
|
||||
placeholder="Obsah sekce..."
|
||||
minHeight="120px"
|
||||
/>
|
||||
)}
|
||||
<RichEditor
|
||||
value={section.content}
|
||||
onChange={(val) => setSections(prev => prev.map((s, i) => i === idx ? { ...s, content: val } : s))}
|
||||
placeholder="Obsah sekce..."
|
||||
minHeight="120px"
|
||||
readOnly={isInvalidated || isLockedByOther}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user