react-sync-ui 1.0.0 → 1.0.2

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.
package/README.md CHANGED
@@ -59,7 +59,7 @@ export const syncAlert = makeSyncUI<string, void>((props) => (
59
59
  <Button onClick={() => props.resolve()}>OK</Button>
60
60
  </ModalFooter>
61
61
  </Modal>
62
- );
62
+ ));
63
63
  ```
64
64
 
65
65
  ## what is `react-sync-ui` solving?
@@ -9,15 +9,12 @@ var React__default = _interopDefault(React);
9
9
 
10
10
  var useComponentDidMount = function useComponentDidMount(fn) {
11
11
  React.useEffect(fn, []);
12
- }; // this check broke the working of the hot reloading
13
-
12
+ };
14
13
  var usePromiseQueue = function usePromiseQueue() {
15
14
  var _asyncQueue$;
16
-
17
15
  var _useState = React.useState([]),
18
- asyncQueue = _useState[0],
19
- setAsyncQueue = _useState[1];
20
-
16
+ asyncQueue = _useState[0],
17
+ setAsyncQueue = _useState[1];
21
18
  var push = React.useCallback(function (data) {
22
19
  return new Promise(function (resolve, reject) {
23
20
  return setAsyncQueue(function (p) {
@@ -32,7 +29,7 @@ var usePromiseQueue = function usePromiseQueue() {
32
29
  var resolveHeadItem = React.useCallback(function (value) {
33
30
  setAsyncQueue(function (queue) {
34
31
  var first = queue[0],
35
- rest = queue.slice(1);
32
+ rest = queue.slice(1);
36
33
  first == null ? void 0 : first.resolve(value);
37
34
  return rest;
38
35
  });
@@ -40,7 +37,7 @@ var usePromiseQueue = function usePromiseQueue() {
40
37
  var rejectHeadItem = React.useCallback(function (reason) {
41
38
  setAsyncQueue(function (queue) {
42
39
  var first = queue[0],
43
- rest = queue.slice(1);
40
+ rest = queue.slice(1);
44
41
  first == null ? void 0 : first.reject(reason);
45
42
  return rest;
46
43
  });
@@ -53,8 +50,8 @@ var usePromiseQueue = function usePromiseQueue() {
53
50
  } : undefined,
54
51
  push: push
55
52
  };
56
- }; // ------------------------------------------------------------------------------------
57
-
53
+ };
54
+ // ------------------------------------------------------------------------------------
58
55
  var syncUIFactory = function syncUIFactory() {
59
56
  var mutSyncUIComponentsRenderQueue = [];
60
57
  /*
@@ -63,19 +60,15 @@ var syncUIFactory = function syncUIFactory() {
63
60
  "<SyncUI /> has to be initialized only once"
64
61
  );
65
62
  */
66
-
67
63
  return {
68
64
  makeSyncUI: function makeSyncUI(SyncUIUserComp) {
69
65
  var _ref, _SyncUIUserComp$displ;
70
-
71
66
  var _debugName = (_ref = (_SyncUIUserComp$displ = SyncUIUserComp.displayName) != null ? _SyncUIUserComp$displ : SyncUIUserComp.name) != null ? _ref : "uniqSymbolMessageType";
72
-
73
- var syncUIComponentType = Symbol(_debugName); // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called
74
-
67
+ var syncUIComponentType = Symbol(_debugName);
68
+ // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called
75
69
  var singletonSyncUIRef = {
76
70
  push: undefined
77
71
  };
78
-
79
72
  var SyncUISingletonComponent = function SyncUISingletonComponent(props) {
80
73
  useComponentDidMount(function () {
81
74
  singletonSyncUIRef.push = props.push;
@@ -91,7 +84,6 @@ var syncUIFactory = function syncUIFactory() {
91
84
  reject: props.head.reject
92
85
  });
93
86
  };
94
-
95
87
  mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);
96
88
  return function (input) {
97
89
  if (!singletonSyncUIRef.push) throw new Error("You have to initialize <SyncUI />");
@@ -113,10 +105,9 @@ var syncUIFactory = function syncUIFactory() {
113
105
  };
114
106
 
115
107
  var syncUIFactory$1 = syncUIFactory;
116
-
117
108
  var _syncUIFactory2 = /*#__PURE__*/syncUIFactory$1(),
118
- makeSyncUI = _syncUIFactory2.makeSyncUI,
119
- SyncUI = _syncUIFactory2.SyncUI;
109
+ makeSyncUI = _syncUIFactory2.makeSyncUI,
110
+ SyncUI = _syncUIFactory2.SyncUI;
120
111
 
121
112
  exports.SyncUI = SyncUI;
122
113
  exports.makeSyncUI = makeSyncUI;
@@ -1 +1 @@
1
- {"version":3,"file":"react-sync-ui.cjs.development.js","sources":["../src/syncUI.tsx","../src/index.ts"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\n\nconst useComponentDidMount = (fn: Parameters<typeof useEffect>[0]) => {\n useEffect(fn, []);\n};\n\n// this check broke the working of the hot reloading\nconst getSingletonComponentCheck = (errorMsg: string) => {\n let globalMountCounter = 0;\n\n return () => {\n useComponentDidMount(() => {\n if (globalMountCounter > 0) throw new Error(errorMsg);\n globalMountCounter++;\n });\n return <React.Fragment />;\n };\n};\n\n// ------------------------------------------------------------------------------------\n// TODO: there is tsdx old typescript parser and new ts fancy syntax is not working...\n// https://github.com/jaredpalmer/tsdx/issues/200\n// type PromiseQueueAPI<Data, ResolveValue> = ReturnType<typeof usePromiseQueue<any, any>>\ntype PromiseQueueAPI<Data, ResolveValue> = {\n head?: {\n data: Data;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n };\n push: (data: Data) => Promise<ResolveValue>;\n};\n\nexport const usePromiseQueue = <Data, ResolveValue = void>(): PromiseQueueAPI<\n Data,\n ResolveValue\n> => {\n const [asyncQueue, setAsyncQueue] = useState(\n [] as {\n data: Data;\n resolve: (arg: ResolveValue) => void;\n reject: (arg: any) => void;\n }[]\n );\n\n const push = useCallback((data: Data) => {\n return new Promise<ResolveValue>((resolve, reject) =>\n setAsyncQueue(p => [...p, { data, resolve, reject }])\n );\n }, []);\n\n const resolveHeadItem = useCallback((value: ResolveValue) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.resolve(value);\n return rest;\n });\n }, []);\n\n const rejectHeadItem = useCallback((reason?: any) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.reject(reason);\n return rest;\n });\n }, []);\n\n return {\n head: asyncQueue[0]\n ? {\n data: asyncQueue[0]?.data,\n resolve: resolveHeadItem,\n reject: rejectHeadItem\n }\n : undefined,\n push\n };\n};\n\n// ------------------------------------------------------------------------------------\n\nexport const syncUIFactory = () => {\n const mutSyncUIComponentsRenderQueue = [] as React.FC<\n PromiseQueueAPI<any, any>\n >[];\n\n /*\n // this check broke the working of the hot reloading\n const ThrowIfMoreInstances = getSingletonComponentCheck(\n \"<SyncUI /> has to be initialized only once\"\n );\n */\n\n return {\n makeSyncUI: <InputData, ResolveValue = void>(\n SyncUIUserComp: React.FC<{\n data: InputData;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n }>\n ) => {\n type QItem = PromiseQueueAPI<\n { type: Symbol; inputData: InputData },\n ResolveValue\n >;\n\n const _debugName =\n SyncUIUserComp.displayName ??\n SyncUIUserComp.name ??\n \"uniqSymbolMessageType\";\n\n const syncUIComponentType = Symbol(_debugName);\n\n // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called\n const singletonSyncUIRef = {\n push: undefined as undefined | QItem[\"push\"]\n };\n\n const SyncUISingletonComponent = (props: QItem) => {\n useComponentDidMount(() => {\n singletonSyncUIRef.push = props.push;\n return () => (singletonSyncUIRef.push = undefined);\n });\n\n if (!props.head) return null;\n if (props.head.data.type !== syncUIComponentType) return null;\n\n return (\n <SyncUIUserComp\n data={props.head.data.inputData}\n resolve={props.head.resolve}\n reject={props.head.reject}\n />\n );\n };\n\n mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);\n\n return (input: InputData) => {\n if (!singletonSyncUIRef.push)\n throw new Error(`You have to initialize <SyncUI />`);\n return singletonSyncUIRef.push({\n type: syncUIComponentType,\n inputData: input\n });\n };\n },\n SyncUI: () => {\n const queue = usePromiseQueue();\n return (\n <>\n {/* <ThrowIfMoreInstances /> */}\n {mutSyncUIComponentsRenderQueue.map((SyncComp, key) => (\n <React.Fragment key={key}>\n <SyncComp {...queue} />\n </React.Fragment>\n ))}\n </>\n );\n }\n };\n};\n","import { syncUIFactory as _syncUIFactory } from \"./syncUI\";\nexport const syncUIFactory = _syncUIFactory;\nexport const { makeSyncUI, SyncUI } = syncUIFactory();\n"],"names":["useComponentDidMount","fn","useEffect","usePromiseQueue","useState","asyncQueue","setAsyncQueue","push","useCallback","data","Promise","resolve","reject","p","resolveHeadItem","value","queue","first","rest","rejectHeadItem","reason","head","undefined","syncUIFactory","mutSyncUIComponentsRenderQueue","makeSyncUI","SyncUIUserComp","_debugName","displayName","name","syncUIComponentType","Symbol","singletonSyncUIRef","SyncUISingletonComponent","props","type","React","inputData","input","Error","SyncUI","map","SyncComp","key","Fragment","_syncUIFactory"],"mappings":"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"}
1
+ {"version":3,"file":"react-sync-ui.cjs.development.js","sources":["../src/syncUI.tsx","../src/index.ts"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\n\nconst useComponentDidMount = (fn: Parameters<typeof useEffect>[0]) => {\n useEffect(fn, []);\n};\n\n// this function broke the working of the hot reloading\n/*\nconst getSingletonComponentCheck = (errorMsg: string) => {\n let globalMountCounter = 0;\n\n return () => {\n useComponentDidMount(() => {\n if (globalMountCounter > 0) throw new Error(errorMsg);\n globalMountCounter++;\n });\n return <React.Fragment />;\n };\n};\n*/\n\n// ------------------------------------------------------------------------------------\n// TODO: there is tsdx old typescript parser and new ts fancy syntax is not working...\n// https://github.com/jaredpalmer/tsdx/issues/200\n// type PromiseQueueAPI<Data, ResolveValue> = ReturnType<typeof usePromiseQueue<any, any>>\ntype PromiseQueueAPI<Data, ResolveValue> = {\n head?: {\n data: Data;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n };\n push: (data: Data) => Promise<ResolveValue>;\n};\n\nexport const usePromiseQueue = <Data, ResolveValue = void>(): PromiseQueueAPI<\n Data,\n ResolveValue\n> => {\n const [asyncQueue, setAsyncQueue] = useState(\n [] as {\n data: Data;\n resolve: (arg: ResolveValue) => void;\n reject: (arg: any) => void;\n }[]\n );\n\n const push = useCallback((data: Data) => {\n return new Promise<ResolveValue>((resolve, reject) =>\n setAsyncQueue(p => [...p, { data, resolve, reject }])\n );\n }, []);\n\n const resolveHeadItem = useCallback((value: ResolveValue) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.resolve(value);\n return rest;\n });\n }, []);\n\n const rejectHeadItem = useCallback((reason?: any) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.reject(reason);\n return rest;\n });\n }, []);\n\n return {\n head: asyncQueue[0]\n ? {\n data: asyncQueue[0]?.data,\n resolve: resolveHeadItem,\n reject: rejectHeadItem\n }\n : undefined,\n push\n };\n};\n\n// ------------------------------------------------------------------------------------\n\nexport const syncUIFactory = () => {\n const mutSyncUIComponentsRenderQueue = [] as React.FC<\n PromiseQueueAPI<any, any>\n >[];\n\n /*\n // this check broke the working of the hot reloading\n const ThrowIfMoreInstances = getSingletonComponentCheck(\n \"<SyncUI /> has to be initialized only once\"\n );\n */\n\n return {\n makeSyncUI: <InputData, ResolveValue = void>(\n SyncUIUserComp: React.FC<{\n data: InputData;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n }>\n ) => {\n type QItem = PromiseQueueAPI<\n { type: Symbol; inputData: InputData },\n ResolveValue\n >;\n\n const _debugName =\n SyncUIUserComp.displayName ??\n SyncUIUserComp.name ??\n \"uniqSymbolMessageType\";\n\n const syncUIComponentType = Symbol(_debugName);\n\n // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called\n const singletonSyncUIRef = {\n push: undefined as undefined | QItem[\"push\"]\n };\n\n const SyncUISingletonComponent = (props: QItem) => {\n useComponentDidMount(() => {\n singletonSyncUIRef.push = props.push;\n return () => (singletonSyncUIRef.push = undefined);\n });\n\n if (!props.head) return null;\n if (props.head.data.type !== syncUIComponentType) return null;\n\n return (\n <SyncUIUserComp\n data={props.head.data.inputData}\n resolve={props.head.resolve}\n reject={props.head.reject}\n />\n );\n };\n\n mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);\n\n return (input: InputData) => {\n if (!singletonSyncUIRef.push)\n throw new Error(`You have to initialize <SyncUI />`);\n return singletonSyncUIRef.push({\n type: syncUIComponentType,\n inputData: input\n });\n };\n },\n SyncUI: () => {\n const queue = usePromiseQueue();\n return (\n <>\n {/* <ThrowIfMoreInstances /> */}\n {mutSyncUIComponentsRenderQueue.map((SyncComp, key) => (\n <React.Fragment key={key}>\n <SyncComp {...queue} />\n </React.Fragment>\n ))}\n </>\n );\n }\n };\n};\n","import { syncUIFactory as _syncUIFactory } from \"./syncUI\";\nexport const syncUIFactory = _syncUIFactory;\nexport const { makeSyncUI, SyncUI } = syncUIFactory();\n"],"names":["useComponentDidMount","fn","useEffect","usePromiseQueue","_useState","useState","asyncQueue","setAsyncQueue","push","useCallback","data","Promise","resolve","reject","p","concat","resolveHeadItem","value","queue","first","rest","slice","rejectHeadItem","reason","head","_asyncQueue$","undefined","syncUIFactory","mutSyncUIComponentsRenderQueue","makeSyncUI","SyncUIUserComp","_debugName","_ref","_SyncUIUserComp$displ","displayName","name","syncUIComponentType","Symbol","singletonSyncUIRef","SyncUISingletonComponent","props","type","React","inputData","input","Error","SyncUI","map","SyncComp","key","Fragment","_syncUIFactory","_syncUIFactory2"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-sync-ui.cjs.production.min.js","sources":["../src/index.ts","../src/syncUI.tsx"],"sourcesContent":["import { syncUIFactory as _syncUIFactory } from \"./syncUI\";\nexport const syncUIFactory = _syncUIFactory;\nexport const { makeSyncUI, SyncUI } = syncUIFactory();\n","import React, { useCallback, useEffect, useState } from \"react\";\n\nconst useComponentDidMount = (fn: Parameters<typeof useEffect>[0]) => {\n useEffect(fn, []);\n};\n\n// this check broke the working of the hot reloading\nconst getSingletonComponentCheck = (errorMsg: string) => {\n let globalMountCounter = 0;\n\n return () => {\n useComponentDidMount(() => {\n if (globalMountCounter > 0) throw new Error(errorMsg);\n globalMountCounter++;\n });\n return <React.Fragment />;\n };\n};\n\n// ------------------------------------------------------------------------------------\n// TODO: there is tsdx old typescript parser and new ts fancy syntax is not working...\n// https://github.com/jaredpalmer/tsdx/issues/200\n// type PromiseQueueAPI<Data, ResolveValue> = ReturnType<typeof usePromiseQueue<any, any>>\ntype PromiseQueueAPI<Data, ResolveValue> = {\n head?: {\n data: Data;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n };\n push: (data: Data) => Promise<ResolveValue>;\n};\n\nexport const usePromiseQueue = <Data, ResolveValue = void>(): PromiseQueueAPI<\n Data,\n ResolveValue\n> => {\n const [asyncQueue, setAsyncQueue] = useState(\n [] as {\n data: Data;\n resolve: (arg: ResolveValue) => void;\n reject: (arg: any) => void;\n }[]\n );\n\n const push = useCallback((data: Data) => {\n return new Promise<ResolveValue>((resolve, reject) =>\n setAsyncQueue(p => [...p, { data, resolve, reject }])\n );\n }, []);\n\n const resolveHeadItem = useCallback((value: ResolveValue) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.resolve(value);\n return rest;\n });\n }, []);\n\n const rejectHeadItem = useCallback((reason?: any) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.reject(reason);\n return rest;\n });\n }, []);\n\n return {\n head: asyncQueue[0]\n ? {\n data: asyncQueue[0]?.data,\n resolve: resolveHeadItem,\n reject: rejectHeadItem\n }\n : undefined,\n push\n };\n};\n\n// ------------------------------------------------------------------------------------\n\nexport const syncUIFactory = () => {\n const mutSyncUIComponentsRenderQueue = [] as React.FC<\n PromiseQueueAPI<any, any>\n >[];\n\n /*\n // this check broke the working of the hot reloading\n const ThrowIfMoreInstances = getSingletonComponentCheck(\n \"<SyncUI /> has to be initialized only once\"\n );\n */\n\n return {\n makeSyncUI: <InputData, ResolveValue = void>(\n SyncUIUserComp: React.FC<{\n data: InputData;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n }>\n ) => {\n type QItem = PromiseQueueAPI<\n { type: Symbol; inputData: InputData },\n ResolveValue\n >;\n\n const _debugName =\n SyncUIUserComp.displayName ??\n SyncUIUserComp.name ??\n \"uniqSymbolMessageType\";\n\n const syncUIComponentType = Symbol(_debugName);\n\n // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called\n const singletonSyncUIRef = {\n push: undefined as undefined | QItem[\"push\"]\n };\n\n const SyncUISingletonComponent = (props: QItem) => {\n useComponentDidMount(() => {\n singletonSyncUIRef.push = props.push;\n return () => (singletonSyncUIRef.push = undefined);\n });\n\n if (!props.head) return null;\n if (props.head.data.type !== syncUIComponentType) return null;\n\n return (\n <SyncUIUserComp\n data={props.head.data.inputData}\n resolve={props.head.resolve}\n reject={props.head.reject}\n />\n );\n };\n\n mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);\n\n return (input: InputData) => {\n if (!singletonSyncUIRef.push)\n throw new Error(`You have to initialize <SyncUI />`);\n return singletonSyncUIRef.push({\n type: syncUIComponentType,\n inputData: input\n });\n };\n },\n SyncUI: () => {\n const queue = usePromiseQueue();\n return (\n <>\n {/* <ThrowIfMoreInstances /> */}\n {mutSyncUIComponentsRenderQueue.map((SyncComp, key) => (\n <React.Fragment key={key}>\n <SyncComp {...queue} />\n </React.Fragment>\n ))}\n </>\n );\n }\n };\n};\n"],"names":["syncUIFactory","mutSyncUIComponentsRenderQueue","makeSyncUI","SyncUIUserComp","_debugName","displayName","name","syncUIComponentType","Symbol","singletonSyncUIRef","push","undefined","props","useEffect","head","data","type","React","inputData","resolve","reject","input","Error","SyncUI","asyncQueue","setAsyncQueue","resolveHeadItem","rejectHeadItem","queue","useState","useCallback","Promise","p","value","first","rest","reason","_asyncQueue$","map","SyncComp","key","Fragment"],"mappings":"oJACaA,EC+EgB,eACrBC,EAAiC,SAWhC,CACLC,WAAY,SACVC,WAWMC,oBACJD,EAAeE,eACfF,EAAeG,QACf,wBAEIC,EAAsBC,OAAOJ,GAG7BK,EAAqB,CACzBC,UAAMC,UAqBRV,EAA+BS,MAlBE,SAACE,UAlHtCC,aAmH2B,kBACnBJ,EAAmBC,KAAOE,EAAMF,KACzB,kBAAOD,EAAmBC,UAAOC,KArHlC,IAwHHC,EAAME,KACPF,EAAME,KAAKC,KAAKC,OAAST,EAA4B,KAGvDU,gBAACd,GACCY,KAAMH,EAAME,KAAKC,KAAKG,UACtBC,QAASP,EAAME,KAAKK,QACpBC,OAAQR,EAAME,KAAKM,SAPC,QAcnB,SAACC,OACDZ,EAAmBC,KACtB,MAAM,IAAIY,kDACLb,EAAmBC,KAAK,CAC7BM,KAAMT,EACNW,UAAWG,MAIjBE,OAAQ,mBA9GHC,EAAYC,EAQbf,EAMAgB,EAQAC,EAyFIC,GA/GHJ,KAA6BK,WAClC,QADiBJ,OAQbf,EAAOoB,eAAY,SAACf,UACjB,IAAIgB,SAAsB,SAACZ,EAASC,UACzCK,GAAc,SAAAO,mBAASA,GAAG,CAAEjB,KAAAA,EAAMI,QAAAA,EAASC,OAAAA,aAE5C,IAEGM,EAAkBI,eAAY,SAACG,GACnCR,GAAc,SAAAG,OACLM,EAAkBN,KAARO,EAAQP,wBACzBM,GAAAA,EAAOf,QAAQc,GACRE,OAER,IAEGR,EAAiBG,eAAY,SAACM,GAClCX,GAAc,SAAAG,OACLM,EAAkBN,KAARO,EAAQP,wBACzBM,GAAAA,EAAOd,OAAOgB,GACPD,OAER,IAEI,CACLrB,KAAMU,EAAW,GACb,CACET,cAAMS,EAAW,WAAXa,EAAetB,KACrBI,QAASO,EACTN,OAAQO,QAEVhB,EACJD,KAAAA,WA2EIO,gCAEGhB,EAA+BqC,KAAI,SAACC,EAAUC,UAC7CvB,gBAACA,EAAMwB,UAASD,IAAKA,GACnBvB,gBAACsB,mBAAaX,cDvJU5B,IAAvBE,IAAAA,4BAAYqB"}
1
+ {"version":3,"file":"react-sync-ui.cjs.production.min.js","sources":["../src/index.ts","../src/syncUI.tsx"],"sourcesContent":["import { syncUIFactory as _syncUIFactory } from \"./syncUI\";\nexport const syncUIFactory = _syncUIFactory;\nexport const { makeSyncUI, SyncUI } = syncUIFactory();\n","import React, { useCallback, useEffect, useState } from \"react\";\n\nconst useComponentDidMount = (fn: Parameters<typeof useEffect>[0]) => {\n useEffect(fn, []);\n};\n\n// this function broke the working of the hot reloading\n/*\nconst getSingletonComponentCheck = (errorMsg: string) => {\n let globalMountCounter = 0;\n\n return () => {\n useComponentDidMount(() => {\n if (globalMountCounter > 0) throw new Error(errorMsg);\n globalMountCounter++;\n });\n return <React.Fragment />;\n };\n};\n*/\n\n// ------------------------------------------------------------------------------------\n// TODO: there is tsdx old typescript parser and new ts fancy syntax is not working...\n// https://github.com/jaredpalmer/tsdx/issues/200\n// type PromiseQueueAPI<Data, ResolveValue> = ReturnType<typeof usePromiseQueue<any, any>>\ntype PromiseQueueAPI<Data, ResolveValue> = {\n head?: {\n data: Data;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n };\n push: (data: Data) => Promise<ResolveValue>;\n};\n\nexport const usePromiseQueue = <Data, ResolveValue = void>(): PromiseQueueAPI<\n Data,\n ResolveValue\n> => {\n const [asyncQueue, setAsyncQueue] = useState(\n [] as {\n data: Data;\n resolve: (arg: ResolveValue) => void;\n reject: (arg: any) => void;\n }[]\n );\n\n const push = useCallback((data: Data) => {\n return new Promise<ResolveValue>((resolve, reject) =>\n setAsyncQueue(p => [...p, { data, resolve, reject }])\n );\n }, []);\n\n const resolveHeadItem = useCallback((value: ResolveValue) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.resolve(value);\n return rest;\n });\n }, []);\n\n const rejectHeadItem = useCallback((reason?: any) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.reject(reason);\n return rest;\n });\n }, []);\n\n return {\n head: asyncQueue[0]\n ? {\n data: asyncQueue[0]?.data,\n resolve: resolveHeadItem,\n reject: rejectHeadItem\n }\n : undefined,\n push\n };\n};\n\n// ------------------------------------------------------------------------------------\n\nexport const syncUIFactory = () => {\n const mutSyncUIComponentsRenderQueue = [] as React.FC<\n PromiseQueueAPI<any, any>\n >[];\n\n /*\n // this check broke the working of the hot reloading\n const ThrowIfMoreInstances = getSingletonComponentCheck(\n \"<SyncUI /> has to be initialized only once\"\n );\n */\n\n return {\n makeSyncUI: <InputData, ResolveValue = void>(\n SyncUIUserComp: React.FC<{\n data: InputData;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n }>\n ) => {\n type QItem = PromiseQueueAPI<\n { type: Symbol; inputData: InputData },\n ResolveValue\n >;\n\n const _debugName =\n SyncUIUserComp.displayName ??\n SyncUIUserComp.name ??\n \"uniqSymbolMessageType\";\n\n const syncUIComponentType = Symbol(_debugName);\n\n // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called\n const singletonSyncUIRef = {\n push: undefined as undefined | QItem[\"push\"]\n };\n\n const SyncUISingletonComponent = (props: QItem) => {\n useComponentDidMount(() => {\n singletonSyncUIRef.push = props.push;\n return () => (singletonSyncUIRef.push = undefined);\n });\n\n if (!props.head) return null;\n if (props.head.data.type !== syncUIComponentType) return null;\n\n return (\n <SyncUIUserComp\n data={props.head.data.inputData}\n resolve={props.head.resolve}\n reject={props.head.reject}\n />\n );\n };\n\n mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);\n\n return (input: InputData) => {\n if (!singletonSyncUIRef.push)\n throw new Error(`You have to initialize <SyncUI />`);\n return singletonSyncUIRef.push({\n type: syncUIComponentType,\n inputData: input\n });\n };\n },\n SyncUI: () => {\n const queue = usePromiseQueue();\n return (\n <>\n {/* <ThrowIfMoreInstances /> */}\n {mutSyncUIComponentsRenderQueue.map((SyncComp, key) => (\n <React.Fragment key={key}>\n <SyncComp {...queue} />\n </React.Fragment>\n ))}\n </>\n );\n }\n };\n};\n"],"names":["syncUIFactory","mutSyncUIComponentsRenderQueue","makeSyncUI","SyncUIUserComp","_debugName","_ref","_SyncUIUserComp$displ","displayName","name","syncUIComponentType","Symbol","singletonSyncUIRef","push","undefined","props","useEffect","head","data","type","React","inputData","resolve","reject","input","Error","SyncUI","_useState","asyncQueue","setAsyncQueue","resolveHeadItem","rejectHeadItem","queue","useState","useCallback","Promise","p","concat","value","first","rest","slice","reason","_asyncQueue$","map","SyncComp","key","Fragment","_syncUIFactory2"],"mappings":"oJACaA,ECiFgB,WAC3B,IAAMC,EAAiC,GAWvC,MAAO,CACLC,WAAY,SACVC,WAWMC,SAAUC,SAAAC,EACdH,EAAeI,aAAWD,EAC1BH,EAAeK,MAAIH,EACnB,wBAEII,EAAsBC,OAAON,GAG7BO,EAAqB,CACzBC,UAAMC,GAuBR,OAFAZ,EAA+BW,MAlBE,SAACE,GAMhC,OA1HNC,aAqH2B,WAEnB,OADAJ,EAAmBC,KAAOE,EAAMF,KACzB,WAAA,OAAOD,EAAmBC,UAAOC,KAvHlC,IA0HHC,EAAME,KACPF,EAAME,KAAKC,KAAKC,OAAST,EAA4B,KAGvDU,gBAAChB,GACCc,KAAMH,EAAME,KAAKC,KAAKG,UACtBC,QAASP,EAAME,KAAKK,QACpBC,OAAQR,EAAME,KAAKM,SAPC,QAcnB,SAACC,GACN,IAAKZ,EAAmBC,KACtB,MAAM,IAAIY,2CACZ,OAAOb,EAAmBC,KAAK,CAC7BM,KAAMT,EACNW,UAAWG,MAIjBE,OAAQ,WACN,MA/GJC,EAAOC,EAAYC,EAQbhB,EAMAiB,EAQAC,EAyFIC,GA/GHJ,GAAPD,EAAoCM,WAClC,QADiBJ,EAAaF,KAQ1Bd,EAAOqB,eAAY,SAAChB,GACxB,OAAO,IAAIiB,SAAsB,SAACb,EAASC,GAAM,OAC/CM,GAAc,SAAAO,GAAC,SAAAC,OAAQD,GAAG,CAAElB,KAAAA,EAAMI,QAAAA,EAASC,OAAAA,aAE5C,IAEGO,EAAkBI,eAAY,SAACI,GACnCT,GAAc,SAAAG,GACZ,IAAOO,EAAkBP,KAARQ,EAAQR,EAAKS,SAE9B,aADAF,GAAAA,EAAOjB,QAAQgB,GACRE,OAER,IAEGT,EAAiBG,eAAY,SAACQ,GAClCb,GAAc,SAAAG,GACZ,IAAOO,EAAkBP,KAARQ,EAAQR,EAAKS,SAE9B,aADAF,GAAAA,EAAOhB,OAAOmB,GACPF,OAER,IAEI,CACLvB,KAAMW,EAAW,GACb,CACEV,YAAIyB,EAAEf,EAAW,WAAXe,EAAezB,KACrBI,QAASQ,EACTP,OAAQQ,QAEVjB,EACJD,KAAAA,IA0EE,OACEO,gCAEGlB,EAA+B0C,KAAI,SAACC,EAAUC,GAAG,OAChD1B,gBAACA,EAAM2B,UAASD,IAAKA,GACnB1B,gBAACyB,mBAAab,YDzJrBgB,EAA+B/C,IAAvBE,EAAU6C,EAAV7C,0BAAkB6C,EAANtB"}
@@ -2,15 +2,12 @@ import React, { useState, useCallback, useEffect } from 'react';
2
2
 
3
3
  var useComponentDidMount = function useComponentDidMount(fn) {
4
4
  useEffect(fn, []);
5
- }; // this check broke the working of the hot reloading
6
-
5
+ };
7
6
  var usePromiseQueue = function usePromiseQueue() {
8
7
  var _asyncQueue$;
9
-
10
8
  var _useState = useState([]),
11
- asyncQueue = _useState[0],
12
- setAsyncQueue = _useState[1];
13
-
9
+ asyncQueue = _useState[0],
10
+ setAsyncQueue = _useState[1];
14
11
  var push = useCallback(function (data) {
15
12
  return new Promise(function (resolve, reject) {
16
13
  return setAsyncQueue(function (p) {
@@ -25,7 +22,7 @@ var usePromiseQueue = function usePromiseQueue() {
25
22
  var resolveHeadItem = useCallback(function (value) {
26
23
  setAsyncQueue(function (queue) {
27
24
  var first = queue[0],
28
- rest = queue.slice(1);
25
+ rest = queue.slice(1);
29
26
  first == null ? void 0 : first.resolve(value);
30
27
  return rest;
31
28
  });
@@ -33,7 +30,7 @@ var usePromiseQueue = function usePromiseQueue() {
33
30
  var rejectHeadItem = useCallback(function (reason) {
34
31
  setAsyncQueue(function (queue) {
35
32
  var first = queue[0],
36
- rest = queue.slice(1);
33
+ rest = queue.slice(1);
37
34
  first == null ? void 0 : first.reject(reason);
38
35
  return rest;
39
36
  });
@@ -46,8 +43,8 @@ var usePromiseQueue = function usePromiseQueue() {
46
43
  } : undefined,
47
44
  push: push
48
45
  };
49
- }; // ------------------------------------------------------------------------------------
50
-
46
+ };
47
+ // ------------------------------------------------------------------------------------
51
48
  var syncUIFactory = function syncUIFactory() {
52
49
  var mutSyncUIComponentsRenderQueue = [];
53
50
  /*
@@ -56,19 +53,15 @@ var syncUIFactory = function syncUIFactory() {
56
53
  "<SyncUI /> has to be initialized only once"
57
54
  );
58
55
  */
59
-
60
56
  return {
61
57
  makeSyncUI: function makeSyncUI(SyncUIUserComp) {
62
58
  var _ref, _SyncUIUserComp$displ;
63
-
64
59
  var _debugName = (_ref = (_SyncUIUserComp$displ = SyncUIUserComp.displayName) != null ? _SyncUIUserComp$displ : SyncUIUserComp.name) != null ? _ref : "uniqSymbolMessageType";
65
-
66
- var syncUIComponentType = Symbol(_debugName); // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called
67
-
60
+ var syncUIComponentType = Symbol(_debugName);
61
+ // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called
68
62
  var singletonSyncUIRef = {
69
63
  push: undefined
70
64
  };
71
-
72
65
  var SyncUISingletonComponent = function SyncUISingletonComponent(props) {
73
66
  useComponentDidMount(function () {
74
67
  singletonSyncUIRef.push = props.push;
@@ -84,7 +77,6 @@ var syncUIFactory = function syncUIFactory() {
84
77
  reject: props.head.reject
85
78
  });
86
79
  };
87
-
88
80
  mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);
89
81
  return function (input) {
90
82
  if (!singletonSyncUIRef.push) throw new Error("You have to initialize <SyncUI />");
@@ -106,10 +98,9 @@ var syncUIFactory = function syncUIFactory() {
106
98
  };
107
99
 
108
100
  var syncUIFactory$1 = syncUIFactory;
109
-
110
101
  var _syncUIFactory2 = /*#__PURE__*/syncUIFactory$1(),
111
- makeSyncUI = _syncUIFactory2.makeSyncUI,
112
- SyncUI = _syncUIFactory2.SyncUI;
102
+ makeSyncUI = _syncUIFactory2.makeSyncUI,
103
+ SyncUI = _syncUIFactory2.SyncUI;
113
104
 
114
105
  export { SyncUI, makeSyncUI, syncUIFactory$1 as syncUIFactory };
115
106
  //# sourceMappingURL=react-sync-ui.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-sync-ui.esm.js","sources":["../src/syncUI.tsx","../src/index.ts"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\n\nconst useComponentDidMount = (fn: Parameters<typeof useEffect>[0]) => {\n useEffect(fn, []);\n};\n\n// this check broke the working of the hot reloading\nconst getSingletonComponentCheck = (errorMsg: string) => {\n let globalMountCounter = 0;\n\n return () => {\n useComponentDidMount(() => {\n if (globalMountCounter > 0) throw new Error(errorMsg);\n globalMountCounter++;\n });\n return <React.Fragment />;\n };\n};\n\n// ------------------------------------------------------------------------------------\n// TODO: there is tsdx old typescript parser and new ts fancy syntax is not working...\n// https://github.com/jaredpalmer/tsdx/issues/200\n// type PromiseQueueAPI<Data, ResolveValue> = ReturnType<typeof usePromiseQueue<any, any>>\ntype PromiseQueueAPI<Data, ResolveValue> = {\n head?: {\n data: Data;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n };\n push: (data: Data) => Promise<ResolveValue>;\n};\n\nexport const usePromiseQueue = <Data, ResolveValue = void>(): PromiseQueueAPI<\n Data,\n ResolveValue\n> => {\n const [asyncQueue, setAsyncQueue] = useState(\n [] as {\n data: Data;\n resolve: (arg: ResolveValue) => void;\n reject: (arg: any) => void;\n }[]\n );\n\n const push = useCallback((data: Data) => {\n return new Promise<ResolveValue>((resolve, reject) =>\n setAsyncQueue(p => [...p, { data, resolve, reject }])\n );\n }, []);\n\n const resolveHeadItem = useCallback((value: ResolveValue) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.resolve(value);\n return rest;\n });\n }, []);\n\n const rejectHeadItem = useCallback((reason?: any) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.reject(reason);\n return rest;\n });\n }, []);\n\n return {\n head: asyncQueue[0]\n ? {\n data: asyncQueue[0]?.data,\n resolve: resolveHeadItem,\n reject: rejectHeadItem\n }\n : undefined,\n push\n };\n};\n\n// ------------------------------------------------------------------------------------\n\nexport const syncUIFactory = () => {\n const mutSyncUIComponentsRenderQueue = [] as React.FC<\n PromiseQueueAPI<any, any>\n >[];\n\n /*\n // this check broke the working of the hot reloading\n const ThrowIfMoreInstances = getSingletonComponentCheck(\n \"<SyncUI /> has to be initialized only once\"\n );\n */\n\n return {\n makeSyncUI: <InputData, ResolveValue = void>(\n SyncUIUserComp: React.FC<{\n data: InputData;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n }>\n ) => {\n type QItem = PromiseQueueAPI<\n { type: Symbol; inputData: InputData },\n ResolveValue\n >;\n\n const _debugName =\n SyncUIUserComp.displayName ??\n SyncUIUserComp.name ??\n \"uniqSymbolMessageType\";\n\n const syncUIComponentType = Symbol(_debugName);\n\n // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called\n const singletonSyncUIRef = {\n push: undefined as undefined | QItem[\"push\"]\n };\n\n const SyncUISingletonComponent = (props: QItem) => {\n useComponentDidMount(() => {\n singletonSyncUIRef.push = props.push;\n return () => (singletonSyncUIRef.push = undefined);\n });\n\n if (!props.head) return null;\n if (props.head.data.type !== syncUIComponentType) return null;\n\n return (\n <SyncUIUserComp\n data={props.head.data.inputData}\n resolve={props.head.resolve}\n reject={props.head.reject}\n />\n );\n };\n\n mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);\n\n return (input: InputData) => {\n if (!singletonSyncUIRef.push)\n throw new Error(`You have to initialize <SyncUI />`);\n return singletonSyncUIRef.push({\n type: syncUIComponentType,\n inputData: input\n });\n };\n },\n SyncUI: () => {\n const queue = usePromiseQueue();\n return (\n <>\n {/* <ThrowIfMoreInstances /> */}\n {mutSyncUIComponentsRenderQueue.map((SyncComp, key) => (\n <React.Fragment key={key}>\n <SyncComp {...queue} />\n </React.Fragment>\n ))}\n </>\n );\n }\n };\n};\n","import { syncUIFactory as _syncUIFactory } from \"./syncUI\";\nexport const syncUIFactory = _syncUIFactory;\nexport const { makeSyncUI, SyncUI } = syncUIFactory();\n"],"names":["useComponentDidMount","fn","useEffect","usePromiseQueue","useState","asyncQueue","setAsyncQueue","push","useCallback","data","Promise","resolve","reject","p","resolveHeadItem","value","queue","first","rest","rejectHeadItem","reason","head","undefined","syncUIFactory","mutSyncUIComponentsRenderQueue","makeSyncUI","SyncUIUserComp","_debugName","displayName","name","syncUIComponentType","Symbol","singletonSyncUIRef","SyncUISingletonComponent","props","type","React","inputData","input","Error","SyncUI","map","SyncComp","key","Fragment","_syncUIFactory"],"mappings":"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"}
1
+ {"version":3,"file":"react-sync-ui.esm.js","sources":["../src/syncUI.tsx","../src/index.ts"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\n\nconst useComponentDidMount = (fn: Parameters<typeof useEffect>[0]) => {\n useEffect(fn, []);\n};\n\n// this function broke the working of the hot reloading\n/*\nconst getSingletonComponentCheck = (errorMsg: string) => {\n let globalMountCounter = 0;\n\n return () => {\n useComponentDidMount(() => {\n if (globalMountCounter > 0) throw new Error(errorMsg);\n globalMountCounter++;\n });\n return <React.Fragment />;\n };\n};\n*/\n\n// ------------------------------------------------------------------------------------\n// TODO: there is tsdx old typescript parser and new ts fancy syntax is not working...\n// https://github.com/jaredpalmer/tsdx/issues/200\n// type PromiseQueueAPI<Data, ResolveValue> = ReturnType<typeof usePromiseQueue<any, any>>\ntype PromiseQueueAPI<Data, ResolveValue> = {\n head?: {\n data: Data;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n };\n push: (data: Data) => Promise<ResolveValue>;\n};\n\nexport const usePromiseQueue = <Data, ResolveValue = void>(): PromiseQueueAPI<\n Data,\n ResolveValue\n> => {\n const [asyncQueue, setAsyncQueue] = useState(\n [] as {\n data: Data;\n resolve: (arg: ResolveValue) => void;\n reject: (arg: any) => void;\n }[]\n );\n\n const push = useCallback((data: Data) => {\n return new Promise<ResolveValue>((resolve, reject) =>\n setAsyncQueue(p => [...p, { data, resolve, reject }])\n );\n }, []);\n\n const resolveHeadItem = useCallback((value: ResolveValue) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.resolve(value);\n return rest;\n });\n }, []);\n\n const rejectHeadItem = useCallback((reason?: any) => {\n setAsyncQueue(queue => {\n const [first, ...rest] = queue;\n first?.reject(reason);\n return rest;\n });\n }, []);\n\n return {\n head: asyncQueue[0]\n ? {\n data: asyncQueue[0]?.data,\n resolve: resolveHeadItem,\n reject: rejectHeadItem\n }\n : undefined,\n push\n };\n};\n\n// ------------------------------------------------------------------------------------\n\nexport const syncUIFactory = () => {\n const mutSyncUIComponentsRenderQueue = [] as React.FC<\n PromiseQueueAPI<any, any>\n >[];\n\n /*\n // this check broke the working of the hot reloading\n const ThrowIfMoreInstances = getSingletonComponentCheck(\n \"<SyncUI /> has to be initialized only once\"\n );\n */\n\n return {\n makeSyncUI: <InputData, ResolveValue = void>(\n SyncUIUserComp: React.FC<{\n data: InputData;\n resolve: (value: ResolveValue) => void;\n reject: (reason?: any) => void;\n }>\n ) => {\n type QItem = PromiseQueueAPI<\n { type: Symbol; inputData: InputData },\n ResolveValue\n >;\n\n const _debugName =\n SyncUIUserComp.displayName ??\n SyncUIUserComp.name ??\n \"uniqSymbolMessageType\";\n\n const syncUIComponentType = Symbol(_debugName);\n\n // object pointer reference with the push key has to be there to change returned mutable reference object while the function is already called\n const singletonSyncUIRef = {\n push: undefined as undefined | QItem[\"push\"]\n };\n\n const SyncUISingletonComponent = (props: QItem) => {\n useComponentDidMount(() => {\n singletonSyncUIRef.push = props.push;\n return () => (singletonSyncUIRef.push = undefined);\n });\n\n if (!props.head) return null;\n if (props.head.data.type !== syncUIComponentType) return null;\n\n return (\n <SyncUIUserComp\n data={props.head.data.inputData}\n resolve={props.head.resolve}\n reject={props.head.reject}\n />\n );\n };\n\n mutSyncUIComponentsRenderQueue.push(SyncUISingletonComponent);\n\n return (input: InputData) => {\n if (!singletonSyncUIRef.push)\n throw new Error(`You have to initialize <SyncUI />`);\n return singletonSyncUIRef.push({\n type: syncUIComponentType,\n inputData: input\n });\n };\n },\n SyncUI: () => {\n const queue = usePromiseQueue();\n return (\n <>\n {/* <ThrowIfMoreInstances /> */}\n {mutSyncUIComponentsRenderQueue.map((SyncComp, key) => (\n <React.Fragment key={key}>\n <SyncComp {...queue} />\n </React.Fragment>\n ))}\n </>\n );\n }\n };\n};\n","import { syncUIFactory as _syncUIFactory } from \"./syncUI\";\nexport const syncUIFactory = _syncUIFactory;\nexport const { makeSyncUI, SyncUI } = syncUIFactory();\n"],"names":["useComponentDidMount","fn","useEffect","usePromiseQueue","_useState","useState","asyncQueue","setAsyncQueue","push","useCallback","data","Promise","resolve","reject","p","concat","resolveHeadItem","value","queue","first","rest","slice","rejectHeadItem","reason","head","_asyncQueue$","undefined","syncUIFactory","mutSyncUIComponentsRenderQueue","makeSyncUI","SyncUIUserComp","_debugName","_ref","_SyncUIUserComp$displ","displayName","name","syncUIComponentType","Symbol","singletonSyncUIRef","SyncUISingletonComponent","props","type","React","inputData","input","Error","SyncUI","map","SyncComp","key","Fragment","_syncUIFactory","_syncUIFactory2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "react-sync-ui",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "repository": "https://github.com/Svehla/react-sync-ui",
5
5
  "license": "MIT",
6
6
  "author": "Jakub Švehla",
7
7
  "main": "dist/index.js",
8
- "module": "dist/index.esm.js",
8
+ "module": "dist/react-sync-ui.esm.js",
9
9
  "typings": "dist/index.d.ts",
10
10
  "files": [
11
11
  "dist",
@@ -52,4 +52,4 @@
52
52
  "node": ">=10"
53
53
  },
54
54
  "size-limit": []
55
- }
55
+ }
package/src/syncUI.tsx CHANGED
@@ -4,7 +4,8 @@ const useComponentDidMount = (fn: Parameters<typeof useEffect>[0]) => {
4
4
  useEffect(fn, []);
5
5
  };
6
6
 
7
- // this check broke the working of the hot reloading
7
+ // this function broke the working of the hot reloading
8
+ /*
8
9
  const getSingletonComponentCheck = (errorMsg: string) => {
9
10
  let globalMountCounter = 0;
10
11
 
@@ -16,6 +17,7 @@ const getSingletonComponentCheck = (errorMsg: string) => {
16
17
  return <React.Fragment />;
17
18
  };
18
19
  };
20
+ */
19
21
 
20
22
  // ------------------------------------------------------------------------------------
21
23
  // TODO: there is tsdx old typescript parser and new ts fancy syntax is not working...