fix: link post when image is saved

This commit is contained in:
2026-02-15 13:47:05 +01:00
parent 5f604362df
commit 3b0cb97ed2
3 changed files with 26 additions and 5 deletions

View File

@@ -1065,7 +1065,7 @@ const PostEditor: React.FC<PostEditorProps> = ({ postId }) => {
}, []);
// Handle image insertion from InsertModal (for media library)
const handleInsertImage = useCallback((url: string, alt: string) => {
const handleInsertImage = useCallback(async (url: string, alt: string, mediaId?: string) => {
const editor = editorRef.current as any;
if (!editor) return;
@@ -1078,8 +1078,18 @@ const PostEditor: React.FC<PostEditorProps> = ({ postId }) => {
forceMoveMarkers: true
}]);
// Link the media to this post if mediaId is provided (from media library)
if (mediaId) {
try {
await window.electronAPI?.postMedia.link(postId, mediaId);
console.log(`[Editor] Linked media ${mediaId} to post ${postId}`);
} catch (error) {
console.error('Failed to link media to post:', error);
}
}
setShowMediaSearch(false);
}, []);
}, [postId]);
// Configure Monaco before mount to add macro syntax highlighting
const handleEditorWillMount = (monaco: Monaco) => {

View File

@@ -34,7 +34,7 @@ type Tab = 'external' | 'internal';
interface InsertModalProps {
mode: InsertMode;
onInsertLink: (url: string, text?: string) => void;
onInsertImage: (url: string, alt: string) => void;
onInsertImage: (url: string, alt: string, mediaId?: string) => void;
onClose: () => void;
initialText?: string; // Selected text in editor
}
@@ -149,7 +149,8 @@ export const InsertModal: React.FC<InsertModalProps> = ({
if (url) {
// Extract filename without extension for alt text
const altText = result.originalName.replace(/\.[^.]+$/, '');
onInsertImage(url, altText);
// Pass mediaId so the editor can link this media to the post
onInsertImage(url, altText, result.id);
}
}
onClose();
@@ -162,7 +163,8 @@ export const InsertModal: React.FC<InsertModalProps> = ({
if (mode === 'link') {
onInsertLink(externalUrl, externalText || undefined);
} else {
onInsertImage(externalUrl, externalAlt || 'Image');
// External images don't have a mediaId
onInsertImage(externalUrl, externalAlt || 'Image', undefined);
}
onClose();
}, [mode, externalUrl, externalText, externalAlt, onInsertLink, onInsertImage, onClose]);