diff --git a/wax-prosemirror-components/src/components/images/ImageUpload.js b/wax-prosemirror-components/src/components/images/ImageUpload.js index bbdc2c850ef77f836034481361b0dba305cf3e4a..16fab00a547c36983f8d2d1437c94c7263579b9a 100644 --- a/wax-prosemirror-components/src/components/images/ImageUpload.js +++ b/wax-prosemirror-components/src/components/images/ImageUpload.js @@ -1,6 +1,7 @@ /* eslint react/prop-types: 0 */ import React, { useContext, useRef, useMemo } from 'react'; import { WaxContext } from 'wax-prosemirror-core'; +import { TextSelection } from 'prosemirror-state'; import styled from 'styled-components'; import MenuButton from '../../ui/buttons/MenuButton'; import insertImage from './Upload'; @@ -12,17 +13,32 @@ const Wrapper = styled.div` `; const ImageUpload = ({ item, fileUpload, view }) => { + const context = useContext(WaxContext); const { app, activeView, + activeViewId, view: { main }, - } = useContext(WaxContext); + } = context; const inputRef = useRef(null); const placeholderPlugin = app.PmPlugins.get('imagePlaceHolder'); const imageServiceConfig = app.config.get('config.ImageService'); const handleMouseDown = () => { + if (activeViewId !== 'main') { + context.view.main.dispatch( + context.view.main.state.tr + .setMeta('outsideView', activeViewId) + .setSelection( + new TextSelection( + context.view.main.state.tr.doc.resolve( + 4 + context.view[activeViewId].state.selection.to, + ), + ), + ), + ); + } if (imageServiceConfig && imageServiceConfig.handleAssetManager) { insertThroughFileMAnager(); } else { @@ -51,7 +67,10 @@ const ImageUpload = ({ item, fileUpload, view }) => { active={false} disabled={isDisabled} iconName={item.icon} - onMouseDown={handleMouseDown} + onMouseDown={e => { + e.preventDefault(); + handleMouseDown(); + }} title="Upload Image" /> diff --git a/wax-prosemirror-services/src/ImageService/Image.js b/wax-prosemirror-services/src/ImageService/Image.js index 2364d816d94407033dea96ce3d9757b218c19605..501a6aa0c4e3e761ddaffe6d93ae677fd3abfa63 100644 --- a/wax-prosemirror-services/src/ImageService/Image.js +++ b/wax-prosemirror-services/src/ImageService/Image.js @@ -1,7 +1,5 @@ /* eslint-disable no-underscore-dangle */ -import React, { useContext, useRef, useEffect } from 'react'; -import { WaxContext } from 'wax-prosemirror-core'; - +import React from 'react'; import { v4 as uuidv4 } from 'uuid'; import { isEmpty } from 'lodash'; import { injectable } from 'inversify'; @@ -39,8 +37,6 @@ class Image extends Tools { renderTool(view) { if (isEmpty(view)) return null; - const context = useContext(WaxContext); - console.log(context.activeViewId); const upload = fileUpload( view, this.config.get('fileUpload'),