Skip to content
Snippets Groups Projects
Commit d116858f authored by chris's avatar chris
Browse files

Enable track changes tool

parent a1af00d5
No related branches found
No related tags found
1 merge request!143Track changes
...@@ -23,6 +23,7 @@ import { ...@@ -23,6 +23,7 @@ import {
CommentsService, CommentsService,
CodeBlockService, CodeBlockService,
CodeBlockToolGroupService, CodeBlockToolGroupService,
TrackChangeToolGroupService,
} from 'wax-prosemirror-services'; } from 'wax-prosemirror-services';
import { WaxSelectionPlugin } from 'wax-prosemirror-plugins'; import { WaxSelectionPlugin } from 'wax-prosemirror-plugins';
...@@ -48,6 +49,7 @@ export default { ...@@ -48,6 +49,7 @@ export default {
'Images', 'Images',
'CodeBlock', 'CodeBlock',
'Tables', 'Tables',
'TrackChange',
], ],
}, },
{ {
...@@ -92,5 +94,6 @@ export default { ...@@ -92,5 +94,6 @@ export default {
new ListToolGroupService(), new ListToolGroupService(),
new CodeBlockService(), new CodeBlockService(),
new CodeBlockToolGroupService(), new CodeBlockToolGroupService(),
new TrackChangeToolGroupService(),
], ],
}; };
import React from 'react';
import { injectable } from 'inversify';
import { isEmpty } from 'lodash';
import Tools from '../../lib/Tools';
export default
@injectable()
class EnableTrackChange extends Tools {
title = 'Select Options';
content = 'table';
get run() {
return () => {
return true;
};
}
get enable() {
return state => {
return true;
};
}
select(state) {
return true;
}
renderTool(view) {
if (isEmpty(view)) return null;
return this._isDisplayed ? <button type="button"> Track </button> : null;
}
}
import Service from '../../Service';
import EnableTrackChange from './EnableTrackChange';
class EnableTrackChangeService extends Service {
boot() {}
register() {
this.container.bind('EnableTrackChange').to(EnableTrackChange);
}
}
export default EnableTrackChangeService;
import Service from "../Service"; import { trackChangesMarks, trackChangesNodes } from 'wax-prosemirror-schema';
import { trackChangesMarks, trackChangesNodes } from "wax-prosemirror-schema"; import Service from '../Service';
import TrackChangeServices from './index';
class TrackChangeService extends Service { class TrackChangeService extends Service {
boot() {} boot() {}
register() { register() {
const createMark = this.container.get("CreateMark"); const createMark = this.container.get('CreateMark');
const createNode = this.container.get("CreateNode"); const createNode = this.container.get('CreateNode');
Object.keys(trackChangesMarks).forEach(mark => { Object.keys(trackChangesMarks).forEach(mark => {
createMark( createMark(
{ {
[mark]: trackChangesMarks[mark] [mark]: trackChangesMarks[mark],
}, },
{ toWaxSchema: true } { toWaxSchema: true },
); );
}); });
Object.keys(trackChangesNodes).forEach(node => { Object.keys(trackChangesNodes).forEach(node => {
createNode( createNode(
{ {
[node]: trackChangesNodes[node] [node]: trackChangesNodes[node],
}, },
{ toWaxSchema: true } { toWaxSchema: true },
); );
}); });
} }
dependencies = TrackChangeServices;
} }
export default TrackChangeService; export default TrackChangeService;
import EnableTrackChangeService from './EnableTrackChangeService/EnableTrackChangeService';
export default [new EnableTrackChangeService()];
...@@ -4,9 +4,9 @@ import ToolGroup from '../../lib/ToolGroup'; ...@@ -4,9 +4,9 @@ import ToolGroup from '../../lib/ToolGroup';
@injectable() @injectable()
class TrackChange extends ToolGroup { class TrackChange extends ToolGroup {
tools = []; tools = [];
constructor() { constructor(@inject('EnableTrackChange') enableTrackChange) {
super(); super();
this.tools = []; this.tools = [enableTrackChange];
} }
} }
......
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