From 43b7f974e92a5498fdd8c04fd03399e08b8fafa9 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 6 Jan 2022 12:07:10 +0200 Subject: [PATCH] =?UTF-8?q?=C3=ADmage=20upload=20position?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/images/ImageUpload.js | 23 +++++++++++++++++-- .../src/ImageService/Image.js | 6 +---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/wax-prosemirror-components/src/components/images/ImageUpload.js b/wax-prosemirror-components/src/components/images/ImageUpload.js index bbdc2c850..16fab00a5 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 2364d816d..501a6aa0c 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'), -- GitLab