Skip to content
Snippets Groups Projects
Commit c21f3c79 authored by Christos's avatar Christos
Browse files

Merge branch 'editoria-fixes' into 'master'

Editoria fixes

See merge request !258
parents f8e67390 855053ec
No related branches found
No related tags found
1 merge request!258Editoria fixes
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
"@guardian/prosemirror-invisibles": "^1.2.0", "@guardian/prosemirror-invisibles": "^1.2.0",
"@pubsweet/ui-toolkit": "^2.3.1", "@pubsweet/ui-toolkit": "^2.3.1",
"fontsource-merriweather": "^3.0.9", "fontsource-merriweather": "^3.0.9",
"prosemirror-tables": "^1.1.0", "prosemirror-tables": "^1.1.1",
"react": "^16.13.1", "react": "^16.13.1",
"react-dom": "^16.13.1", "react-dom": "^16.13.1",
"react-panelgroup": "^1.0.10", "react-panelgroup": "^1.0.10",
......
...@@ -17,6 +17,7 @@ const ConnectedCommentStyled = styled.div` ...@@ -17,6 +17,7 @@ const ConnectedCommentStyled = styled.div`
`; `;
export default ({ comment, top, commentId, recalculateTops }) => { export default ({ comment, top, commentId, recalculateTops }) => {
const context = useContext(WaxContext);
const { const {
view, view,
view: { view: {
...@@ -26,7 +27,7 @@ export default ({ comment, top, commentId, recalculateTops }) => { ...@@ -26,7 +27,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
}, },
app, app,
activeView, activeView,
} = useContext(WaxContext); } = context;
const [isActive, setIsActive] = useState(false); const [isActive, setIsActive] = useState(false);
const [clickPost, setClickPost] = useState(false); const [clickPost, setClickPost] = useState(false);
...@@ -53,6 +54,7 @@ export default ({ comment, top, commentId, recalculateTops }) => { ...@@ -53,6 +54,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
useEffect(() => { useEffect(() => {
setIsActive(false); setIsActive(false);
recalculateTops();
if (activeComment && commentId === activeComment.attrs.id) { if (activeComment && commentId === activeComment.attrs.id) {
setIsActive(true); setIsActive(true);
recalculateTops(); recalculateTops();
...@@ -92,6 +94,8 @@ export default ({ comment, top, commentId, recalculateTops }) => { ...@@ -92,6 +94,8 @@ export default ({ comment, top, commentId, recalculateTops }) => {
return false; return false;
} }
if (viewId !== 'main') context.updateView({}, viewId);
const maxPos = maxBy(allCommentsWithSameId, 'pos'); const maxPos = maxBy(allCommentsWithSameId, 'pos');
maxPos.pos += last(allCommentsWithSameId).node.nodeSize; maxPos.pos += last(allCommentsWithSameId).node.nodeSize;
...@@ -120,6 +124,7 @@ export default ({ comment, top, commentId, recalculateTops }) => { ...@@ -120,6 +124,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
}); });
// if (allCommentsWithSameId.length > 1); // if (allCommentsWithSameId.length > 1);
// maxPos += last(allCommentsWithSameId).node.nodeSize; // maxPos += last(allCommentsWithSameId).node.nodeSize;
recalculateTops();
dispatch(state.tr.removeMark(minPos, maxPos, commentMark)); dispatch(state.tr.removeMark(minPos, maxPos, commentMark));
activeView.focus(); activeView.focus();
}; };
...@@ -138,7 +143,7 @@ export default ({ comment, top, commentId, recalculateTops }) => { ...@@ -138,7 +143,7 @@ export default ({ comment, top, commentId, recalculateTops }) => {
onClickResolve(); onClickResolve();
activeView.focus(); activeView.focus();
} }
}, 200); }, 400);
}; };
const MemorizedComponent = useMemo( const MemorizedComponent = useMemo(
......
...@@ -19,7 +19,8 @@ const ConnectedTrackChangeStyled = styled.div` ...@@ -19,7 +19,8 @@ const ConnectedTrackChangeStyled = styled.div`
`; `;
export default ({ trackChangeId, top, recalculateTops, trackChange }) => { export default ({ trackChangeId, top, recalculateTops, trackChange }) => {
const { app, activeView, view } = useContext(WaxContext); const context = useContext(WaxContext);
const { app, activeView, view } = context;
const user = app.config.get('user'); const user = app.config.get('user');
const [isActive, setIsActive] = useState(false); const [isActive, setIsActive] = useState(false);
const { state, dispatch } = activeView; const { state, dispatch } = activeView;
...@@ -37,6 +38,8 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => { ...@@ -37,6 +38,8 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => {
const onClickBox = trackData => { const onClickBox = trackData => {
if (trackData.node) return focusOnBlcock(trackData); if (trackData.node) return focusOnBlcock(trackData);
if (viewId !== 'main') context.updateView({}, viewId);
const allTracksWithSameId = DocumentHelpers.findAllMarksWithSameId( const allTracksWithSameId = DocumentHelpers.findAllMarksWithSameId(
view[viewId].state, view[viewId].state,
trackData, trackData,
...@@ -67,6 +70,7 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => { ...@@ -67,6 +70,7 @@ export default ({ trackChangeId, top, recalculateTops, trackChange }) => {
useEffect(() => { useEffect(() => {
setIsActive(false); setIsActive(false);
recalculateTops();
if (activeTrackChange && trackChangeId === activeTrackChange.attrs.id) { if (activeTrackChange && trackChangeId === activeTrackChange.attrs.id) {
setIsActive(true); setIsActive(true);
recalculateTops(); recalculateTops();
......
...@@ -25,6 +25,10 @@ export default class LinkTool extends Tools { ...@@ -25,6 +25,10 @@ export default class LinkTool extends Tools {
}; };
} }
select = state => {
return Commands.isOnSameTextBlock(state);
};
get active() { get active() {
return state => { return state => {
return Commands.markActive(state.config.schema.marks.link)(state); return Commands.markActive(state.config.schema.marks.link)(state);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
import React, { useEffect, useRef, useContext, useMemo } from 'react'; import React, { useEffect, useRef, useContext, useMemo } from 'react';
import { filter } from 'lodash'; import { filter } from 'lodash';
import { EditorView } from 'prosemirror-view'; import { EditorView } from 'prosemirror-view';
import { EditorState } from 'prosemirror-state'; import { EditorState, TextSelection } from 'prosemirror-state';
import { StepMap } from 'prosemirror-transform'; import { StepMap } from 'prosemirror-transform';
import { baseKeymap } from 'prosemirror-commands'; import { baseKeymap } from 'prosemirror-commands';
import { keymap } from 'prosemirror-keymap'; import { keymap } from 'prosemirror-keymap';
...@@ -37,6 +37,14 @@ export default ({ node, view }) => { ...@@ -37,6 +37,14 @@ export default ({ node, view }) => {
// This is the magic part // This is the magic part
dispatchTransaction, dispatchTransaction,
handleDOMEvents: { handleDOMEvents: {
blur: () => {
context.view[noteId].dispatch(
context.view[noteId].state.tr.setSelection(
new TextSelection(context.view[noteId].state.tr.doc.resolve(0)),
),
);
},
mousedown: () => { mousedown: () => {
context.updateView({}, noteId); context.updateView({}, noteId);
clickInNote = true; clickInNote = true;
......
...@@ -14600,17 +14600,6 @@ prosemirror-state@1.3.3, prosemirror-state@>=1.0.0, prosemirror-state@^1.0.0, pr ...@@ -14600,17 +14600,6 @@ prosemirror-state@1.3.3, prosemirror-state@>=1.0.0, prosemirror-state@^1.0.0, pr
prosemirror-model "^1.0.0" prosemirror-model "^1.0.0"
prosemirror-transform "^1.0.0" prosemirror-transform "^1.0.0"
   
prosemirror-tables@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.0.tgz#e7fc65e57a44759b0b999d8c71294f79e5a4d54b"
integrity sha512-E00+KSbDw65966GdiLBpqTNxIextw0RavlGmvdv/dyYbN9OTD0gzaoCU1S8MAbz4GLKmY9Y/g4nSiC1IL1ThQg==
dependencies:
prosemirror-keymap "^1.1.2"
prosemirror-model "^1.8.1"
prosemirror-state "^1.3.1"
prosemirror-transform "^1.2.1"
prosemirror-view "^1.13.3"
prosemirror-tables@^1.1.1: prosemirror-tables@^1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz#ad66300cc49500455cf1243bb129c9e7d883321e" resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz#ad66300cc49500455cf1243bb129c9e7d883321e"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment