fix: extract images from rich text HTML to enable image description quick action
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 34s

This commit is contained in:
2026-05-02 23:41:46 +02:00
parent 01cf5ccad7
commit d0387cd9a0
4 changed files with 42 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
'use client'
import { useState, useEffect, useRef, useCallback, useTransition } from 'react'
import { useState, useEffect, useRef, useCallback, useTransition, useMemo } from 'react'
import { Note, CheckItem, NOTE_COLORS, NoteColor, NoteType } from '@/lib/types'
import { Button } from '@/components/ui/button'
import {
@@ -17,7 +17,7 @@ import { ComparisonModal } from '@/components/comparison-modal'
import { NoteTypeSelector } from '@/components/note-type-selector'
import { RichTextEditor } from '@/components/rich-text-editor'
import { useLanguage } from '@/lib/i18n'
import { cn } from '@/lib/utils'
import { cn, extractImagesFromHTML } from '@/lib/utils'
import {
updateNote,
toggleArchive,
@@ -130,6 +130,12 @@ export function NoteInlineEditor({
const [checkItems, setCheckItems] = useState<CheckItem[]>(note.checkItems || [])
const [noteType, setNoteType] = useState<NoteType>(note.type)
const isMarkdown = noteType === 'markdown'
const allImages = useMemo(() => {
const extracted = noteType === 'richtext' ? extractImagesFromHTML(content) : [];
return Array.from(new Set([...(note.images || []), ...extracted]));
}, [note.images, content, noteType]);
const [showMarkdownPreview, setShowMarkdownPreview] = useState(
defaultPreviewMode && (note.isMarkdown || false)
)
@@ -911,7 +917,7 @@ export function NoteInlineEditor({
onClose={() => setAiOpen(false)}
noteTitle={title}
noteContent={content}
noteImages={note.images || undefined}
noteImages={allImages}
onApplyToNote={(newContent) => {
setPreviousContent(content)
changeContent(newContent)
@@ -929,3 +935,6 @@ export function NoteInlineEditor({
</div>
)
}