From 5ec8400c0e794f459197ded102bd7da167ba8435 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Thu, 1 Oct 2020 01:58:39 +0300 Subject: [PATCH] theme additions and fixes --- .../src/components/Button.js | 2 ++ .../src/components/LeftMenuTitle.js | 8 ++++-- .../src/components/ToolGroupComponent.js | 2 +- .../components/notes/NoteEditorContainer.js | 5 ++-- .../src/components/rightArea/RightArea.js | 9 ++---- .../src/components/tables/CreateTable.js | 2 ++ .../src/ui/comments/CommentBox.js | 2 +- .../src/ui/comments/CommentItem.js | 2 +- .../src/ui/comments/CommentItemList.js | 2 +- .../src/ui/tables/InsertTableTool.js | 8 +++++- .../src/ui/tabs/BlockElement.js | 6 ++++ .../src/ui/tabs/BlockLevelTools.js | 2 +- .../src/ui/tabs/Tabs.js | 4 ++- .../src/layouts/EditoriaLayout.js | 28 +++++++++++++------ .../src/WaxSelectionPlugin.js | 16 +++++------ .../src/BaseService/RedoService/Redo.js | 4 +++ .../src/BaseService/UndoService/Undo.js | 4 +++ .../src/coko-theme/index.js | 5 ++-- 18 files changed, 73 insertions(+), 38 deletions(-) diff --git a/wax-prosemirror-components/src/components/Button.js b/wax-prosemirror-components/src/components/Button.js index ed968a69a..cf7004cd1 100644 --- a/wax-prosemirror-components/src/components/Button.js +++ b/wax-prosemirror-components/src/components/Button.js @@ -1,3 +1,5 @@ +/* eslint react/prop-types: 0 */ + import React, { useContext } from 'react'; import { WaxContext } from 'wax-prosemirror-core'; import MenuButton from '../ui/buttons/MenuButton'; diff --git a/wax-prosemirror-components/src/components/LeftMenuTitle.js b/wax-prosemirror-components/src/components/LeftMenuTitle.js index 15c4ac188..b2743816a 100644 --- a/wax-prosemirror-components/src/components/LeftMenuTitle.js +++ b/wax-prosemirror-components/src/components/LeftMenuTitle.js @@ -1,10 +1,12 @@ -import React from "react"; -import styled from "styled-components"; +/* eslint react/prop-types: 0 */ + +import React from 'react'; +import styled from 'styled-components'; const LeftMenuStyled = styled.div` border-bottom: 1px solid #d9d9d9; color: #979797; - font-family: "Fira Sans"; + font-family: 'Fira Sans'; font-size: 15px; font-weight: bold; letter-spacing: 0.6px; diff --git a/wax-prosemirror-components/src/components/ToolGroupComponent.js b/wax-prosemirror-components/src/components/ToolGroupComponent.js index 8fc6f640b..cae23c1c4 100644 --- a/wax-prosemirror-components/src/components/ToolGroupComponent.js +++ b/wax-prosemirror-components/src/components/ToolGroupComponent.js @@ -1,5 +1,5 @@ +/* eslint react/prop-types: 0 */ import React from 'react'; -import { isFunction } from 'lodash'; import styled from 'styled-components'; import Dropdown from '../ui/buttons/Dropdown'; diff --git a/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js b/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js index 3d06af263..c9b73fbdb 100644 --- a/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js +++ b/wax-prosemirror-components/src/components/notes/NoteEditorContainer.js @@ -1,15 +1,16 @@ import React from 'react'; +import { grid } from '@pubsweet/ui-toolkit'; import styled from 'styled-components'; - import NoteNumber from './NoteNumber'; const NoteEditorContainerStyled = styled.div` display: flex; flex-direction: row; min-height: 28px; - width: 100%; + width: 90%; position: relative; margin-bottom: 5px; + padding-left: ${grid(10)}; `; const NoteStyled = styled.div` diff --git a/wax-prosemirror-components/src/components/rightArea/RightArea.js b/wax-prosemirror-components/src/components/rightArea/RightArea.js index 6e8935476..961f93a3e 100644 --- a/wax-prosemirror-components/src/components/rightArea/RightArea.js +++ b/wax-prosemirror-components/src/components/rightArea/RightArea.js @@ -32,12 +32,6 @@ export default ({ area }) => { let panelWrapperHeight = {}; if (main) { WaxSurface = main.dom.getBoundingClientRect(); - - if (area === 'main') { - } else { - panelWrapper = document.getElementsByClassName('panelWrapper'); - panelWrapperHeight = panelWrapper[0].getBoundingClientRect().height; - } } each(marksNodes[area], (markNode, pos) => { @@ -56,6 +50,9 @@ export default ({ area }) => { annotationTop = markNodeEl.getBoundingClientRect().top - WaxSurface.top; } else { + panelWrapper = document.getElementsByClassName('panelWrapper'); + panelWrapperHeight = panelWrapper[0].getBoundingClientRect().height; + markNodeEl = document .querySelector('#notes-container') .querySelector(`[data-id="${id}"]`); diff --git a/wax-prosemirror-components/src/components/tables/CreateTable.js b/wax-prosemirror-components/src/components/tables/CreateTable.js index aaac04e05..c7795ea5e 100644 --- a/wax-prosemirror-components/src/components/tables/CreateTable.js +++ b/wax-prosemirror-components/src/components/tables/CreateTable.js @@ -1,3 +1,5 @@ +/* eslint react/prop-types: 0 */ + import React, { useState, useContext } from 'react'; import { WaxContext } from 'wax-prosemirror-core'; diff --git a/wax-prosemirror-components/src/ui/comments/CommentBox.js b/wax-prosemirror-components/src/ui/comments/CommentBox.js index a9128114a..edd603589 100644 --- a/wax-prosemirror-components/src/ui/comments/CommentBox.js +++ b/wax-prosemirror-components/src/ui/comments/CommentBox.js @@ -99,7 +99,7 @@ CommentBox.propTypes = { PropTypes.shape({ content: PropTypes.string.isRequired, displayName: PropTypes.string.isRequired, - timestamp: PropTypes.string.isRequired, + timestamp: PropTypes.string.number, }), ), /** This comment's id in the document */ diff --git a/wax-prosemirror-components/src/ui/comments/CommentItem.js b/wax-prosemirror-components/src/ui/comments/CommentItem.js index 8a668f4e2..8b94334d1 100644 --- a/wax-prosemirror-components/src/ui/comments/CommentItem.js +++ b/wax-prosemirror-components/src/ui/comments/CommentItem.js @@ -51,7 +51,7 @@ CommentItem.propTypes = { /** Display name of user that made the comment */ displayName: PropTypes.string.isRequired, /** When the comment was made */ - timestamp: PropTypes.string.isRequired, + timestamp: PropTypes.number.isRequired, }; CommentItem.defaultProps = {}; diff --git a/wax-prosemirror-components/src/ui/comments/CommentItemList.js b/wax-prosemirror-components/src/ui/comments/CommentItemList.js index 4a4aa16ec..d1dc93628 100644 --- a/wax-prosemirror-components/src/ui/comments/CommentItemList.js +++ b/wax-prosemirror-components/src/ui/comments/CommentItemList.js @@ -72,7 +72,7 @@ CommentItemList.propTypes = { PropTypes.shape({ content: PropTypes.string.isRequired, displayName: PropTypes.string.isRequired, - timestamp: PropTypes.string.isRequired, + timestamp: PropTypes.number.isRequired, }), ), }; diff --git a/wax-prosemirror-components/src/ui/tables/InsertTableTool.js b/wax-prosemirror-components/src/ui/tables/InsertTableTool.js index 37168ed6d..9e85eaaf9 100644 --- a/wax-prosemirror-components/src/ui/tables/InsertTableTool.js +++ b/wax-prosemirror-components/src/ui/tables/InsertTableTool.js @@ -236,6 +236,12 @@ const TableGridSizeEditor = props => { position: 'relative', }; + const infoStyle = { + height: '20px', + fontSize: '14px', + marginLeft: '5px', + }; + return ( <div style={wrapperStyle} ref={_onRef}> <div @@ -245,7 +251,7 @@ const TableGridSizeEditor = props => { > {cells} </div> - <div> + <div style={infoStyle}> {rows} X {cols} </div> </div> diff --git a/wax-prosemirror-components/src/ui/tabs/BlockElement.js b/wax-prosemirror-components/src/ui/tabs/BlockElement.js index c8e853035..4dd07887c 100644 --- a/wax-prosemirror-components/src/ui/tabs/BlockElement.js +++ b/wax-prosemirror-components/src/ui/tabs/BlockElement.js @@ -1,10 +1,16 @@ import React from 'react'; import PropTypes from 'prop-types'; import styled from 'styled-components'; +import { th } from '@pubsweet/ui-toolkit'; + import Button from '../../components/Button'; const Wrapper = styled.div` display: flex; + button { + border-radius: 4px; + margin-left: 4px; + } `; const Box = styled.div` diff --git a/wax-prosemirror-components/src/ui/tabs/BlockLevelTools.js b/wax-prosemirror-components/src/ui/tabs/BlockLevelTools.js index f52e7b5b8..8f628c3d0 100644 --- a/wax-prosemirror-components/src/ui/tabs/BlockLevelTools.js +++ b/wax-prosemirror-components/src/ui/tabs/BlockLevelTools.js @@ -8,7 +8,7 @@ const Wrapper = styled.div` padding: 8px; > div:not(:last-child) { - margin-bottom: 8px; + margin-bottom: 20px; } `; diff --git a/wax-prosemirror-components/src/ui/tabs/Tabs.js b/wax-prosemirror-components/src/ui/tabs/Tabs.js index e2751296d..f460938b6 100644 --- a/wax-prosemirror-components/src/ui/tabs/Tabs.js +++ b/wax-prosemirror-components/src/ui/tabs/Tabs.js @@ -1,4 +1,5 @@ import React, { useState } from 'react'; +import { th } from '@pubsweet/ui-toolkit'; import PropTypes from 'prop-types'; import styled, { css } from 'styled-components'; import Icon from '../buttons/Icon'; @@ -11,10 +12,11 @@ const Wrapper = styled.div` const Tabs = styled.div` display: flex; flex-direction: column; + background: #e3e3e3; `; const activeTab = css` - box-shadow: 0 0 3px blue; + box-shadow: 0 0 3px ${th('colorPrimary')}; `; const Tab = styled.div` diff --git a/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js b/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js index e8c87ea4b..4cb3fa916 100644 --- a/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js +++ b/wax-prosemirror-layouts/src/layouts/EditoriaLayout.js @@ -48,6 +48,7 @@ const TopMenu = styled.div` display: flex; min-height: 40px; user-select: none; + background: ${th('colorBackgroundToolBar')} border-bottom: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')}; > div:not(:last-child) { @@ -57,6 +58,7 @@ const TopMenu = styled.div` `; const SideMenu = styled.div` + background: ${th('colorBackgroundToolBar')} border-right: ${th('borderWidth')} ${th('borderStyle')} ${th('colorBorder')}; min-width: 250px; height: 100%; @@ -72,6 +74,7 @@ const WaxSurfaceScroll = styled.div` box-sizing: border-box; height: 100%; width: 100%; + position: absolute; ${EditorElements}; `; @@ -88,34 +91,41 @@ const EditorContainer = styled.div` `; const CommentsContainer = styled.div` + background: ${th('colorBackgroundHue')}; display: flex; flex-direction: column; width: 35%; height: 100%; `; -const NotesAreaContainer = styled.div` +const CommentsContainerNotes = styled.div` background: ${th('colorBackgroundHue')}; + display: flex; + flex-direction: column; + width: 35%; + height: 100%; +`; + +const NotesAreaContainer = styled.div` display: flex; flex-direction: row; width: 100%; height: 100%; overflow-y: scroll; - padding-top: ${grid(1)}; + position: absolute; `; const NotesContainer = styled.div` counter-reset: footnote-view; display: flex; flex-direction: column; - padding-left: ${grid(10)}; padding-bottom: ${grid(4)}; height: 100%; width: 65%; `; -let surfaceHeight = 700; -let notesHeight = 150; +let surfaceHeight = 600; +let notesHeight = 200; const onResizeEnd = arr => { surfaceHeight = arr[0].size; @@ -162,8 +172,8 @@ const EditoriaLayout = ({ editor }) => { <PanelGroup direction="column" panelWidths={[ - { size: surfaceHeight, resize: 'dynamic' }, - { size: notesHeight, resize: 'dynamic' }, + { size: surfaceHeight, resize: 'stretch' }, + { size: notesHeight, resize: 'stretch' }, ]} onResizeEnd={onResizeEnd} > @@ -179,9 +189,9 @@ const EditoriaLayout = ({ editor }) => { <NotesContainer id="notes-container"> <NotesArea /> </NotesContainer> - <CommentsContainer> + <CommentsContainerNotes> <RightArea area="notes" /> - </CommentsContainer> + </CommentsContainerNotes> </NotesAreaContainer> )} </PanelGroup> diff --git a/wax-prosemirror-plugins/src/WaxSelectionPlugin.js b/wax-prosemirror-plugins/src/WaxSelectionPlugin.js index 40573224f..100f9c20e 100644 --- a/wax-prosemirror-plugins/src/WaxSelectionPlugin.js +++ b/wax-prosemirror-plugins/src/WaxSelectionPlugin.js @@ -16,15 +16,13 @@ const WaxSelectionPlugin = new Plugin({ if (node.type.name === 'footnote') flag = true; }); - if (sel && !flag) { - const decos = [ - Decoration.inline(sel.$from.pos, sel.$to.pos, { - class: 'wax-selection-marker', - }), - ]; - const deco = DecorationSet.create(editorState.doc, decos); - return { deco }; - } + const decos = [ + Decoration.inline(sel.$from.pos, sel.$to.pos, { + class: 'wax-selection-marker', + }), + ]; + const deco = DecorationSet.create(editorState.doc, decos); + return { deco }; return state; }, diff --git a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js index 7d0a8b008..2c090f96e 100644 --- a/wax-prosemirror-services/src/BaseService/RedoService/Redo.js +++ b/wax-prosemirror-services/src/BaseService/RedoService/Redo.js @@ -19,4 +19,8 @@ class Redo extends Tools { get enable() { return redo; } + + select(state) { + return redo(state); + } } diff --git a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js index e593e832c..50aa7e657 100644 --- a/wax-prosemirror-services/src/BaseService/UndoService/Undo.js +++ b/wax-prosemirror-services/src/BaseService/UndoService/Undo.js @@ -19,4 +19,8 @@ class Undo extends Tools { get enable() { return undo; } + + select(state) { + return undo(state); + } } diff --git a/wax-prosemirror-themes/src/coko-theme/index.js b/wax-prosemirror-themes/src/coko-theme/index.js index 96d3fe6a0..783cf10c5 100644 --- a/wax-prosemirror-themes/src/coko-theme/index.js +++ b/wax-prosemirror-themes/src/coko-theme/index.js @@ -7,17 +7,18 @@ import { css } from 'styled-components'; const cokoTheme = { /* Colors */ colorBackground: 'white', - colorPrimary: 'teal', + colorPrimary: '#808080', colorSecondary: '#E7E7E7', colorFurniture: '#CCC', colorBorder: '#AAA', - colorBackgroundHue: '#F1F1F1', + colorBackgroundHue: '#F7F7F7', colorSuccess: '#008800', colorError: 'indianred', colorText: '#111', colorTextReverse: '#FFF', colorTextPlaceholder: '#595959', colorWarning: '#ffc107', + colorBackgroundToolBar: '#D9D9D9', /*Buttons*/ colorButton: '#777', -- GitLab