fix: link post when image is saved
This commit is contained in:
@@ -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) => {
|
||||
|
||||
@@ -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]);
|
||||
|
||||
Reference in New Issue
Block a user