From d59d38cb1c621fcb61b4c941e5e094613452a199 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 7 May 2020 11:52:28 +0300
Subject: [PATCH] add file

---
 wax-prosemirror-core/src/WaxContext.js | 51 ++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 wax-prosemirror-core/src/WaxContext.js

diff --git a/wax-prosemirror-core/src/WaxContext.js b/wax-prosemirror-core/src/WaxContext.js
new file mode 100644
index 000000000..a4e012e9d
--- /dev/null
+++ b/wax-prosemirror-core/src/WaxContext.js
@@ -0,0 +1,51 @@
+import React, { useContext, useState } from "react";
+
+export const WaxContext = React.createContext({
+  view: {},
+  activeView: {},
+  activeViewId: null,
+  app: null,
+  updateView: null,
+  updateActiveView: null
+});
+
+export default props => {
+  const [context, setContext] = useState({
+    app: props.app,
+    view: props.view || {},
+    activeView: props.activeView || {},
+    activeViewId: props.activeViewId || {},
+    updateView: (newView, activeViewId) => {
+      const view = Object.assign(context.view, newView);
+      const activeView = view[activeViewId || context.activeViewId];
+      setContext({
+        ...context,
+        view,
+        activeView: activeView,
+        activeViewId: activeViewId || context.activeViewId
+      });
+    }
+  });
+
+  return (
+    <WaxContext.Provider
+      value={{
+        ...context
+      }}
+    >
+      {props.children}
+    </WaxContext.Provider>
+  );
+};
+
+export const useInjection = identifier => {
+  const { app: { container } } = useContext(WaxContext);
+
+  if (!container) {
+    throw new Error();
+  }
+
+  return container.isBound(identifier)
+    ? { instance: container.get(identifier) }
+    : null;
+};
-- 
GitLab