From 64c2855042a82118c8f3c33670201d130e2acd65 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 9 Jan 2020 19:51:40 +0200
Subject: [PATCH] title node

---
 wax-prosemirror-schema/src/nodes/authorNode.js  |  2 +-
 wax-prosemirror-schema/src/nodes/titleNode.js   | 17 ++++++++++-------
 .../TitleService/TitleService.js                |  8 ++++++++
 .../src/DisplayBlockLevel/index.js              |  4 ++--
 .../src/TextStyleService/TextStyle.js           |  6 ++----
 .../src/TextStyleService/tools/index.js         |  1 -
 .../DisplayToolGroupService/Display.js          |  4 ++--
 7 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/wax-prosemirror-schema/src/nodes/authorNode.js b/wax-prosemirror-schema/src/nodes/authorNode.js
index a19909f2c..632b104e9 100644
--- a/wax-prosemirror-schema/src/nodes/authorNode.js
+++ b/wax-prosemirror-schema/src/nodes/authorNode.js
@@ -1,4 +1,4 @@
-import { parseFormatList, parseTracks, blockLevelToDOM } from "./helpers";
+import { parseTracks, blockLevelToDOM } from "./helpers";
 const author = {
   content: "inline*",
   group: "block",
diff --git a/wax-prosemirror-schema/src/nodes/titleNode.js b/wax-prosemirror-schema/src/nodes/titleNode.js
index 0a6f528b1..c7c2b1bf0 100644
--- a/wax-prosemirror-schema/src/nodes/titleNode.js
+++ b/wax-prosemirror-schema/src/nodes/titleNode.js
@@ -1,3 +1,4 @@
+import { parseTracks, blockLevelToDOM } from "./helpers";
 const title = {
   content: "inline*",
   group: "block",
@@ -10,17 +11,19 @@ const title = {
   parseDOM: [
     {
       tag: "p.title",
-      getAttrs(dom) {
-        return {
+      getAttrs(hook, next) {
+        Object.assign(hook, {
           class: dom.getAttribute("class"),
-          track: parseTracks(dom.dataset.track)
-        };
+          track: parseTracks(hook.dom.dataset.track)
+        });
+        next();
       }
     }
   ],
-  toDOM(node) {
-    const attrs = blockLevelToDOM(node);
-    return ["p", attrs, 0];
+  toDOM(hook, next) {
+    const attrs = blockLevelToDOM(hook.node);
+    hook.value = ["p", attrs, 0];
+    next();
   }
 };
 
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js
index e1586b222..05221017b 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/TitleService/TitleService.js
@@ -1,4 +1,5 @@
 import Service from "wax-prosemirror-core/src/services/Service";
+import { titleNode } from "wax-prosemirror-schema";
 import Title from "./Title";
 
 class TitleService extends Service {
@@ -6,6 +7,13 @@ class TitleService extends Service {
 
   register() {
     this.container.bind("Title").to(Title);
+    const createNode = this.container.get("CreateNode");
+    createNode(
+      {
+        title: titleNode
+      },
+      { toWaxSchema: true }
+    );
   }
 }
 
diff --git a/wax-prosemirror-services/src/DisplayBlockLevel/index.js b/wax-prosemirror-services/src/DisplayBlockLevel/index.js
index 3661a97fe..b6bb3a227 100644
--- a/wax-prosemirror-services/src/DisplayBlockLevel/index.js
+++ b/wax-prosemirror-services/src/DisplayBlockLevel/index.js
@@ -5,9 +5,9 @@ import SubTitleService from "./SubTitleService/SubTitleService";
 import TitleService from "./TitleService/TitleService";
 
 export default [
-  new AuthorService()
+  new AuthorService(),
   // new EpigraphPoetryService(),
   // new HeadingService(),
   // new SubTitleService(),
-  // new TitleService()
+  new TitleService()
 ];
diff --git a/wax-prosemirror-services/src/TextStyleService/TextStyle.js b/wax-prosemirror-services/src/TextStyleService/TextStyle.js
index f00cb6d29..c2df3f684 100644
--- a/wax-prosemirror-services/src/TextStyleService/TextStyle.js
+++ b/wax-prosemirror-services/src/TextStyleService/TextStyle.js
@@ -19,8 +19,7 @@ export default class Annotation extends ToolGroup {
     @inject("Heading2") heading2,
     @inject("Heading3") heading3,
     @inject("Plain") plain,
-    @inject("Subtitle") subtitle,
-    @inject("Title") title
+    @inject("Subtitle") subtitle
   ) {
     super();
     this.tools = [
@@ -30,8 +29,7 @@ export default class Annotation extends ToolGroup {
       heading2,
       heading3,
       plain,
-      subtitle,
-      title
+      subtitle
     ];
   }
 }
diff --git a/wax-prosemirror-services/src/TextStyleService/tools/index.js b/wax-prosemirror-services/src/TextStyleService/tools/index.js
index 7a9b47da0..c4f818be1 100644
--- a/wax-prosemirror-services/src/TextStyleService/tools/index.js
+++ b/wax-prosemirror-services/src/TextStyleService/tools/index.js
@@ -4,5 +4,4 @@ export { default as Heading1 } from "./Heading1";
 export { default as Heading2 } from "./Heading2";
 export { default as Heading3 } from "./Heading3";
 export { default as Plain } from "./Plain";
-export { default as Title } from "./Title";
 export { default as Subtitle } from "./Subtitle";
diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js
index af73f1889..3599246f4 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/Display.js
@@ -13,9 +13,9 @@ class Display extends ToolGroup {
       </span>
     );
   };
-  constructor(@inject("Author") author) {
+  constructor(@inject("Author") author, @inject("Title") title) {
     super();
-    this.tools = [author];
+    this.tools = [title, author];
   }
 }
 
-- 
GitLab