@livepreso/content-react 0.3.9 → 0.4.1

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "../../content/content-react": "../../content/content-react:EzqiqRduP5X0d1LxP9lAJ1h2NzQwqXXZ5qngKBr1MMQ=:",
2
+ "../../content/content-react": "../../content/content-react:7LzfGuiJuX/Y8xTDRd/Y+VfXIf0DnBd51D+K8hkVmg8=:",
3
3
  "/@babel/helper-annotate-as-pure/7.16.7": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==",
4
4
  "/@babel/helper-module-imports/7.16.7": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
5
5
  "/@babel/helper-plugin-utils/7.16.7": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
@@ -59,7 +59,7 @@
59
59
  "/estraverse/5.3.0": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
60
60
  "/esutils/2.0.3": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
61
61
  "/fast-deep-equal/3.1.3": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
62
- "/fast-glob/3.2.11": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
62
+ "/fast-glob/3.3.2": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
63
63
  "/fast-json-stable-stringify/2.1.0": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
64
64
  "/fastq/1.13.0": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
65
65
  "/fill-range/7.0.1": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
@@ -80,14 +80,14 @@
80
80
  "/has-tostringtag/1.0.2": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
81
81
  "/has/1.0.3": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
82
82
  "/hasown/2.0.2": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
83
- "/ignore/5.2.0": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
83
+ "/ignore/5.3.1": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
84
84
  "/internal-slot/1.0.3": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
85
85
  "/is-bigint/1.0.4": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
86
86
  "/is-boolean-object/1.1.2": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
87
87
  "/is-callable/1.2.4": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
88
88
  "/is-core-module/2.8.1": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
89
89
  "/is-date-object/1.0.5": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
90
- "/is-extglob/2.1.1": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
90
+ "/is-extglob/2.1.1": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
91
91
  "/is-glob/4.0.3": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
92
92
  "/is-negative-zero/2.0.2": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
93
93
  "/is-number-object/1.0.6": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
@@ -102,17 +102,18 @@
102
102
  "/json-schema-traverse/0.4.1": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
103
103
  "/jsx-ast-utils/2.4.1": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
104
104
  "/kurly/2.0.0-beta.3": "sha512-WXSRkhL2VV9lI/sPomBDV9Xf4oQ1s/RiUqzxKt4slkG7ndCxcDfXJ2ZXdxEYDRfevnkSOxmiVX3etunBlHqTAw==",
105
- "/lodash.get/4.4.2": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
105
+ "/lodash.get/4.4.2": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
106
106
  "/lodash.isplainobject/4.0.6": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
107
107
  "/lodash.set/4.3.2": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==",
108
108
  "/lodash.unescape/4.0.1": "sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==",
109
109
  "/loose-envify/1.4.0": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
110
110
  "/lru-cache/6.0.0": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
111
111
  "/merge2/1.4.1": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
112
- "/micromatch/4.0.4": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
112
+ "/micromatch/4.0.5": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
113
113
  "/ms/2.1.2": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
114
114
  "/object-assign/4.1.1": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
115
115
  "/object-inspect/1.12.0": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
116
+ "/object-inspect/1.13.3": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
116
117
  "/object-keys/1.1.1": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
117
118
  "/object.assign/4.1.2": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
118
119
  "/object.entries/1.1.5": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
@@ -137,6 +138,7 @@
137
138
  "/semver/7.3.5": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
138
139
  "/set-function-length/1.2.2": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
139
140
  "/side-channel/1.0.4": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
141
+ "/side-channel/1.0.6": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
140
142
  "/slash/3.0.0": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
141
143
  "/string.prototype.matchall/4.0.6": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==",
142
144
  "/string.prototype.trimend/1.0.4": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
package/CHANGELOG.json CHANGED
@@ -1,6 +1,30 @@
1
1
  {
2
2
  "name": "@livepreso/content-react",
3
3
  "entries": [
4
+ {
5
+ "version": "0.4.1",
6
+ "tag": "@livepreso/content-react_v0.4.1",
7
+ "date": "Wed, 20 Nov 2024 23:28:52 GMT",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "comment": "Components were not correctly unmounting"
12
+ }
13
+ ]
14
+ }
15
+ },
16
+ {
17
+ "version": "0.4.0",
18
+ "tag": "@livepreso/content-react_v0.4.0",
19
+ "date": "Tue, 24 Sep 2024 03:37:23 GMT",
20
+ "comments": {
21
+ "minor": [
22
+ {
23
+ "comment": "Allow overriding react errors"
24
+ }
25
+ ]
26
+ }
27
+ },
4
28
  {
5
29
  "version": "0.3.9",
6
30
  "tag": "@livepreso/content-react_v0.3.9",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,20 @@
1
1
  # Change Log - @livepreso/content-react
2
2
 
3
- This log was last generated on Fri, 23 Aug 2024 05:02:46 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 20 Nov 2024 23:28:52 GMT and should not be manually modified.
4
+
5
+ ## 0.4.1
6
+ Wed, 20 Nov 2024 23:28:52 GMT
7
+
8
+ ### Patches
9
+
10
+ - Components were not correctly unmounting
11
+
12
+ ## 0.4.0
13
+ Tue, 24 Sep 2024 03:37:23 GMT
14
+
15
+ ### Minor changes
16
+
17
+ - Allow overriding react errors
4
18
 
5
19
  ## 0.3.9
6
20
  Fri, 23 Aug 2024 05:02:46 GMT
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useEffect } from "react";
1
+ import React, { useContext, useEffect, useRef } from "react";
2
2
 
3
3
  import { AppBase } from "@livepreso/content-base";
4
4
  import { CompanywideJSON } from "./lib/components/CompanywideJSON.js";
@@ -7,6 +7,18 @@ import { createRoot } from "react-dom/client";
7
7
  import errorFn from "@livepreso/content-base/error.js";
8
8
  import { useRootSlide } from "./lib/hooks/use-root-slide.js";
9
9
 
10
+ function DefaultErrorComponent({ error }) {
11
+ const slideContext = useContext(SlideContext);
12
+ const ref = useRef();
13
+
14
+ useEffect(() => {
15
+ const errorRenderer = errorFn(error);
16
+ errorRenderer(ref.current, slideContext.slideKey);
17
+ }, []);
18
+
19
+ return <div ref={ref} />;
20
+ }
21
+
10
22
  class ErrorBoundary extends React.Component {
11
23
  static getDerivedStateFromError(error) {
12
24
  return { error, hasError: true };
@@ -19,8 +31,8 @@ class ErrorBoundary extends React.Component {
19
31
 
20
32
  render() {
21
33
  if (this.state.hasError) {
22
- errorFn(this.state.error)(this.props.el);
23
- return null;
34
+ const ErrorComponent = this.props.errorComponent;
35
+ return <ErrorComponent error={this.state.error} />;
24
36
  }
25
37
  return this.props.children;
26
38
  }
@@ -31,6 +43,8 @@ if (module.hot && typeof window.__deck_roots__ === "undefined") {
31
43
  }
32
44
 
33
45
  export class App extends AppBase {
46
+ // can be overridden in subclass
47
+ errorComponent = DefaultErrorComponent;
34
48
  static run(rootApp = null) {
35
49
  const base = new App();
36
50
  if (rootApp) {
@@ -46,49 +60,42 @@ export class App extends AppBase {
46
60
  defaultRenderer(Slide, article) {
47
61
  const el = article.get(0);
48
62
 
49
- if (module.hot && window.__deck_roots__[el.id]) {
63
+ if (window.__deck_roots__[el.id]) {
50
64
  this.unmountRoot(el.id);
51
65
  }
52
66
 
53
67
  const root = createRoot(el);
54
68
 
55
- if (module.hot) {
56
- window.__deck_roots__[el.id] = root;
57
- }
69
+ window.__deck_roots__[el.id] = root;
58
70
 
59
71
  const RootApp = this.rootApp(Slide);
60
-
61
- function App() {
72
+ const AppComponent = () => {
62
73
  // TODO: Refactor this to be a prop
63
74
  const slideState = useRootSlide(article);
64
75
 
65
76
  useEffect(() => {
66
77
  function slideClosed() {
67
78
  root.unmount();
68
- if (module.hot) {
69
- delete window.__deck_roots__[el.id];
70
- }
79
+ delete window.__deck_roots__[el.id];
80
+ article.off("slide:closed", slideClosed);
71
81
  }
72
82
 
73
83
  article.on("slide:closed", slideClosed);
74
-
75
- return () => {
76
- article.off("slide:closed", slideClosed);
77
- };
78
84
  }, []);
79
85
 
80
86
  return (
81
87
  <SlideContext.Provider value={slideState}>
82
88
  {!slideState.transitions.exited && (
83
- <ErrorBoundary el={el}>
89
+ // eslint-disable-next-line react/no-this-in-sfc
90
+ <ErrorBoundary errorComponent={this.errorComponent}>
84
91
  <CompanywideJSON>{RootApp}</CompanywideJSON>
85
92
  </ErrorBoundary>
86
93
  )}
87
94
  </SlideContext.Provider>
88
95
  );
89
- }
96
+ };
90
97
 
91
- root.render(<App />);
98
+ root.render(<AppComponent />);
92
99
  }
93
100
 
94
101
  unmountRoot(key) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livepreso/content-react",
3
- "version": "0.3.9",
3
+ "version": "0.4.1",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "publishConfig": {
@@ -17,7 +17,7 @@
17
17
  "dependencies": {
18
18
  "react": "~18.2.0",
19
19
  "react-dom": "~18.2.0",
20
- "@livepreso/content-base": "~1.1.5",
20
+ "@livepreso/content-base": "~1.1.6",
21
21
  "ulog": "~2.0.0-beta.18",
22
22
  "lodash.get": "~4.4.2",
23
23
  "lodash.isplainobject": "~4.0.6",