From eee57953d0300ab369689312f50facb0679f2db3 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Mon, 11 Jan 2021 18:30:29 +0200 Subject: [PATCH] feat(ui): toggle track changes based on config --- editors/editoria/src/Editoria.js | 1 + editors/editoria/src/config/config.js | 23 ++++++++++++++++-- .../EditingSuggestingDropDown.js | 24 +++++++++---------- 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/editors/editoria/src/Editoria.js b/editors/editoria/src/Editoria.js index d0077c0e2..5719bf380 100644 --- a/editors/editoria/src/Editoria.js +++ b/editors/editoria/src/Editoria.js @@ -59,6 +59,7 @@ const Editoria = () => { placeholder="Type Something..." fileUpload={file => renderImage(file)} value={demo} + // readonly layout={layout} // onChange={source => console.log(source)} user={user} diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js index e67d9686e..485a423cc 100644 --- a/editors/editoria/src/config/config.js +++ b/editors/editoria/src/config/config.js @@ -107,8 +107,27 @@ export default { TitleService: { updateTitle }, RulesService: [emDash, ellipsis], ShortCutsService: {}, - EnableTrackChangeService: { enabled: false }, - + EnableTrackChangeService: { enabled: false, toggle: true }, + AcceptTrackChangeService: { + own: { + accept: true, + reject: true, + }, + others: { + accept: true, + reject: true, + }, + }, + RejectTrackChangeService: { + own: { + accept: true, + reject: true, + }, + others: { + accept: true, + reject: true, + }, + }, PmPlugins: [ columnResizing(), tableEditing(), diff --git a/wax-prosemirror-components/src/components/editingSuggesting/EditingSuggestingDropDown.js b/wax-prosemirror-components/src/components/editingSuggesting/EditingSuggestingDropDown.js index 830a4bb49..845dd8fef 100644 --- a/wax-prosemirror-components/src/components/editingSuggesting/EditingSuggestingDropDown.js +++ b/wax-prosemirror-components/src/components/editingSuggesting/EditingSuggestingDropDown.js @@ -1,5 +1,5 @@ /* eslint react/prop-types: 0 */ -import React, { useMemo, useContext } from 'react'; +import React, { useMemo, useContext, useEffect } from 'react'; import styled from 'styled-components'; import { WaxContext } from 'wax-prosemirror-core'; import Dropdown from 'react-dropdown'; @@ -8,13 +8,13 @@ import Icon from '../../helpers/Icon'; import TrackChangesBox from '../trackChanges/TrackChangesBox'; const DropdownStyled = styled(Dropdown)` - cursor: not-allowed; display: inline-flex; opacity: ${props => (props.select ? 1 : 0.4)}; - pointer-events: ${props => (props.select ? 'default' : 'none')}; .Dropdown-control { border: none; + cursor: ${props => (props.select ? 'default' : 'not-allowed')}; + pointer-events: ${props => (props.select ? 'default' : 'none')}; } .Dropdown-arrow { @@ -70,22 +70,20 @@ const Viewing = () => { const dropDownOptions = [ { label: <Editing />, value: 'editing' }, { label: <Suggesting />, value: 'suggesting' }, - { label: <Viewing />, value: 'viewing' }, ]; const EditingSuggesting = ({ view: { dispatch, state }, item }) => { - const { activeView, app } = useContext(WaxContext); + const { app } = useContext(WaxContext); + const isDisabled = app.config.get('config.EnableTrackChangeService').toggle; - const isDisabled = item.select(activeView.state); - - const enableDisabletrackChanges = () => { + const enableDisableTrackChanges = () => { app.config.get('config.EnableTrackChangeService').enabled = !app.config.get( 'config.EnableTrackChangeService', ).enabled; }; const selectedOption = () => { - if (app.config.get('config.EnableTrackChangeService').enabled === true) + if (app.config.get('config.EnableTrackChangeService').enabled) return dropDownOptions[1]; return dropDownOptions[0]; @@ -95,16 +93,18 @@ const EditingSuggesting = ({ view: { dispatch, state }, item }) => { () => ( <DropdownStyled onChange={option => { - return enableDisabletrackChanges(); + return enableDisableTrackChanges(); }} options={dropDownOptions} - value={selectedOption()} select={isDisabled} + value={selectedOption()} /> ), - [isDisabled], + [], ); + if (app.config.get('readonly')) return <Viewing />; + return EditingSuggestingComponent; }; -- GitLab