@manuscripts/article-editor 1.15.3-LEAN-3604.2 → 1.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/cjs/EditorApp.js +11 -3
  2. package/dist/cjs/EditorApp.js.map +1 -1
  3. package/dist/cjs/Main.js +2 -4
  4. package/dist/cjs/Main.js.map +1 -1
  5. package/dist/cjs/index.js +2 -6
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/postgres-data/PsSource.js +5 -3
  8. package/dist/cjs/postgres-data/PsSource.js.map +1 -1
  9. package/dist/cjs/postgres-data/buildUtilities.js +30 -13
  10. package/dist/cjs/postgres-data/buildUtilities.js.map +1 -1
  11. package/dist/cjs/quarterback/QuarterBackDataSource.js +9 -11
  12. package/dist/cjs/quarterback/QuarterBackDataSource.js.map +1 -1
  13. package/dist/cjs/quarterback/useLoadDoc.js +7 -7
  14. package/dist/cjs/quarterback/useLoadDoc.js.map +1 -1
  15. package/dist/cjs/store/StoreContext.js +4 -10
  16. package/dist/cjs/store/StoreContext.js.map +1 -1
  17. package/dist/es/EditorApp.js +11 -3
  18. package/dist/es/EditorApp.js.map +1 -1
  19. package/dist/es/Main.js +2 -4
  20. package/dist/es/Main.js.map +1 -1
  21. package/dist/es/index.js +2 -3
  22. package/dist/es/index.js.map +1 -1
  23. package/dist/es/postgres-data/PsSource.js +5 -3
  24. package/dist/es/postgres-data/PsSource.js.map +1 -1
  25. package/dist/es/postgres-data/buildUtilities.js +30 -13
  26. package/dist/es/postgres-data/buildUtilities.js.map +1 -1
  27. package/dist/es/quarterback/QuarterBackDataSource.js +9 -11
  28. package/dist/es/quarterback/QuarterBackDataSource.js.map +1 -1
  29. package/dist/es/quarterback/useLoadDoc.js +7 -4
  30. package/dist/es/quarterback/useLoadDoc.js.map +1 -1
  31. package/dist/es/store/StoreContext.js +4 -10
  32. package/dist/es/store/StoreContext.js.map +1 -1
  33. package/dist/types/EditorApp.d.ts +14 -5
  34. package/dist/types/Main.d.ts +2 -12
  35. package/dist/types/index.d.ts +3 -13
  36. package/dist/types/postgres-data/buildUtilities.d.ts +1 -1
  37. package/dist/types/store/StoreContext.d.ts +3 -3
  38. package/package.json +3 -3
  39. package/dist/cjs/store/ParentObserver.js +0 -40
  40. package/dist/cjs/store/ParentObserver.js.map +0 -1
  41. package/dist/es/store/ParentObserver.js +0 -36
  42. package/dist/es/store/ParentObserver.js.map +0 -1
  43. package/dist/types/store/ParentObserver.d.ts +0 -33
@@ -54,7 +54,7 @@ const PlaceholderWrapper = styled_components_1.default.div `
54
54
  justify-content: center;
55
55
  align-items: center;
56
56
  `;
57
- const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions, fileManagement, files, authToken, }) => {
57
+ const EditorApp = ({ manuscriptID, projectID, permittedActions, fileManagement, files, authToken, observer, }) => {
58
58
  const userID = (0, user_1.getCurrentUserId)();
59
59
  const [store, setStore] = (0, react_1.useState)();
60
60
  const loadDoc = (0, useLoadDoc_1.useLoadDoc)(authToken);
@@ -63,7 +63,7 @@ const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions,
63
63
  // implement remount for the store if component is retriggered
64
64
  const basicSource = new store_1.BasicSource(fileManagement, projectID, manuscriptID, files, permittedActions, userID || '', authToken || '');
65
65
  const mainSource = new PsSource_1.default(files);
66
- (0, store_1.createStore)([basicSource, mainSource, quarterBackSource], undefined, undefined, parentObserver)
66
+ (0, store_1.createStore)([basicSource, mainSource, quarterBackSource], observer)
67
67
  .then((store) => {
68
68
  setStore(store);
69
69
  })
@@ -71,11 +71,19 @@ const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions,
71
71
  console.error(e);
72
72
  });
73
73
  return () => {
74
- parentObserver?.detach();
75
74
  store?.unmount();
76
75
  };
77
76
  // eslint-disable-next-line react-hooks/exhaustive-deps
78
77
  }, [manuscriptID, projectID]);
78
+ (0, react_1.useEffect)(() => {
79
+ if (!observer) {
80
+ return;
81
+ }
82
+ observer.state.current = {
83
+ get: () => store?.getState(),
84
+ update: (state) => store?.setState(state),
85
+ };
86
+ }, [observer, store]);
79
87
  return store ? (react_1.default.createElement(store_1.GenericStoreProvider, { store: store },
80
88
  react_1.default.createElement(react_router_dom_1.BrowserRouter, null,
81
89
  react_1.default.createElement(Page_1.Page, null,
@@ -1 +1 @@
1
- {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,+CAAkD;AAClD,uDAA0D;AAC1D,0EAAsC;AAEtC,4CAAwC;AACxC,4GAAmF;AACnF,uFAAmF;AACnF,qCAA6C;AAC7C,wEAA+C;AAC/C,gGAAuE;AACvE,yDAAqD;AACrD,mCAKgB;AAahB,MAAM,OAAO,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;;CAQzB,CAAA;AAED,MAAM,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAAoB,CAAC,EAClC,cAAc,EACd,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,GACV,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAA,uBAAgB,GAAE,CAAA;IAEjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAgB,CAAA;IAElD,MAAM,OAAO,GAAG,IAAA,uBAAU,EAAC,SAAS,CAAC,CAAA;IACrC,MAAM,iBAAiB,GAAG,IAAI,+BAAqB,CAAC,OAAO,CAAC,CAAA;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,mBAAW,CACjC,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,MAAM,IAAI,EAAE,EACZ,SAAS,IAAI,EAAE,CAChB,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,kBAAQ,CAAC,KAAK,CAAC,CAAA;QACtC,IAAA,mBAAW,EACT,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAC5C,SAAS,EACT,SAAS,EACT,cAAc,CACf;aACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,cAAc,EAAE,MAAM,EAAE,CAAA;YACxB,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BAAC,4BAAoB,IAAC,KAAK,EAAE,KAAK;QAChC,8BAAC,gCAAM;YACL,8BAAC,WAAI;gBACH,8BAAC,OAAO;oBACN,8BAAC,iCAAuB,OAAG,CACnB,CACL,CACA,CACY,CACxB,CAAC,CAAC,CAAC,CACF,8BAAC,kBAAkB;QACjB,8BAAC,6CAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,+CAAoE;AACpE,uDAA0D;AAC1D,0EAAsC;AAEtC,4CAAwC;AACxC,4GAAmF;AACnF,uFAAmF;AACnF,qCAA6C;AAC7C,wEAA+C;AAC/C,gGAAuE;AACvE,yDAAqD;AACrD,mCAMgB;AAuBhB,MAAM,OAAO,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;;CAQzB,CAAA;AAED,MAAM,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAA6B,CAAC,EAC3C,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAA,uBAAgB,GAAE,CAAA;IAEjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAgB,CAAA;IAElD,MAAM,OAAO,GAAG,IAAA,uBAAU,EAAC,SAAS,CAAC,CAAA;IACrC,MAAM,iBAAiB,GAAG,IAAI,+BAAqB,CAAC,OAAO,CAAC,CAAA;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,mBAAW,CACjC,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,MAAM,IAAI,EAAE,EACZ,SAAS,IAAI,EAAE,CAChB,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,kBAAQ,CAAC,KAAK,CAAC,CAAA;QACtC,IAAA,mBAAW,EAAC,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,QAAQ,CAAC;aAChE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;SACP;QACD,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;YACvB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;YAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAc,CAAC;SACnD,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAErB,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,8BAAC,4BAAoB,IAAC,KAAK,EAAE,KAAK;QAChC,8BAAC,gCAAM;YACL,8BAAC,WAAI;gBACH,8BAAC,OAAO;oBACN,8BAAC,iCAAuB,OAAG,CACnB,CACL,CACA,CACY,CACxB,CAAC,CAAC,CAAC,CACF,8BAAC,kBAAkB;QACjB,8BAAC,6CAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA"}
package/dist/cjs/Main.js CHANGED
@@ -19,10 +19,8 @@ const react_dnd_1 = require("react-dnd");
19
19
  const react_dnd_html5_backend_1 = require("react-dnd-html5-backend");
20
20
  const EditorApp_1 = __importDefault(require("./EditorApp"));
21
21
  const theme_1 = require("./theme/theme");
22
- // projectID="MPProject:E1895468-4DFE-4F17-9B06-5212ECD29555"
23
- // manuscriptID="MPManuscript:5F6D807F-CECF-45D0-B94C-5CF1361BDF05"
24
- const Main = ({ fileManagement, files, parentObserver, manuscriptID, projectID, authToken, permittedActions, }) => (react_1.default.createElement(react_dnd_1.DndProvider, { backend: react_dnd_html5_backend_1.HTML5Backend },
22
+ const Main = ({ fileManagement, files, manuscriptID, projectID, authToken, permittedActions, observer, }) => (react_1.default.createElement(react_dnd_1.DndProvider, { backend: react_dnd_html5_backend_1.HTML5Backend },
25
23
  react_1.default.createElement(theme_1.GlobalStyle, null),
26
- react_1.default.createElement(EditorApp_1.default, { fileManagement: fileManagement, files: files, parentObserver: parentObserver, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, authToken: authToken })));
24
+ react_1.default.createElement(EditorApp_1.default, { fileManagement: fileManagement, files: files, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, authToken: authToken, observer: observer })));
27
25
  exports.default = Main;
28
26
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/Main.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAGH,kDAAyB;AACzB,yCAAuC;AACvC,qEAAsD;AAEtD,4DAAmC;AAEnC,yCAA2C;AAY3C,6DAA6D;AAC7D,mEAAmE;AAEnE,MAAM,IAAI,GAAoB,CAAC,EAC7B,cAAc,EACd,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,GACjB,EAAE,EAAE,CAAC,CACJ,8BAAC,uBAAW,IAAC,OAAO,EAAE,sCAAY;IAChC,8BAAC,mBAAW,OAAG;IACf,8BAAC,mBAAS,IACR,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,GACpB,CACU,CACf,CAAA;AAED,kBAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/Main.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;AAEH,kDAAyB;AACzB,yCAAuC;AACvC,qEAAsD;AAEtD,4DAAuD;AACvD,yCAA2C;AAE3C,MAAM,IAAI,GAA6B,CAAC,EACtC,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,EAAE,EAAE,CAAC,CACJ,8BAAC,uBAAW,IAAC,OAAO,EAAE,sCAAY;IAChC,8BAAC,mBAAW,OAAG;IACf,8BAAC,mBAAS,IACR,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GAClB,CACU,CACf,CAAA;AAED,kBAAe,IAAI,CAAA"}
package/dist/cjs/index.js CHANGED
@@ -33,9 +33,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
33
  __setModuleDefault(result, mod);
34
34
  return result;
35
35
  };
36
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
38
- };
39
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
40
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
41
38
  };
@@ -52,10 +49,9 @@ const Main_1 = __importDefault(require("./Main"));
52
49
  const ThemeProvider_1 = require("./theme/ThemeProvider");
53
50
  var roles_1 = require("./lib/roles");
54
51
  Object.defineProperty(exports, "ProjectRole", { enumerable: true, get: function () { return roles_1.ProjectRole; } });
55
- __exportStar(require("./store/ParentObserver"), exports);
56
52
  var roles_2 = require("./lib/roles");
57
53
  Object.defineProperty(exports, "getUserRole", { enumerable: true, get: function () { return roles_2.getUserRole; } });
58
- const ManuscriptEditor = ({ fileManagement, files, parentObserver, manuscriptID, projectID, permittedActions, authToken, }) => {
54
+ const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, authToken, observer, }) => {
59
55
  (0, react_1.useMemo)(() => {
60
56
  if (authToken) {
61
57
  token_1.default.remove();
@@ -74,7 +70,7 @@ const ManuscriptEditor = ({ fileManagement, files, parentObserver, manuscriptID,
74
70
  return (react_1.default.createElement(react_1.default.Fragment, null,
75
71
  react_1.default.createElement(ThemeProvider_1.ThemeProvider, null,
76
72
  react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(Loading_1.LoadingPage, { className: 'loader' }, "Loading...") },
77
- react_1.default.createElement(Main_1.default, { fileManagement: fileManagement, files: files, authToken: authToken || '', parentObserver: parentObserver, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions }))),
73
+ react_1.default.createElement(Main_1.default, { fileManagement: fileManagement, files: files, authToken: authToken || '', manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, observer: observer }))),
78
74
  react_1.default.createElement("div", { id: "menu" }),
79
75
  react_1.default.createElement("div", { id: "notifications" }),
80
76
  react_1.default.createElement("div", { id: "size" })));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2BAAwB;AACxB,uBAAoB;AAGpB,4DAA+B;AAC/B,+CAAgD;AAEhD,kDAAkD;AAClD,wDAAsC;AAEtC,4DAAkC;AAClC,kDAAyB;AAEzB,yDAAqD;AAErD,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAEpB,yDAAsC;AACtC,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAYpB,MAAM,gBAAgB,GAAuC,CAAC,EAC5D,cAAc,EACd,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,GACV,EAAE,EAAE;IACH,IAAA,eAAO,EAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE;YACb,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,eAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,CAAC,+CAA+C;YAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,oBAAM,EAAe,SAAS,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;aACjC;YAED,iBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACnB;QACD,OAAO,GAAG,EAAE;YACV,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,iBAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL;QACE,8BAAC,6BAAa;YACZ,8BAAC,gBAAQ,IACP,QAAQ,EAAE,8BAAC,qBAAW,IAAC,SAAS,EAAE,QAAQ,iBAA0B;gBAEpE,8BAAC,cAAI,IACH,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,GAClC,CACO,CACG;QAChB,uCAAK,EAAE,EAAC,MAAM,GAAO;QACrB,uCAAK,EAAE,EAAC,eAAe,GAAO;QAC9B,uCAAK,EAAE,EAAC,MAAM,GAAO,CACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,mBAAmB,GAAG,eAAK,CAAC,IAAI,CAC3C,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACb,mHAAmH;IACnH,mIAAmI;IACnI,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAA,CAAC,sCAAsC;AACtF,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2BAAwB;AACxB,uBAAoB;AAEpB,4DAA+B;AAC/B,+CAAgD;AAEhD,kDAAkD;AAElD,wDAAsC;AAEtC,4DAAkC;AAClC,kDAAyB;AACzB,yDAAqD;AAErD,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAEpB,qCAAyC;AAAhC,oGAAA,WAAW,OAAA;AAQpB,MAAM,gBAAgB,GAA6B,CAAC,EAClD,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,IAAA,eAAO,EAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE;YACb,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,eAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,CAAC,+CAA+C;YAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,oBAAM,EAAe,SAAS,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;aACjC;YAED,iBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACnB;QACD,OAAO,GAAG,EAAE;YACV,eAAY,CAAC,MAAM,EAAE,CAAA;YACrB,iBAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL;QACE,8BAAC,6BAAa;YACZ,8BAAC,gBAAQ,IACP,QAAQ,EAAE,8BAAC,qBAAW,IAAC,SAAS,EAAE,QAAQ,iBAA0B;gBAEpE,8BAAC,cAAI,IACH,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,GAClB,CACO,CACG;QAChB,uCAAK,EAAE,EAAC,MAAM,GAAO;QACrB,uCAAK,EAAE,EAAC,eAAe,GAAO;QAC9B,uCAAK,EAAE,EAAC,MAAM,GAAO,CACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,mBAAmB,GAAG,eAAK,CAAC,IAAI,CAC3C,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACb,mHAAmH;IACnH,mIAAmI;IACnI,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAA,CAAC,sCAAsC;AACtF,CAAC,CACF,CAAA"}
@@ -15,9 +15,11 @@ class PsSource {
15
15
  if (state.userID && state.authToken) {
16
16
  this.api.setToken(state.authToken);
17
17
  }
18
- if (state.manuscriptID && state.projectID) {
19
- this.data = await (0, buildData_1.buildData)(state.projectID, state.manuscriptID, this.api);
20
- this.utilities = (0, buildUtilities_1.buildUtilities)(() => this.data, setState, this.api);
18
+ const projectID = state.projectID;
19
+ const manuscriptID = state.manuscriptID;
20
+ if (manuscriptID && projectID) {
21
+ this.data = await (0, buildData_1.buildData)(projectID, manuscriptID, this.api);
22
+ this.utilities = (0, buildUtilities_1.buildUtilities)(projectID, manuscriptID, () => this.data, setState, this.api);
21
23
  }
22
24
  next({ ...state, ...this.data, ...this.utilities });
23
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PsSource.js","sourceRoot":"","sources":["../../../src/postgres-data/PsSource.ts"],"names":[],"mappings":";;;;;AAeA,gDAAuB;AACvB,2CAAuC;AACvC,qDAAiD;AAEjD,MAAqB,QAAQ;IAM3B,YAAY,KAAuB;QASnC,gBAAW,GAAG,CAAC,KAAqB,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACnC;YACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE;gBACzC,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,qBAAS,EAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC1E,IAAI,CAAC,SAAS,GAAG,IAAA,+BAAc,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;aACrE;YACD,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA,CAAC,uCAAuC;QAC3D,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,QAAqB,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC7B,CAAC,CAAA;QA3BC,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,aAAa;QACb,4BAA4B;QAC5B,oGAAoG;QACpG,yBAAyB;IAC3B,CAAC;CAsBF;AAnCD,2BAmCC"}
1
+ {"version":3,"file":"PsSource.js","sourceRoot":"","sources":["../../../src/postgres-data/PsSource.ts"],"names":[],"mappings":";;;;;AAeA,gDAAuB;AACvB,2CAAuC;AACvC,qDAAiD;AAEjD,MAAqB,QAAQ;IAM3B,YAAY,KAAuB;QASnC,gBAAW,GAAG,CAAC,KAAqB,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACnC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YACvC,IAAI,YAAY,IAAI,SAAS,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,qBAAS,EAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC9D,IAAI,CAAC,SAAS,GAAG,IAAA,+BAAc,EAC7B,SAAS,EACT,YAAY,EACZ,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EACf,QAAQ,EACR,IAAI,CAAC,GAAG,CACT,CAAA;aACF;YACD,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA,CAAC,uCAAuC;QAC3D,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,QAAqB,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC7B,CAAC,CAAA;QAnCC,IAAI,CAAC,GAAG,GAAG,IAAI,aAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,aAAa;QACb,4BAA4B;QAC5B,oGAAoG;QACpG,yBAAyB;IAC3B,CAAC;CA8BF;AA3CD,2BA2CC"}
@@ -14,13 +14,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.buildUtilities = void 0;
15
15
  const json_schema_1 = require("@manuscripts/json-schema");
16
16
  const transform_1 = require("@manuscripts/transform");
17
+ const roles_1 = require("../lib/roles");
17
18
  const savingUtilities_1 = require("./savingUtilities");
18
- const buildUtilities = (getState, updateState, api) => {
19
+ const buildUtilities = (projectID, manuscriptID, getState, updateState, api) => {
19
20
  const nonPMModelsTypes = new Set([
20
21
  json_schema_1.ObjectTypes.Manuscript,
21
22
  json_schema_1.ObjectTypes.Project,
22
23
  ]);
23
- const updateContainerIDs = (model, projectID, manuscriptID) => {
24
+ const updateContainerIDs = (model) => {
24
25
  const containerIDs = {
25
26
  containerID: projectID,
26
27
  };
@@ -35,7 +36,7 @@ const buildUtilities = (getState, updateState, api) => {
35
36
  ...containerIDs,
36
37
  };
37
38
  };
38
- const saveProject = async (models, projectID) => {
39
+ const saveProject = async (models) => {
39
40
  try {
40
41
  const filtered = models.filter((m) => m.objectType !== json_schema_1.ObjectTypes.Project);
41
42
  await api.saveProject(projectID, filtered);
@@ -54,9 +55,7 @@ const buildUtilities = (getState, updateState, api) => {
54
55
  };
55
56
  const saveModels = async (models, excludeIDs) => {
56
57
  const state = getState();
57
- const projectID = state.projectID;
58
- const manuscriptID = state.manuscriptID;
59
- if (!state.modelMap || !manuscriptID || !projectID) {
58
+ if (!state.modelMap) {
60
59
  throw new Error('Unable to save due to incomplete data');
61
60
  }
62
61
  const modelMap = new Map();
@@ -70,7 +69,7 @@ const buildUtilities = (getState, updateState, api) => {
70
69
  if (!model._id) {
71
70
  throw new Error('Model ID required');
72
71
  }
73
- const updated = updateContainerIDs(model, projectID, manuscriptID);
72
+ const updated = updateContainerIDs(model);
74
73
  modelMap.set(model._id, updated);
75
74
  }
76
75
  updateState({
@@ -81,7 +80,7 @@ const buildUtilities = (getState, updateState, api) => {
81
80
  updateState({
82
81
  savingProcess: 'saving',
83
82
  });
84
- const result = await saveProject([...modelMap.values()], projectID);
83
+ const result = await saveProject([...modelMap.values()]);
85
84
  updateState({
86
85
  savingProcess: result ? 'saved' : 'failed',
87
86
  preventUnload: false,
@@ -99,10 +98,10 @@ const buildUtilities = (getState, updateState, api) => {
99
98
  };
100
99
  const saveManuscript = async (manuscript) => {
101
100
  const state = getState();
102
- if (!state.modelMap || !state.manuscriptID) {
101
+ if (!state.modelMap) {
103
102
  throw new Error('Unable to save manuscript due to incomplete data');
104
103
  }
105
- const previous = state.modelMap.get(state.manuscriptID);
104
+ const previous = state.modelMap.get(manuscriptID);
106
105
  await saveModel({
107
106
  ...previous,
108
107
  ...manuscript,
@@ -114,11 +113,9 @@ const buildUtilities = (getState, updateState, api) => {
114
113
  };
115
114
  const createSnapshot = async () => {
116
115
  const state = getState();
117
- const projectID = state.projectID;
118
- const manuscriptID = state.manuscriptID;
119
116
  const snapshots = state.snapshots;
120
117
  const snapshotsMap = state.snapshotsMap;
121
- if (!projectID || !manuscriptID || !snapshots || !snapshotsMap) {
118
+ if (!snapshots || !snapshotsMap) {
122
119
  throw new Error('Unable to create snapshot due to incomplete data');
123
120
  }
124
121
  const data = await api.createSnapshot(projectID, manuscriptID);
@@ -128,6 +125,25 @@ const buildUtilities = (getState, updateState, api) => {
128
125
  snapshotsMap: snapshotsMap.set(label.id, data.snapshot),
129
126
  });
130
127
  };
128
+ const refreshProject = async () => {
129
+ const state = getState();
130
+ const userID = state.userID;
131
+ if (!userID) {
132
+ return;
133
+ }
134
+ const models = await api.getManuscript(projectID, manuscriptID);
135
+ if (!models) {
136
+ return;
137
+ }
138
+ const project = models.filter((m) => m.objectType === json_schema_1.ObjectTypes.Project)[0];
139
+ if (!project) {
140
+ return;
141
+ }
142
+ updateState({
143
+ project,
144
+ userRole: (0, roles_1.getUserRole)(project, userID),
145
+ });
146
+ };
131
147
  return {
132
148
  saveModel,
133
149
  deleteModel,
@@ -136,6 +152,7 @@ const buildUtilities = (getState, updateState, api) => {
136
152
  saveModels,
137
153
  saveDoc,
138
154
  createSnapshot,
155
+ refreshProject,
139
156
  };
140
157
  };
141
158
  exports.buildUtilities = buildUtilities;
@@ -1 +1 @@
1
- {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/buildUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/buildUtilities.ts"],"names":[],"mappings":"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"}
@@ -5,17 +5,15 @@ class QuarterbackDataSource {
5
5
  this.build = async (state, next) => {
6
6
  if (state.projectID && state.manuscriptID && state.doc) {
7
7
  const res = await this.loadDoc(state.manuscriptID, state.projectID, state.doc);
8
- if (res?.doc && res.version) {
9
- if (res.doc) {
10
- next({
11
- ...state,
12
- doc: res.doc,
13
- initialDocVersion: res.version,
14
- snapshots: res.snapshots,
15
- snapshotsMap: new Map(),
16
- });
17
- return;
18
- }
8
+ if (res?.doc && res.version >= 0) {
9
+ next({
10
+ ...state,
11
+ doc: res.doc,
12
+ initialDocVersion: res.version,
13
+ snapshots: res.snapshots,
14
+ snapshotsMap: new Map(),
15
+ });
16
+ return;
19
17
  }
20
18
  }
21
19
  next({
@@ -1 +1 @@
1
- {"version":3,"file":"QuarterBackDataSource.js","sourceRoot":"","sources":["../../../src/quarterback/QuarterBackDataSource.ts"],"names":[],"mappings":";;AAgBA,MAAqB,qBAAqB;IAaxC,YAAY,OAAyC;QAGrD,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,EAAE;gBACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,GAAG,CACV,CAAA;gBACD,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;oBAC3B,IAAI,GAAG,CAAC,GAAG,EAAE;wBACX,IAAI,CAAC;4BACH,GAAG,KAAK;4BACR,GAAG,EAAE,GAAG,CAAC,GAAG;4BACZ,iBAAiB,EAAE,GAAG,CAAC,OAAO;4BAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,YAAY,EAAE,IAAI,GAAG,EAA8B;yBACpD,CAAC,CAAA;wBACF,OAAM;qBACP;iBACF;aACF;YACD,IAAI,CAAC;gBACH,GAAG,KAAK;gBACR,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,IAAI,GAAG,EAA8B;aACpD,CAAC,CAAA;QACJ,CAAC,CAAA;QA3BC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CA2BF;AA1CD,wCA0CC"}
1
+ {"version":3,"file":"QuarterBackDataSource.js","sourceRoot":"","sources":["../../../src/quarterback/QuarterBackDataSource.ts"],"names":[],"mappings":";;AAgBA,MAAqB,qBAAqB;IAaxC,YAAY,OAAyC;QAGrD,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,EAAE;gBACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,GAAG,CACV,CAAA;gBACD,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE;oBAChC,IAAI,CAAC;wBACH,GAAG,KAAK;wBACR,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,iBAAiB,EAAE,GAAG,CAAC,OAAO;wBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,YAAY,EAAE,IAAI,GAAG,EAA8B;qBACpD,CAAC,CAAA;oBACF,OAAM;iBACP;aACF;YACD,IAAI,CAAC;gBACH,GAAG,KAAK;gBACR,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,IAAI,GAAG,EAA8B;aACpD,CAAC,CAAA;QACJ,CAAC,CAAA;QAzBC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CAyBF;AAxCD,wCAwCC"}
@@ -33,20 +33,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
33
  __setModuleDefault(result, mod);
34
34
  return result;
35
35
  };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
36
  Object.defineProperty(exports, "__esModule", { value: true });
40
37
  exports.useLoadDoc = void 0;
41
38
  const transform_1 = require("@manuscripts/transform");
42
- const config_1 = __importDefault(require("../config"));
43
39
  const document_1 = require("./api/document");
44
40
  const docApi = __importStar(require("./api/document"));
45
41
  const useLoadDoc = (authToken) => {
46
42
  return async function loadDoc(manuscriptID, projectID, existingDoc) {
47
- if (!config_1.default.quarterback.enabled) {
48
- return undefined;
49
- }
50
43
  const found = await docApi.getDocument(projectID, manuscriptID, authToken);
51
44
  let doc;
52
45
  let version = 0;
@@ -90,6 +83,13 @@ const useLoadDoc = (authToken) => {
90
83
  if ('err' in update) {
91
84
  console.error('Unable to create new document: ' + update.err);
92
85
  }
86
+ else {
87
+ const found = await docApi.getDocument(projectID, manuscriptID, authToken);
88
+ if ('data' in found && found.data.doc && found.data.version >= 0) {
89
+ doc = found.data.doc;
90
+ version = found.data.version;
91
+ }
92
+ }
93
93
  }
94
94
  if (doc !== null &&
95
95
  typeof doc === 'object' &&
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadDoc.js","sourceRoot":"","sources":["../../../src/quarterback/useLoadDoc.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,sDAA2E;AAE3E,uDAA8B;AAC9B,6CAA+C;AAC/C,uDAAwC;AAGjC,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC9C,OAAO,KAAK,UAAU,OAAO,CAC3B,YAAoB,EACpB,SAAiB,EACjB,WAA2B;QAE3B,IAAI,CAAC,gBAAM,CAAC,WAAW,CAAC,OAAO,EAAE;YAC/B,OAAO,SAAS,CAAA;SACjB;QACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;QAC1E,IAAI,GAAG,CAAA;QACP,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,SAAS,GAAoB,EAAE,CAAA;QACnC,IAAI,MAAM,IAAI,KAAK,EAAE;YACnB,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAa,EAAE;gBACxC,KAAK,GAAG,KAAK,CAAA;gBACb,MAAK;aACN;YAED,IAAI,KAAK,EAAE;gBACT,MAAM,IAAA,yBAAc,EAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;oBACvD,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE;oBACzB,cAAc,EAAE,IAAA,sBAAU,GAAE;iBAC7B,CAAC,CAAA;aACH;YAED,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAA;YAChC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA;YACpB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAA;SAC7B;aAAM,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;YAC/C,6FAA6F;YAC7F,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CACrC;gBACE,mBAAmB,EAAE,YAAY;gBACjC,gBAAgB,EAAE,SAAS;gBAC3B,GAAG,EAAE,EAAE;gBACP,cAAc,EAAE,IAAA,sBAAU,GAAE;aAC7B,EACD,SAAS,CACV,CAAA;YACD,IAAI,MAAM,IAAI,GAAG,EAAE;gBACjB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAA;gBAClB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAA;gBAC1B,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAA;aAC/B;YACD,IAAI,KAAK,IAAI,GAAG,EAAE;gBAChB,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;aAC3D;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAc,EAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;gBACtE,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE;gBACzB,cAAc,EAAE,IAAA,sBAAU,GAAE;aAC7B,CAAC,CAAA;YACF,IAAI,KAAK,IAAI,MAAM,EAAE;gBACnB,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;aAC9D;SACF;QACD,IACE,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,KAAK,QAAQ;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAC7B;YACA,OAAO,EAAE,GAAG,EAAE,kBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;SAC7D;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;AACH,CAAC,CAAA;AAnEY,QAAA,UAAU,cAmEtB"}
1
+ {"version":3,"file":"useLoadDoc.js","sourceRoot":"","sources":["../../../src/quarterback/useLoadDoc.ts"],"names":[],"mappings":"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"}
@@ -38,20 +38,14 @@ exports.useGenericStore = exports.GenericStoreProvider = exports.createStore = v
38
38
  const react_1 = __importStar(require("react"));
39
39
  const _1 = require(".");
40
40
  const GenericStoreContext = (0, react_1.createContext)(new _1.GenericStore());
41
- const createStore = async (dataSources, reducer, unmountHandler, parentObserver) => {
42
- const store = new _1.GenericStore(reducer, unmountHandler);
43
- await store.init(dataSources);
44
- parentObserver?.onUpdate((state) => store.setState({ ...store.state, ...state }));
45
- store.subscribe((state) => {
46
- parentObserver?.storeObserver(state);
47
- });
41
+ const createStore = async (sources, observer) => {
42
+ const store = new _1.GenericStore();
43
+ await store.init(sources);
44
+ store.subscribe((state) => observer?.onUpdate(state));
48
45
  return store;
49
46
  };
50
47
  exports.createStore = createStore;
51
48
  const GenericStoreProvider = ({ children, store }) => {
52
- if (!(store instanceof _1.GenericStore)) {
53
- throw new Error('GenericStoreProvider received incorrect store.');
54
- }
55
49
  (0, react_1.useEffect)(() => {
56
50
  return () => store.unmount();
57
51
  }, [store]);
@@ -1 +1 @@
1
- {"version":3,"file":"StoreContext.js","sourceRoot":"","sources":["../../../src/store/StoreContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,+CAAmE;AAEnE,wBAAgF;AAGhF,MAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAe,IAAI,eAAY,EAAE,CAAC,CAAA;AAEpE,MAAM,WAAW,GAAG,KAAK,EAC9B,WAAsC,EACtC,OAAiB,EACjB,cAAwC,EACxC,cAAyB,EACzB,EAAE;IACF,MAAM,KAAK,GAAG,IAAI,eAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IACvD,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE7B,cAAc,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,EAAW,CAAC,CACtD,CAAA;IACD,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAjBY,QAAA,WAAW,eAiBvB;AAMM,MAAM,oBAAoB,GAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,IAAI,CAAC,CAAC,KAAK,YAAY,eAAY,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;KAClE;IACD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,KAAK,EAAE;QACT,OAAO,CACL,8BAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iEAA4B,CAClC,CAChC,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAhBY,QAAA,oBAAoB,wBAgBhC;AAEM,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,mBAAmB,CAAC,CAAA;AAAvD,QAAA,eAAe,mBAAwC"}
1
+ {"version":3,"file":"StoreContext.js","sourceRoot":"","sources":["../../../src/store/StoreContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;GAUG;AACH,+CAAmE;AAGnE,wBAAyD;AAEzD,MAAM,mBAAmB,GAAG,IAAA,qBAAa,EAAe,IAAI,eAAY,EAAE,CAAC,CAAA;AAEpE,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAkC,EAClC,QAA2B,EAC3B,EAAE;IACF,MAAM,KAAK,GAAG,IAAI,eAAY,EAAE,CAAA;IAChC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzB,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AARY,QAAA,WAAW,eAQvB;AAMM,MAAM,oBAAoB,GAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,KAAK,EAAE;QACT,OAAO,CACL,8BAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iEAA4B,CAClC,CAChC,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAbY,QAAA,oBAAoB,wBAahC;AAEM,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,IAAA,kBAAU,EAAC,mBAAmB,CAAC,CAAA;AAAvD,QAAA,eAAe,mBAAwC"}
@@ -26,7 +26,7 @@ const PlaceholderWrapper = styled.div `
26
26
  justify-content: center;
27
27
  align-items: center;
28
28
  `;
29
- const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions, fileManagement, files, authToken, }) => {
29
+ const EditorApp = ({ manuscriptID, projectID, permittedActions, fileManagement, files, authToken, observer, }) => {
30
30
  const userID = getCurrentUserId();
31
31
  const [store, setStore] = useState();
32
32
  const loadDoc = useLoadDoc(authToken);
@@ -35,7 +35,7 @@ const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions,
35
35
  // implement remount for the store if component is retriggered
36
36
  const basicSource = new BasicSource(fileManagement, projectID, manuscriptID, files, permittedActions, userID || '', authToken || '');
37
37
  const mainSource = new PsSource(files);
38
- createStore([basicSource, mainSource, quarterBackSource], undefined, undefined, parentObserver)
38
+ createStore([basicSource, mainSource, quarterBackSource], observer)
39
39
  .then((store) => {
40
40
  setStore(store);
41
41
  })
@@ -43,11 +43,19 @@ const EditorApp = ({ parentObserver, manuscriptID, projectID, permittedActions,
43
43
  console.error(e);
44
44
  });
45
45
  return () => {
46
- parentObserver?.detach();
47
46
  store?.unmount();
48
47
  };
49
48
  // eslint-disable-next-line react-hooks/exhaustive-deps
50
49
  }, [manuscriptID, projectID]);
50
+ useEffect(() => {
51
+ if (!observer) {
52
+ return;
53
+ }
54
+ observer.state.current = {
55
+ get: () => store?.getState(),
56
+ update: (state) => store?.setState(state),
57
+ };
58
+ }, [observer, store]);
51
59
  return store ? (React.createElement(GenericStoreProvider, { store: store },
52
60
  React.createElement(Router, null,
53
61
  React.createElement(Page, null,
@@ -1 +1 @@
1
- {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,uBAAuB,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,QAAQ,MAAM,0BAA0B,CAAA;AAC/C,OAAO,qBAAqB,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EACL,WAAW,EACX,WAAW,EAEX,oBAAoB,GACrB,MAAM,SAAS,CAAA;AAahB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;CAQzB,CAAA;AAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;CAOpC,CAAA;AAED,MAAM,SAAS,GAAoB,CAAC,EAClC,cAAc,EACd,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,KAAK,EACL,SAAS,GACV,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;IAEjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAgB,CAAA;IAElD,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;IACrC,MAAM,iBAAiB,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,8DAA8D;QAC9D,MAAM,WAAW,GAAG,IAAI,WAAW,CACjC,cAAc,EACd,SAAS,EACT,YAAY,EACZ,KAAK,EACL,gBAAgB,EAChB,MAAM,IAAI,EAAE,EACZ,SAAS,IAAI,EAAE,CAChB,CAAA;QACD,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;QACtC,WAAW,CACT,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAC5C,SAAS,EACT,SAAS,EACT,cAAc,CACf;aACE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;QACJ,OAAO,GAAG,EAAE;YACV,cAAc,EAAE,MAAM,EAAE,CAAA;YACxB,KAAK,EAAE,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7B,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK;QAChC,oBAAC,MAAM;YACL,oBAAC,IAAI;gBACH,oBAAC,OAAO;oBACN,oBAAC,uBAAuB,OAAG,CACnB,CACL,CACA,CACY,CACxB,CAAC,CAAC,CAAC,CACF,oBAAC,kBAAkB;QACjB,oBAAC,qBAAqB,OAAG,CACN,CACtB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"EditorApp.js","sourceRoot":"","sources":["../../src/EditorApp.tsx"],"names":[],"mappings":"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"}
package/dist/es/Main.js CHANGED
@@ -14,10 +14,8 @@ import { DndProvider } from 'react-dnd';
14
14
  import { HTML5Backend } from 'react-dnd-html5-backend';
15
15
  import EditorApp from './EditorApp';
16
16
  import { GlobalStyle } from './theme/theme';
17
- // projectID="MPProject:E1895468-4DFE-4F17-9B06-5212ECD29555"
18
- // manuscriptID="MPManuscript:5F6D807F-CECF-45D0-B94C-5CF1361BDF05"
19
- const Main = ({ fileManagement, files, parentObserver, manuscriptID, projectID, authToken, permittedActions, }) => (React.createElement(DndProvider, { backend: HTML5Backend },
17
+ const Main = ({ fileManagement, files, manuscriptID, projectID, authToken, permittedActions, observer, }) => (React.createElement(DndProvider, { backend: HTML5Backend },
20
18
  React.createElement(GlobalStyle, null),
21
- React.createElement(EditorApp, { fileManagement: fileManagement, files: files, parentObserver: parentObserver, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, authToken: authToken })));
19
+ React.createElement(EditorApp, { fileManagement: fileManagement, files: files, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, authToken: authToken, observer: observer })));
22
20
  export default Main;
23
21
  //# sourceMappingURL=Main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/Main.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,SAAS,MAAM,aAAa,CAAA;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAY3C,6DAA6D;AAC7D,mEAAmE;AAEnE,MAAM,IAAI,GAAoB,CAAC,EAC7B,cAAc,EACd,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,GACjB,EAAE,EAAE,CAAC,CACJ,oBAAC,WAAW,IAAC,OAAO,EAAE,YAAY;IAChC,oBAAC,WAAW,OAAG;IACf,oBAAC,SAAS,IACR,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,GACpB,CACU,CACf,CAAA;AAED,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Main.js","sourceRoot":"","sources":["../../src/Main.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,OAAO,SAA6B,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,IAAI,GAA6B,CAAC,EACtC,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,EAAE,EAAE,CAAC,CACJ,oBAAC,WAAW,IAAC,OAAO,EAAE,YAAY;IAChC,oBAAC,WAAW,OAAG;IACf,oBAAC,SAAS,IACR,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,GAClB,CACU,CACf,CAAA;AAED,eAAe,IAAI,CAAA"}
package/dist/es/index.js CHANGED
@@ -19,9 +19,8 @@ import userID from './lib/user-id';
19
19
  import Main from './Main';
20
20
  import { ThemeProvider } from './theme/ThemeProvider';
21
21
  export { ProjectRole } from './lib/roles';
22
- export * from './store/ParentObserver';
23
22
  export { getUserRole } from './lib/roles';
24
- const ManuscriptEditor = ({ fileManagement, files, parentObserver, manuscriptID, projectID, permittedActions, authToken, }) => {
23
+ const ManuscriptEditor = ({ fileManagement, files, manuscriptID, projectID, permittedActions, authToken, observer, }) => {
25
24
  useMemo(() => {
26
25
  if (authToken) {
27
26
  tokenHandler.remove();
@@ -40,7 +39,7 @@ const ManuscriptEditor = ({ fileManagement, files, parentObserver, manuscriptID,
40
39
  return (React.createElement(React.Fragment, null,
41
40
  React.createElement(ThemeProvider, null,
42
41
  React.createElement(Suspense, { fallback: React.createElement(LoadingPage, { className: 'loader' }, "Loading...") },
43
- React.createElement(Main, { fileManagement: fileManagement, files: files, authToken: authToken || '', parentObserver: parentObserver, manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions }))),
42
+ React.createElement(Main, { fileManagement: fileManagement, files: files, authToken: authToken || '', manuscriptID: manuscriptID, projectID: projectID, permittedActions: permittedActions, observer: observer }))),
44
43
  React.createElement("div", { id: "menu" }),
45
44
  React.createElement("div", { id: "notifications" }),
46
45
  React.createElement("div", { id: "size" })));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,iBAAiB,CAAA;AACxB,OAAO,aAAa,CAAA;AAGpB,OAAO,MAAM,MAAM,YAAY,CAAA;AAC/B,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,YAAY,MAAM,aAAa,CAAA;AAEtC,OAAO,MAAM,MAAM,eAAe,CAAA;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAYzC,MAAM,gBAAgB,GAAuC,CAAC,EAC5D,cAAc,EACd,KAAK,EACL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,GACV,EAAE,EAAE;IACH,OAAO,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,MAAM,EAAE,CAAA;YACrB,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,CAAC,+CAA+C;YAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAe,SAAS,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;aACjC;YAED,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACnB;QACD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,EAAE,CAAA;YACrB,MAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL;QACE,oBAAC,aAAa;YACZ,oBAAC,QAAQ,IACP,QAAQ,EAAE,oBAAC,WAAW,IAAC,SAAS,EAAE,QAAQ,iBAA0B;gBAEpE,oBAAC,IAAI,IACH,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,GAClC,CACO,CACG;QAChB,6BAAK,EAAE,EAAC,MAAM,GAAO;QACrB,6BAAK,EAAE,EAAC,eAAe,GAAO;QAC9B,6BAAK,EAAE,EAAC,MAAM,GAAO,CACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAC3C,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACb,mHAAmH;IACnH,mIAAmI;IACnI,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAA,CAAC,sCAAsC;AACtF,CAAC,CACF,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,iBAAiB,CAAA;AACxB,OAAO,aAAa,CAAA;AAEpB,OAAO,MAAM,MAAM,YAAY,CAAA;AAC/B,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,YAAY,MAAM,aAAa,CAAA;AAEtC,OAAO,MAAM,MAAM,eAAe,CAAA;AAClC,OAAO,IAAI,MAAM,QAAQ,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAQzC,MAAM,gBAAgB,GAA6B,CAAC,EAClD,cAAc,EACd,KAAK,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CAAC,GAAG,EAAE;QACX,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,MAAM,EAAE,CAAA;YACrB,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA,CAAC,+CAA+C;YAC3E,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAe,SAAS,CAAC,CAAA;YAElD,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;aACjC;YAED,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;SACnB;QACD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,EAAE,CAAA;YACrB,MAAM,CAAC,MAAM,EAAE,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL;QACE,oBAAC,aAAa;YACZ,oBAAC,QAAQ,IACP,QAAQ,EAAE,oBAAC,WAAW,IAAC,SAAS,EAAE,QAAQ,iBAA0B;gBAEpE,oBAAC,IAAI,IACH,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAAI,EAAE,EAC1B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,QAAQ,GAClB,CACO,CACG;QAChB,6BAAK,EAAE,EAAC,MAAM,GAAO;QACrB,6BAAK,EAAE,EAAC,eAAe,GAAO;QAC9B,6BAAK,EAAE,EAAC,MAAM,GAAO,CACpB,CACJ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAC3C,gBAAgB,EAChB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IACb,mHAAmH;IACnH,mIAAmI;IACnI,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAA,CAAC,sCAAsC;AACtF,CAAC,CACF,CAAA"}
@@ -10,9 +10,11 @@ export default class PsSource {
10
10
  if (state.userID && state.authToken) {
11
11
  this.api.setToken(state.authToken);
12
12
  }
13
- if (state.manuscriptID && state.projectID) {
14
- this.data = await buildData(state.projectID, state.manuscriptID, this.api);
15
- this.utilities = buildUtilities(() => this.data, setState, this.api);
13
+ const projectID = state.projectID;
14
+ const manuscriptID = state.manuscriptID;
15
+ if (manuscriptID && projectID) {
16
+ this.data = await buildData(projectID, manuscriptID, this.api);
17
+ this.utilities = buildUtilities(projectID, manuscriptID, () => this.data, setState, this.api);
16
18
  }
17
19
  next({ ...state, ...this.data, ...this.utilities });
18
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PsSource.js","sourceRoot":"","sources":["../../../src/postgres-data/PsSource.ts"],"names":[],"mappings":"AAeA,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAQ;IAM3B,YAAY,KAAuB;QASnC,gBAAW,GAAG,CAAC,KAAqB,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACnC;YACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS,EAAE;gBACzC,IAAI,CAAC,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC1E,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;aACrE;YACD,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA,CAAC,uCAAuC;QAC3D,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,QAAqB,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC7B,CAAC,CAAA;QA3BC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,aAAa;QACb,4BAA4B;QAC5B,oGAAoG;QACpG,yBAAyB;IAC3B,CAAC;CAsBF"}
1
+ {"version":3,"file":"PsSource.js","sourceRoot":"","sources":["../../../src/postgres-data/PsSource.ts"],"names":[],"mappings":"AAeA,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,CAAC,OAAO,OAAO,QAAQ;IAM3B,YAAY,KAAuB;QASnC,gBAAW,GAAG,CAAC,KAAqB,EAAE,EAAE;YACtC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACnC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;YACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YACvC,IAAI,YAAY,IAAI,SAAS,EAAE;gBAC7B,IAAI,CAAC,IAAI,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC9D,IAAI,CAAC,SAAS,GAAG,cAAc,CAC7B,SAAS,EACT,YAAY,EACZ,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EACf,QAAQ,EACR,IAAI,CAAC,GAAG,CACT,CAAA;aACF;YACD,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QACrD,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,KAAY,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA,CAAC,uCAAuC;QAC3D,CAAC,CAAA;QACD,gBAAW,GAAG,CAAC,QAAqB,EAAE,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC7B,CAAC,CAAA;QAnCC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,aAAa;QACb,4BAA4B;QAC5B,oGAAoG;QACpG,yBAAyB;IAC3B,CAAC;CA8BF"}
@@ -11,13 +11,14 @@
11
11
  */
12
12
  import { manuscriptIDTypes, ObjectTypes, } from '@manuscripts/json-schema';
13
13
  import { encode } from '@manuscripts/transform';
14
+ import { getUserRole } from '../lib/roles';
14
15
  import { saveWithThrottle } from './savingUtilities';
15
- export const buildUtilities = (getState, updateState, api) => {
16
+ export const buildUtilities = (projectID, manuscriptID, getState, updateState, api) => {
16
17
  const nonPMModelsTypes = new Set([
17
18
  ObjectTypes.Manuscript,
18
19
  ObjectTypes.Project,
19
20
  ]);
20
- const updateContainerIDs = (model, projectID, manuscriptID) => {
21
+ const updateContainerIDs = (model) => {
21
22
  const containerIDs = {
22
23
  containerID: projectID,
23
24
  };
@@ -32,7 +33,7 @@ export const buildUtilities = (getState, updateState, api) => {
32
33
  ...containerIDs,
33
34
  };
34
35
  };
35
- const saveProject = async (models, projectID) => {
36
+ const saveProject = async (models) => {
36
37
  try {
37
38
  const filtered = models.filter((m) => m.objectType !== ObjectTypes.Project);
38
39
  await api.saveProject(projectID, filtered);
@@ -51,9 +52,7 @@ export const buildUtilities = (getState, updateState, api) => {
51
52
  };
52
53
  const saveModels = async (models, excludeIDs) => {
53
54
  const state = getState();
54
- const projectID = state.projectID;
55
- const manuscriptID = state.manuscriptID;
56
- if (!state.modelMap || !manuscriptID || !projectID) {
55
+ if (!state.modelMap) {
57
56
  throw new Error('Unable to save due to incomplete data');
58
57
  }
59
58
  const modelMap = new Map();
@@ -67,7 +66,7 @@ export const buildUtilities = (getState, updateState, api) => {
67
66
  if (!model._id) {
68
67
  throw new Error('Model ID required');
69
68
  }
70
- const updated = updateContainerIDs(model, projectID, manuscriptID);
69
+ const updated = updateContainerIDs(model);
71
70
  modelMap.set(model._id, updated);
72
71
  }
73
72
  updateState({
@@ -78,7 +77,7 @@ export const buildUtilities = (getState, updateState, api) => {
78
77
  updateState({
79
78
  savingProcess: 'saving',
80
79
  });
81
- const result = await saveProject([...modelMap.values()], projectID);
80
+ const result = await saveProject([...modelMap.values()]);
82
81
  updateState({
83
82
  savingProcess: result ? 'saved' : 'failed',
84
83
  preventUnload: false,
@@ -96,10 +95,10 @@ export const buildUtilities = (getState, updateState, api) => {
96
95
  };
97
96
  const saveManuscript = async (manuscript) => {
98
97
  const state = getState();
99
- if (!state.modelMap || !state.manuscriptID) {
98
+ if (!state.modelMap) {
100
99
  throw new Error('Unable to save manuscript due to incomplete data');
101
100
  }
102
- const previous = state.modelMap.get(state.manuscriptID);
101
+ const previous = state.modelMap.get(manuscriptID);
103
102
  await saveModel({
104
103
  ...previous,
105
104
  ...manuscript,
@@ -111,11 +110,9 @@ export const buildUtilities = (getState, updateState, api) => {
111
110
  };
112
111
  const createSnapshot = async () => {
113
112
  const state = getState();
114
- const projectID = state.projectID;
115
- const manuscriptID = state.manuscriptID;
116
113
  const snapshots = state.snapshots;
117
114
  const snapshotsMap = state.snapshotsMap;
118
- if (!projectID || !manuscriptID || !snapshots || !snapshotsMap) {
115
+ if (!snapshots || !snapshotsMap) {
119
116
  throw new Error('Unable to create snapshot due to incomplete data');
120
117
  }
121
118
  const data = await api.createSnapshot(projectID, manuscriptID);
@@ -125,6 +122,25 @@ export const buildUtilities = (getState, updateState, api) => {
125
122
  snapshotsMap: snapshotsMap.set(label.id, data.snapshot),
126
123
  });
127
124
  };
125
+ const refreshProject = async () => {
126
+ const state = getState();
127
+ const userID = state.userID;
128
+ if (!userID) {
129
+ return;
130
+ }
131
+ const models = await api.getManuscript(projectID, manuscriptID);
132
+ if (!models) {
133
+ return;
134
+ }
135
+ const project = models.filter((m) => m.objectType === ObjectTypes.Project)[0];
136
+ if (!project) {
137
+ return;
138
+ }
139
+ updateState({
140
+ project,
141
+ userRole: getUserRole(project, userID),
142
+ });
143
+ };
128
144
  return {
129
145
  saveModel,
130
146
  deleteModel,
@@ -133,6 +149,7 @@ export const buildUtilities = (getState, updateState, api) => {
133
149
  saveModels,
134
150
  saveDoc,
135
151
  createSnapshot,
152
+ refreshProject,
136
153
  };
137
154
  };
138
155
  //# sourceMappingURL=buildUtilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/buildUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildUtilities.js","sourceRoot":"","sources":["../../../src/postgres-data/buildUtilities.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,15 @@ export default class QuarterbackDataSource {
3
3
  this.build = async (state, next) => {
4
4
  if (state.projectID && state.manuscriptID && state.doc) {
5
5
  const res = await this.loadDoc(state.manuscriptID, state.projectID, state.doc);
6
- if (res?.doc && res.version) {
7
- if (res.doc) {
8
- next({
9
- ...state,
10
- doc: res.doc,
11
- initialDocVersion: res.version,
12
- snapshots: res.snapshots,
13
- snapshotsMap: new Map(),
14
- });
15
- return;
16
- }
6
+ if (res?.doc && res.version >= 0) {
7
+ next({
8
+ ...state,
9
+ doc: res.doc,
10
+ initialDocVersion: res.version,
11
+ snapshots: res.snapshots,
12
+ snapshotsMap: new Map(),
13
+ });
14
+ return;
17
15
  }
18
16
  }
19
17
  next({
@@ -1 +1 @@
1
- {"version":3,"file":"QuarterBackDataSource.js","sourceRoot":"","sources":["../../../src/quarterback/QuarterBackDataSource.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAaxC,YAAY,OAAyC;QAGrD,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,EAAE;gBACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,GAAG,CACV,CAAA;gBACD,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;oBAC3B,IAAI,GAAG,CAAC,GAAG,EAAE;wBACX,IAAI,CAAC;4BACH,GAAG,KAAK;4BACR,GAAG,EAAE,GAAG,CAAC,GAAG;4BACZ,iBAAiB,EAAE,GAAG,CAAC,OAAO;4BAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,YAAY,EAAE,IAAI,GAAG,EAA8B;yBACpD,CAAC,CAAA;wBACF,OAAM;qBACP;iBACF;aACF;YACD,IAAI,CAAC;gBACH,GAAG,KAAK;gBACR,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,IAAI,GAAG,EAA8B;aACpD,CAAC,CAAA;QACJ,CAAC,CAAA;QA3BC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CA2BF"}
1
+ {"version":3,"file":"QuarterBackDataSource.js","sourceRoot":"","sources":["../../../src/quarterback/QuarterBackDataSource.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAaxC,YAAY,OAAyC;QAGrD,UAAK,GAAc,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,EAAE;gBACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAC5B,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,GAAG,CACV,CAAA;gBACD,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,EAAE;oBAChC,IAAI,CAAC;wBACH,GAAG,KAAK;wBACR,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,iBAAiB,EAAE,GAAG,CAAC,OAAO;wBAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,YAAY,EAAE,IAAI,GAAG,EAA8B;qBACpD,CAAC,CAAA;oBACF,OAAM;iBACP;aACF;YACD,IAAI,CAAC;gBACH,GAAG,KAAK;gBACR,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,IAAI,GAAG,EAA8B;aACpD,CAAC,CAAA;QACJ,CAAC,CAAA;QAzBC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CAyBF"}
@@ -10,14 +10,10 @@
10
10
  * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
11
11
  */
12
12
  import { getVersion, schema } from '@manuscripts/transform';
13
- import config from '../config';
14
13
  import { updateDocument } from './api/document';
15
14
  import * as docApi from './api/document';
16
15
  export const useLoadDoc = (authToken) => {
17
16
  return async function loadDoc(manuscriptID, projectID, existingDoc) {
18
- if (!config.quarterback.enabled) {
19
- return undefined;
20
- }
21
17
  const found = await docApi.getDocument(projectID, manuscriptID, authToken);
22
18
  let doc;
23
19
  let version = 0;
@@ -61,6 +57,13 @@ export const useLoadDoc = (authToken) => {
61
57
  if ('err' in update) {
62
58
  console.error('Unable to create new document: ' + update.err);
63
59
  }
60
+ else {
61
+ const found = await docApi.getDocument(projectID, manuscriptID, authToken);
62
+ if ('data' in found && found.data.doc && found.data.version >= 0) {
63
+ doc = found.data.doc;
64
+ version = found.data.version;
65
+ }
66
+ }
64
67
  }
65
68
  if (doc !== null &&
66
69
  typeof doc === 'object' &&
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadDoc.js","sourceRoot":"","sources":["../../../src/quarterback/useLoadDoc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useLoadDoc.js","sourceRoot":"","sources":["../../../src/quarterback/useLoadDoc.ts"],"names":[],"mappings":"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"}
@@ -12,19 +12,13 @@
12
12
  import React, { createContext, useContext, useEffect } from 'react';
13
13
  import { GenericStore } from '.';
14
14
  const GenericStoreContext = createContext(new GenericStore());
15
- export const createStore = async (dataSources, reducer, unmountHandler, parentObserver) => {
16
- const store = new GenericStore(reducer, unmountHandler);
17
- await store.init(dataSources);
18
- parentObserver?.onUpdate((state) => store.setState({ ...store.state, ...state }));
19
- store.subscribe((state) => {
20
- parentObserver?.storeObserver(state);
21
- });
15
+ export const createStore = async (sources, observer) => {
16
+ const store = new GenericStore();
17
+ await store.init(sources);
18
+ store.subscribe((state) => observer?.onUpdate(state));
22
19
  return store;
23
20
  };
24
21
  export const GenericStoreProvider = ({ children, store }) => {
25
- if (!(store instanceof GenericStore)) {
26
- throw new Error('GenericStoreProvider received incorrect store.');
27
- }
28
22
  useEffect(() => {
29
23
  return () => store.unmount();
30
24
  }, [store]);
@@ -1 +1 @@
1
- {"version":3,"file":"StoreContext.js","sourceRoot":"","sources":["../../../src/store/StoreContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,OAAO,EAAE,YAAY,EAAkD,MAAM,GAAG,CAAA;AAGhF,MAAM,mBAAmB,GAAG,aAAa,CAAe,IAAI,YAAY,EAAE,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,WAAsC,EACtC,OAAiB,EACjB,cAAwC,EACxC,cAAyB,EACzB,EAAE;IACF,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IACvD,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE7B,cAAc,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,EAAW,CAAC,CACtD,CAAA;IACD,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAMD,MAAM,CAAC,MAAM,oBAAoB,GAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;KAClE;IACD,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,KAAK,EAAE;QACT,OAAO,CACL,oBAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uDAA4B,CAClC,CAChC,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"StoreContext.js","sourceRoot":"","sources":["../../../src/store/StoreContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGnE,OAAO,EAAE,YAAY,EAA2B,MAAM,GAAG,CAAA;AAEzD,MAAM,mBAAmB,GAAG,aAAa,CAAe,IAAI,YAAY,EAAE,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,OAAkC,EAClC,QAA2B,EAC3B,EAAE;IACF,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAA;IAChC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzB,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAMD,MAAM,CAAC,MAAM,oBAAoB,GAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC3E,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,KAAK,EAAE;QACT,OAAO,CACL,oBAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACvC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uDAA4B,CAClC,CAChC,CAAA;KACF;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAA"}
@@ -10,16 +10,25 @@
10
10
  * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
11
11
  */
12
12
  import { FileAttachment, FileManagement } from '@manuscripts/style-guide';
13
- import React from 'react';
14
- import { ISubject } from './store/ParentObserver';
15
- interface Props {
13
+ import React, { MutableRefObject } from 'react';
14
+ import { state } from './store';
15
+ export type AppState = {
16
+ get: () => state | undefined;
17
+ update: (state: Partial<state>) => void;
18
+ };
19
+ export type AppStateRef = MutableRefObject<AppState | undefined>;
20
+ export type AppStateObserver = {
21
+ state: AppStateRef;
22
+ onUpdate: (state: state) => void;
23
+ };
24
+ export interface EditorAppProps {
16
25
  fileManagement: FileManagement;
17
26
  files: FileAttachment[];
18
- parentObserver: ISubject;
19
27
  manuscriptID: string;
20
28
  projectID: string;
21
29
  permittedActions: string[];
22
30
  authToken: string;
31
+ observer?: AppStateObserver;
23
32
  }
24
- declare const EditorApp: React.FC<Props>;
33
+ declare const EditorApp: React.FC<EditorAppProps>;
25
34
  export default EditorApp;
@@ -9,17 +9,7 @@
9
9
  *
10
10
  * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
11
11
  */
12
- import { FileAttachment, FileManagement } from '@manuscripts/style-guide';
13
12
  import React from 'react';
14
- import { ISubject } from './store/ParentObserver';
15
- interface Props {
16
- fileManagement: FileManagement;
17
- files: FileAttachment[];
18
- parentObserver: ISubject;
19
- manuscriptID: string;
20
- projectID: string;
21
- authToken: string;
22
- permittedActions: string[];
23
- }
24
- declare const Main: React.FC<Props>;
13
+ import { EditorAppProps } from './EditorApp';
14
+ declare const Main: React.FC<EditorAppProps>;
25
15
  export default Main;
@@ -11,20 +11,10 @@
11
11
  */
12
12
  import './lib/analytics';
13
13
  import './lib/fonts';
14
- import { FileAttachment, FileManagement } from '@manuscripts/style-guide';
15
14
  import React from 'react';
16
- import { ISubject } from './store/ParentObserver';
15
+ import { EditorAppProps } from './EditorApp';
17
16
  export { ProjectRole } from './lib/roles';
18
17
  export type { state } from './store';
19
- export * from './store/ParentObserver';
20
18
  export { getUserRole } from './lib/roles';
21
- export interface ManuscriptEditorAppProps {
22
- fileManagement: FileManagement;
23
- files: FileAttachment[];
24
- parentObserver: ISubject;
25
- manuscriptID: string;
26
- projectID: string;
27
- permittedActions: string[];
28
- authToken?: string;
29
- }
30
- export declare const ManuscriptEditorApp: React.NamedExoticComponent<ManuscriptEditorAppProps>;
19
+ export type { AppState, AppStateRef, EditorAppProps, AppStateObserver, } from './EditorApp';
20
+ export declare const ManuscriptEditorApp: React.NamedExoticComponent<EditorAppProps>;
@@ -11,4 +11,4 @@
11
11
  */
12
12
  import Api from '../postgres-data/Api';
13
13
  import { state } from '../store';
14
- export declare const buildUtilities: (getState: () => Partial<state>, updateState: (state: Partial<state>) => void, api: Api) => Partial<state>;
14
+ export declare const buildUtilities: (projectID: string, manuscriptID: string, getState: () => Partial<state>, updateState: (state: Partial<state>) => void, api: Api) => Partial<state>;
@@ -10,9 +10,9 @@
10
10
  * All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
11
11
  */
12
12
  import React from 'react';
13
- import { GenericStore, reducer, Store, StoreDataSourceStrategy } from '.';
14
- import { ISubject } from './ParentObserver';
15
- export declare const createStore: (dataSources: StoreDataSourceStrategy[], reducer?: reducer | undefined, unmountHandler?: Store['unmountHandler'], parentObserver?: ISubject) => Promise<GenericStore>;
13
+ import { AppStateObserver } from '../EditorApp';
14
+ import { GenericStore, StoreDataSourceStrategy } from '.';
15
+ export declare const createStore: (sources: StoreDataSourceStrategy[], observer?: AppStateObserver) => Promise<GenericStore>;
16
16
  interface Props {
17
17
  store: GenericStore;
18
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manuscripts/article-editor",
3
- "version": "1.15.3-LEAN-3604.2",
3
+ "version": "1.15.4",
4
4
  "license": "CPAL-1.0",
5
5
  "description": "React components for editing and viewing manuscripts",
6
6
  "repository": "github:Atypon-OpenSource/manuscripts-article-editor",
@@ -35,7 +35,7 @@
35
35
  "@fontsource/lato": "^4.5.10",
36
36
  "@fontsource/pt-sans": "^4.5.11",
37
37
  "@fontsource/pt-serif": "^4.5.11",
38
- "@manuscripts/body-editor": "1.11.4-LEAN-3604.2",
38
+ "@manuscripts/body-editor": "1.11.3",
39
39
  "@manuscripts/json-schema": "2.2.8",
40
40
  "@manuscripts/library": "1.3.7",
41
41
  "@manuscripts/style-guide": "1.12.12",
@@ -109,4 +109,4 @@
109
109
  "resolutions": {
110
110
  "@types/react": "^17.0.2"
111
111
  }
112
- }
112
+ }
@@ -1,40 +0,0 @@
1
- "use strict";
2
- /*!
3
- * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
4
- *
5
- * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
6
- *
7
- * The Original Code is manuscripts-frontend.
8
- *
9
- * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
- *
11
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
12
- */
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.ParentObserver = void 0;
15
- class ParentObserver {
16
- constructor() {
17
- this.observer = undefined;
18
- this.onUpdate = (observer) => {
19
- this.observer = observer;
20
- };
21
- this.update = (partialState) => {
22
- if (this.observer) {
23
- this.observer(partialState);
24
- }
25
- };
26
- this.storeObserver = (state) => {
27
- this.storeListener && this.storeListener(state); // storeListener shoudldn't be directly assigned to storeObserver to avoid potential order of execution problems
28
- };
29
- this.onStoreInternalUpdate = (fn) => {
30
- // it's supposed to be listened by the parent so there is only a single listener
31
- this.storeListener = fn;
32
- };
33
- this.detach = () => {
34
- this.storeListener = undefined;
35
- this.observer = undefined;
36
- };
37
- }
38
- }
39
- exports.ParentObserver = ParentObserver;
40
- //# sourceMappingURL=ParentObserver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ParentObserver.js","sourceRoot":"","sources":["../../../src/store/ParentObserver.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAcH,MAAa,cAAc;IAA3B;QACU,aAAQ,GAA0B,SAAS,CAAA;QAGnD,aAAQ,GAAG,CAAC,QAAmB,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC1B,CAAC,CAAA;QAED,WAAM,GAAG,CAAC,YAAwC,EAAE,EAAE;YACpD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;aAC5B;QACH,CAAC,CAAA;QAED,kBAAa,GAAG,CAAC,KAAY,EAAE,EAAE;YAC/B,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA,CAAC,gHAAgH;QAClK,CAAC,CAAA;QAED,0BAAqB,GAAG,CAAC,EAA0B,EAAE,EAAE;YACrD,gFAAgF;YAChF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACzB,CAAC,CAAA;QAED,WAAM,GAAG,GAAG,EAAE;YACZ,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC;CAAA;AA3BD,wCA2BC"}
@@ -1,36 +0,0 @@
1
- /*!
2
- * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
3
- *
4
- * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
5
- *
6
- * The Original Code is manuscripts-frontend.
7
- *
8
- * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
9
- *
10
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
11
- */
12
- export class ParentObserver {
13
- constructor() {
14
- this.observer = undefined;
15
- this.onUpdate = (observer) => {
16
- this.observer = observer;
17
- };
18
- this.update = (partialState) => {
19
- if (this.observer) {
20
- this.observer(partialState);
21
- }
22
- };
23
- this.storeObserver = (state) => {
24
- this.storeListener && this.storeListener(state); // storeListener shoudldn't be directly assigned to storeObserver to avoid potential order of execution problems
25
- };
26
- this.onStoreInternalUpdate = (fn) => {
27
- // it's supposed to be listened by the parent so there is only a single listener
28
- this.storeListener = fn;
29
- };
30
- this.detach = () => {
31
- this.storeListener = undefined;
32
- this.observer = undefined;
33
- };
34
- }
35
- }
36
- //# sourceMappingURL=ParentObserver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ParentObserver.js","sourceRoot":"","sources":["../../../src/store/ParentObserver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,MAAM,OAAO,cAAc;IAA3B;QACU,aAAQ,GAA0B,SAAS,CAAA;QAGnD,aAAQ,GAAG,CAAC,QAAmB,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC1B,CAAC,CAAA;QAED,WAAM,GAAG,CAAC,YAAwC,EAAE,EAAE;YACpD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;aAC5B;QACH,CAAC,CAAA;QAED,kBAAa,GAAG,CAAC,KAAY,EAAE,EAAE;YAC/B,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA,CAAC,gHAAgH;QAClK,CAAC,CAAA;QAED,0BAAqB,GAAG,CAAC,EAA0B,EAAE,EAAE;YACrD,gFAAgF;YAChF,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACzB,CAAC,CAAA;QAED,WAAM,GAAG,GAAG,EAAE;YACZ,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;YAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC3B,CAAC,CAAA;IACH,CAAC;CAAA"}
@@ -1,33 +0,0 @@
1
- /*!
2
- * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
3
- *
4
- * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
5
- *
6
- * The Original Code is manuscripts-frontend.
7
- *
8
- * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
9
- *
10
- * All portions of the code written by Atypon Systems LLC are Copyright (c) 2022 Atypon Systems LLC. All Rights Reserved.
11
- */
12
- import { state } from './Store';
13
- export type IObserver = (state: {
14
- [key: string]: unknown;
15
- }) => void;
16
- export interface ISubject {
17
- onUpdate(observer: IObserver): void;
18
- update(state: unknown): void;
19
- detach(): void;
20
- storeObserver: (state: state) => void;
21
- onStoreInternalUpdate: (fn: (state: state) => void) => void;
22
- }
23
- export declare class ParentObserver implements ISubject {
24
- private observer;
25
- private storeListener;
26
- onUpdate: (observer: IObserver) => void;
27
- update: (partialState: {
28
- [key: string]: unknown;
29
- }) => void;
30
- storeObserver: (state: state) => void;
31
- onStoreInternalUpdate: (fn: (state: state) => void) => void;
32
- detach: () => void;
33
- }