diff --git a/CHANGELOG.md b/CHANGELOG.md index c94a2eea..bd0190d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### 🎨 Enhancements - [#406](https://github.com/estruyf/vscode-front-matter/issues/406): Added support for single data entries in the data dashboard +- [#428](https://github.com/estruyf/vscode-front-matter/issues/428): Improved UX for inserting images to your content ### ⚡️ Optimizations diff --git a/src/dashboardWebView/components/Media/Item.tsx b/src/dashboardWebView/components/Media/Item.tsx index 46e7bc38..5c1f2845 100644 --- a/src/dashboardWebView/components/Media/Item.tsx +++ b/src/dashboardWebView/components/Media/Item.tsx @@ -41,6 +41,10 @@ export const Item: React.FunctionComponent = ({media}: React.PropsWi const selectedFolder = useRecoilValue(SelectedMediaFolderSelector); const viewData = useRecoilValue(ViewDataSelector); + const hasViewData = useMemo(() => { + return viewData?.data?.filePath !== undefined; + }, [viewData]); + const [referenceElement, setReferenceElement] = useState(null); const [popperElement, setPopperElement] = useState(null); const { styles, attributes, forceUpdate } = usePopper(referenceElement, popperElement, { @@ -57,6 +61,10 @@ export const Item: React.FunctionComponent = ({media}: React.PropsWi return keys.filter(key => (settings.snippets || {})[key].isMediaSnippet).map(key => ({ title: key, ...(settings.snippets || {})[key]})); }, [settings]); + const showMediaSnippet = useMemo(() => { + return viewData?.data?.position && mediaSnippets.length > 0; + }, [viewData, mediaSnippets]); + const getFolder = () => { if (settings?.wsFolder && media.fsPath) { let relPath = media.fsPath.split(settings.wsFolder).pop(); @@ -350,15 +358,15 @@ export const Item: React.FunctionComponent = ({media}: React.PropsWi }, [media.fsPath]); useEffect(() => { - if (!viewData?.data?.filePath) { + if (!hasViewData) { clearFormData(); } - }, [viewData]); + }, [viewData, hasViewData]); return ( <>
  • - + + { + (viewData?.data?.position && mediaSnippets.length > 0) && ( +
    + +
    + ) + } + + ) + }
    @@ -443,7 +477,7 @@ export const Item: React.FunctionComponent = ({media}: React.PropsWi viewData?.data?.filePath ? ( <> Insert image markdown
    } + title={
    Insert image
    } onClick={insertToArticle} /> {