@manuscripts/article-editor 4.7.15 → 4.7.17

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.
@@ -34,8 +34,13 @@ class ObservableBoolean {
34
34
  exports.ObservableBoolean = ObservableBoolean;
35
35
  class StepsExchanger extends body_editor_1.CollabProvider {
36
36
  constructor(projectID, manuscriptID, currentVersion, api, updateStoreVersion) {
37
+ if (StepsExchanger.instance) {
38
+ StepsExchanger.instance.start();
39
+ return StepsExchanger.instance;
40
+ }
37
41
  super();
38
42
  this.attempt = 0;
43
+ this.stopped = true;
39
44
  this.projectID = projectID;
40
45
  this.manuscriptID = manuscriptID;
41
46
  this.currentVersion = currentVersion;
@@ -45,6 +50,7 @@ class StepsExchanger extends body_editor_1.CollabProvider {
45
50
  this.start();
46
51
  this.updateStoreVersion = updateStoreVersion;
47
52
  this.stop = this.stop.bind(this);
53
+ StepsExchanger.instance = this;
48
54
  }
49
55
  async sendSteps(version, steps, clientID, flush = false) {
50
56
  this.flushImmediately = this.debounce(async () => {
@@ -74,22 +80,35 @@ class StepsExchanger extends body_editor_1.CollabProvider {
74
80
  this.currentVersion = version;
75
81
  this.updateStoreVersion(version);
76
82
  if (steps.length) {
77
- //TODO send steps to listener
78
83
  this.newStepsListener();
79
84
  }
80
85
  }
81
86
  start() {
87
+ if (this.stopped === false) {
88
+ return;
89
+ }
82
90
  this.closeConnection = this.api.listenToSteps(this.projectID, this.manuscriptID, (version, steps, clientIDs) => this.receiveSteps(version, steps, clientIDs));
91
+ this.stopped = false;
83
92
  }
84
93
  stop() {
94
+ this.stopped = true;
85
95
  this.closeConnection();
86
96
  }
87
97
  flush() {
88
98
  this.flushImmediately && this.flushImmediately();
89
99
  }
90
100
  onNewSteps(listener) {
101
+ this.start();
91
102
  this.newStepsListener = listener;
92
103
  }
104
+ unsubscribe() {
105
+ // @TODO change in base class to be a function and not a prop
106
+ if (StepsExchanger.instance) {
107
+ StepsExchanger.instance.newStepsListener = () => {
108
+ console.warn('Listener for incoming steps is not assigned');
109
+ };
110
+ }
111
+ }
93
112
  async stepsSince(version) {
94
113
  const response = await this.api.getStepsSince(this.projectID, this.manuscriptID, version);
95
114
  if (response) {
@@ -1 +1 @@
1
- {"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"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"}
@@ -44,11 +44,13 @@ const useCreateEditor = () => {
44
44
  dispatch({ isComparingMode });
45
45
  }, [isComparingMode, dispatch]);
46
46
  const updateVersion = (v) => dispatch({ initialDocVersion: v });
47
- const stepsExchanger = (0, react_1.useMemo)(() => isComparingMode
48
- ? undefined
49
- : new StepsExchanger_1.StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion),
47
+ const stepsExchanger = (0, react_1.useMemo)(() => {
48
+ return isComparingMode
49
+ ? undefined
50
+ : new StepsExchanger_1.StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion);
51
+ },
50
52
  // eslint-disable-next-line react-hooks/exhaustive-deps
51
- [projectID, manuscriptID, api, isComparingMode]);
53
+ [isComparingMode]);
52
54
  (0, react_1.useEffect)(() => {
53
55
  if (stepsExchanger) {
54
56
  stepsExchanger.isThrottling.onChange((value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,13 @@ export class ObservableBoolean {
30
30
  }
31
31
  export class StepsExchanger extends CollabProvider {
32
32
  constructor(projectID, manuscriptID, currentVersion, api, updateStoreVersion) {
33
+ if (StepsExchanger.instance) {
34
+ StepsExchanger.instance.start();
35
+ return StepsExchanger.instance;
36
+ }
33
37
  super();
34
38
  this.attempt = 0;
39
+ this.stopped = true;
35
40
  this.projectID = projectID;
36
41
  this.manuscriptID = manuscriptID;
37
42
  this.currentVersion = currentVersion;
@@ -41,6 +46,7 @@ export class StepsExchanger extends CollabProvider {
41
46
  this.start();
42
47
  this.updateStoreVersion = updateStoreVersion;
43
48
  this.stop = this.stop.bind(this);
49
+ StepsExchanger.instance = this;
44
50
  }
45
51
  async sendSteps(version, steps, clientID, flush = false) {
46
52
  this.flushImmediately = this.debounce(async () => {
@@ -70,22 +76,35 @@ export class StepsExchanger extends CollabProvider {
70
76
  this.currentVersion = version;
71
77
  this.updateStoreVersion(version);
72
78
  if (steps.length) {
73
- //TODO send steps to listener
74
79
  this.newStepsListener();
75
80
  }
76
81
  }
77
82
  start() {
83
+ if (this.stopped === false) {
84
+ return;
85
+ }
78
86
  this.closeConnection = this.api.listenToSteps(this.projectID, this.manuscriptID, (version, steps, clientIDs) => this.receiveSteps(version, steps, clientIDs));
87
+ this.stopped = false;
79
88
  }
80
89
  stop() {
90
+ this.stopped = true;
81
91
  this.closeConnection();
82
92
  }
83
93
  flush() {
84
94
  this.flushImmediately && this.flushImmediately();
85
95
  }
86
96
  onNewSteps(listener) {
97
+ this.start();
87
98
  this.newStepsListener = listener;
88
99
  }
100
+ unsubscribe() {
101
+ // @TODO change in base class to be a function and not a prop
102
+ if (StepsExchanger.instance) {
103
+ StepsExchanger.instance.newStepsListener = () => {
104
+ console.warn('Listener for incoming steps is not assigned');
105
+ };
106
+ }
107
+ }
89
108
  async stepsSince(version) {
90
109
  const response = await this.api.getStepsSince(this.projectID, this.manuscriptID, version);
91
110
  if (response) {
@@ -1 +1 @@
1
- {"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepsExchanger.js","sourceRoot":"","sources":["../../../src/api/StepsExchanger.ts"],"names":[],"mappings":"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"}
@@ -41,11 +41,13 @@ export const useCreateEditor = () => {
41
41
  dispatch({ isComparingMode });
42
42
  }, [isComparingMode, dispatch]);
43
43
  const updateVersion = (v) => dispatch({ initialDocVersion: v });
44
- const stepsExchanger = useMemo(() => isComparingMode
45
- ? undefined
46
- : new StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion),
44
+ const stepsExchanger = useMemo(() => {
45
+ return isComparingMode
46
+ ? undefined
47
+ : new StepsExchanger(projectID, manuscriptID, initialDocVersion, api, updateVersion);
48
+ },
47
49
  // eslint-disable-next-line react-hooks/exhaustive-deps
48
- [projectID, manuscriptID, api, isComparingMode]);
50
+ [isComparingMode]);
49
51
  useEffect(() => {
50
52
  if (stepsExchanger) {
51
53
  stepsExchanger.isThrottling.onChange((value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-create-editor.js","sourceRoot":"","sources":["../../../src/hooks/use-create-editor.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export declare class ObservableBoolean {
21
21
  onChange(sub: Subscription): void;
22
22
  }
23
23
  export declare class StepsExchanger extends CollabProvider {
24
+ private static instance;
24
25
  projectID: string;
25
26
  manuscriptID: string;
26
27
  api: Api;
@@ -33,10 +34,12 @@ export declare class StepsExchanger extends CollabProvider {
33
34
  constructor(projectID: string, manuscriptID: string, currentVersion: number, api: Api, updateStoreVersion: (version: number) => void);
34
35
  sendSteps(version: number, steps: Step[], clientID: string, flush?: boolean): Promise<void>;
35
36
  receiveSteps(version: number, steps: unknown[], clientIDs: number[]): Promise<void>;
37
+ stopped: boolean;
36
38
  start(): void;
37
39
  stop(): void;
38
40
  flush(): void;
39
41
  onNewSteps(listener: CollabProvider['newStepsListener']): void;
42
+ unsubscribe(): void;
40
43
  stepsSince(version: number): Promise<{
41
44
  steps: Step[];
42
45
  clientIDs: number[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manuscripts/article-editor",
3
- "version": "4.7.15",
3
+ "version": "4.7.17",
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",
@@ -32,7 +32,7 @@
32
32
  "@fontsource/pt-sans": "5.2.5",
33
33
  "@fontsource/pt-serif": "5.2.5",
34
34
  "@headlessui/react": "2.2.3",
35
- "@manuscripts/body-editor": "3.7.12",
35
+ "@manuscripts/body-editor": "3.7.14",
36
36
  "@manuscripts/json-schema": "2.2.12",
37
37
  "@manuscripts/style-guide": "3.3.9",
38
38
  "@manuscripts/track-changes-plugin": "2.2.1",