@xyo-network/react-event 2.37.28 → 2.38.0-rc.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,4 +1,4 @@
1
1
  import { RefObject } from 'react';
2
2
  export declare type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void;
3
- export declare const useCustomEvent: <TElement extends HTMLElement, TDetail = unknown>(type: string, listener?: CustomEventDispatch<TDetail> | undefined) => [RefObject<TElement>, CustomEventDispatch<TDetail>];
3
+ export declare const useCustomEvent: <TElement extends HTMLElement, TDetail = unknown>(type: string, listener?: CustomEventDispatch<TDetail> | undefined, customRef?: RefObject<TElement> | undefined) => [RefObject<TElement>, CustomEventDispatch<TDetail>];
4
4
  //# sourceMappingURL=useCustomEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCustomEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAa,MAAM,OAAO,CAAA;AAEvD,oBAAY,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAA;AAE5E,eAAO,MAAM,cAAc,0DACnB,MAAM,6GAoCb,CAAA"}
1
+ {"version":3,"file":"useCustomEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAa,MAAM,OAAO,CAAA;AAEvD,oBAAY,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAA;AAE5E,eAAO,MAAM,cAAc,0DACnB,MAAM,0JAqCb,CAAA"}
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useCustomEvent = void 0;
4
4
  const assert_1 = require("@xylabs/assert");
5
5
  const react_1 = require("react");
6
- const useCustomEvent = (type, listener) => {
7
- const ref = (0, react_1.createRef)();
6
+ const useCustomEvent = (type, listener, customRef) => {
7
+ const ref = customRef !== null && customRef !== void 0 ? customRef : (0, react_1.createRef)();
8
8
  (0, react_1.useEffect)(() => {
9
9
  const element = ref === null || ref === void 0 ? void 0 : ref.current;
10
10
  const currentListener = listener;
@@ -1 +1 @@
1
- {"version":3,"file":"useCustomEvent.js","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AACzC,iCAAuD;AAIhD,MAAM,cAAc,GAAG,CAC5B,IAAY,EACZ,QAAuC,EACc,EAAE;IACvD,MAAM,GAAG,GAAG,IAAA,iBAAS,GAAY,CAAA;IACjC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA;QAC5B,MAAM,eAAe,GAAG,QAAQ,CAAA;QAChC,MAAM,OAAO,GAAG,eAAe;YAC7B,CAAC,CAAC,CAAC,KAAuC,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;gBAChE,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;gBACpC,IAAI,IAAI,EAAE;oBACR,KAAK,CAAC,eAAe,EAAE,CAAA;iBACxB;YACH,CAAC;YACH,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SACzC;QACD,OAAO,GAAG,EAAE;YACV,IAAI,OAAO,IAAI,OAAO,EAAE;gBACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aAC5C;QACH,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAiC,CAAC,MAAgB,EAAE,EAAE;;QAClE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAU,IAAI,EAAE;YAC3C,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAA;QACF,MAAA,GAAG,CAAC,OAAO,0CAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA;AArCY,QAAA,cAAc,kBAqC1B"}
1
+ {"version":3,"file":"useCustomEvent.js","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AACzC,iCAAuD;AAIhD,MAAM,cAAc,GAAG,CAC5B,IAAY,EACZ,QAAuC,EACvC,SAA+B,EACsB,EAAE;IACvD,MAAM,GAAG,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAA,iBAAS,GAAY,CAAA;IAC9C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAA;QAC5B,MAAM,eAAe,GAAG,QAAQ,CAAA;QAChC,MAAM,OAAO,GAAG,eAAe;YAC7B,CAAC,CAAC,CAAC,KAAuC,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,IAAA,iBAAQ,EAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;gBAChE,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;gBACpC,IAAI,IAAI,EAAE;oBACR,KAAK,CAAC,eAAe,EAAE,CAAA;iBACxB;YACH,CAAC;YACH,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SACzC;QACD,OAAO,GAAG,EAAE;YACV,IAAI,OAAO,IAAI,OAAO,EAAE;gBACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aAC5C;QACH,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAiC,CAAC,MAAgB,EAAE,EAAE;;QAClE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAU,IAAI,EAAE;YAC3C,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAA;QACF,MAAA,GAAG,CAAC,OAAO,0CAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA;AAtCY,QAAA,cAAc,kBAsC1B"}
@@ -7,5 +7,5 @@ export interface XyoEvent<TNoun = XyoEventNoun, TVerb = XyoEventVerb, TData = st
7
7
  data?: TData;
8
8
  }
9
9
  export declare type XyoEventDispatch<TNoun = XyoEventNoun, TVerb = XyoEventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void;
10
- export declare const useXyoEvent: <T extends HTMLElement, TNoun = XyoEventNoun, TVerb = "click", TData = string>(listener?: XyoEventDispatch<TNoun, TVerb, TData> | undefined) => [RefObject<T>, XyoEventDispatch<TNoun, TVerb, TData>];
10
+ export declare const useXyoEvent: <T extends HTMLElement, TNoun = XyoEventNoun, TVerb = "click", TData = string>(listener?: XyoEventDispatch<TNoun, TVerb, TData> | undefined, sharableRef?: RefObject<T> | undefined) => [RefObject<T>, XyoEventDispatch<TNoun, TVerb, TData>];
11
11
  //# sourceMappingURL=useXyoEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useXyoEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,oBAAY,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAA;AACjE,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,MAAM,WAAW,QAAQ,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM;IAClF,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED,oBAAY,gBAAgB,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,IAAI,CAAA;AAErJ,eAAO,MAAM,WAAW,uMAgBvB,CAAA"}
1
+ {"version":3,"file":"useXyoEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,oBAAY,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAA;AACjE,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,MAAM,WAAW,QAAQ,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM;IAClF,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED,oBAAY,gBAAgB,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,IAAI,CAAA;AAErJ,eAAO,MAAM,WAAW,+OAkBvB,CAAA"}
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useXyoEvent = void 0;
4
4
  const useCustomEvent_1 = require("./useCustomEvent");
5
- const useXyoEvent = (listener) => {
5
+ const useXyoEvent = (listener, sharableRef) => {
6
6
  const [ref, customDispatch] = (0, useCustomEvent_1.useCustomEvent)('xyo', listener
7
7
  ? (detail) => {
8
8
  return listener(detail.noun, detail.verb, detail.data);
9
9
  }
10
- : undefined);
10
+ : undefined, sharableRef);
11
11
  const dispatch = (noun, verb, data) => {
12
12
  return customDispatch({ data, noun, verb });
13
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useXyoEvent.js","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAa1C,MAAM,WAAW,GAAG,CACzB,QAAgD,EACO,EAAE;IACzD,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,IAAA,+BAAc,EAC1C,KAAK,EACL,QAAQ;QACN,CAAC,CAAC,CAAC,MAAqC,EAAE,EAAE;YACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,CAAC;QACH,CAAC,CAAC,SAAS,CACd,CAAA;IAED,MAAM,QAAQ,GAA0C,CAAC,IAAW,EAAE,IAAW,EAAE,IAAY,EAAE,EAAE;QACjG,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA;AAhBY,QAAA,WAAW,eAgBvB"}
1
+ {"version":3,"file":"useXyoEvent.js","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAa1C,MAAM,WAAW,GAAG,CACzB,QAAgD,EAChD,WAA0B,EAC6B,EAAE;IACzD,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,IAAA,+BAAc,EAC1C,KAAK,EACL,QAAQ;QACN,CAAC,CAAC,CAAC,MAAqC,EAAE,EAAE;YACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,CAAC;QACH,CAAC,CAAC,SAAS,EACb,WAAW,CACZ,CAAA;IAED,MAAM,QAAQ,GAA0C,CAAC,IAAW,EAAE,IAAW,EAAE,IAAY,EAAE,EAAE;QACjG,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA;AAlBY,QAAA,WAAW,eAkBvB"}
package/dist/docs.json CHANGED
@@ -7,14 +7,14 @@
7
7
  "originalName": "",
8
8
  "children": [
9
9
  {
10
- "id": 14,
10
+ "id": 15,
11
11
  "name": "XyoEvent",
12
12
  "kind": 256,
13
13
  "kindString": "Interface",
14
14
  "flags": {},
15
15
  "children": [
16
16
  {
17
- "id": 17,
17
+ "id": 18,
18
18
  "name": "data",
19
19
  "kind": 1024,
20
20
  "kindString": "Property",
@@ -26,17 +26,17 @@
26
26
  "fileName": "hooks/useXyoEvent.ts",
27
27
  "line": 11,
28
28
  "character": 2,
29
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L11"
29
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L11"
30
30
  }
31
31
  ],
32
32
  "type": {
33
33
  "type": "reference",
34
- "id": 20,
34
+ "id": 21,
35
35
  "name": "TData"
36
36
  }
37
37
  },
38
38
  {
39
- "id": 15,
39
+ "id": 16,
40
40
  "name": "noun",
41
41
  "kind": 1024,
42
42
  "kindString": "Property",
@@ -46,17 +46,17 @@
46
46
  "fileName": "hooks/useXyoEvent.ts",
47
47
  "line": 9,
48
48
  "character": 2,
49
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L9"
49
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L9"
50
50
  }
51
51
  ],
52
52
  "type": {
53
53
  "type": "reference",
54
- "id": 18,
54
+ "id": 19,
55
55
  "name": "TNoun"
56
56
  }
57
57
  },
58
58
  {
59
- "id": 16,
59
+ "id": 17,
60
60
  "name": "verb",
61
61
  "kind": 1024,
62
62
  "kindString": "Property",
@@ -66,12 +66,12 @@
66
66
  "fileName": "hooks/useXyoEvent.ts",
67
67
  "line": 10,
68
68
  "character": 2,
69
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L10"
69
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L10"
70
70
  }
71
71
  ],
72
72
  "type": {
73
73
  "type": "reference",
74
- "id": 19,
74
+ "id": 20,
75
75
  "name": "TVerb"
76
76
  }
77
77
  }
@@ -80,9 +80,9 @@
80
80
  {
81
81
  "title": "Properties",
82
82
  "children": [
83
- 17,
84
- 15,
85
- 16
83
+ 18,
84
+ 16,
85
+ 17
86
86
  ]
87
87
  }
88
88
  ],
@@ -91,36 +91,36 @@
91
91
  "fileName": "hooks/useXyoEvent.ts",
92
92
  "line": 8,
93
93
  "character": 17,
94
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L8"
94
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L8"
95
95
  }
96
96
  ],
97
97
  "typeParameters": [
98
98
  {
99
- "id": 18,
99
+ "id": 19,
100
100
  "name": "TNoun",
101
101
  "kind": 131072,
102
102
  "kindString": "Type parameter",
103
103
  "flags": {},
104
104
  "default": {
105
105
  "type": "reference",
106
- "id": 12,
106
+ "id": 13,
107
107
  "name": "XyoEventNoun"
108
108
  }
109
109
  },
110
110
  {
111
- "id": 19,
111
+ "id": 20,
112
112
  "name": "TVerb",
113
113
  "kind": 131072,
114
114
  "kindString": "Type parameter",
115
115
  "flags": {},
116
116
  "default": {
117
117
  "type": "reference",
118
- "id": 13,
118
+ "id": 14,
119
119
  "name": "XyoEventVerb"
120
120
  }
121
121
  },
122
122
  {
123
- "id": 20,
123
+ "id": 21,
124
124
  "name": "TData",
125
125
  "kind": 131072,
126
126
  "kindString": "Type parameter",
@@ -143,7 +143,7 @@
143
143
  "fileName": "hooks/useCustomEvent.ts",
144
144
  "line": 4,
145
145
  "character": 12,
146
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
146
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
147
147
  }
148
148
  ],
149
149
  "typeParameters": [
@@ -172,7 +172,7 @@
172
172
  "fileName": "hooks/useCustomEvent.ts",
173
173
  "line": 4,
174
174
  "character": 47,
175
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
175
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L4"
176
176
  }
177
177
  ],
178
178
  "signatures": [
@@ -215,7 +215,7 @@
215
215
  }
216
216
  },
217
217
  {
218
- "id": 21,
218
+ "id": 22,
219
219
  "name": "XyoEventDispatch",
220
220
  "kind": 4194304,
221
221
  "kindString": "Type alias",
@@ -225,36 +225,36 @@
225
225
  "fileName": "hooks/useXyoEvent.ts",
226
226
  "line": 14,
227
227
  "character": 12,
228
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L14"
228
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L14"
229
229
  }
230
230
  ],
231
231
  "typeParameters": [
232
232
  {
233
- "id": 27,
233
+ "id": 28,
234
234
  "name": "TNoun",
235
235
  "kind": 131072,
236
236
  "kindString": "Type parameter",
237
237
  "flags": {},
238
238
  "default": {
239
239
  "type": "reference",
240
- "id": 12,
240
+ "id": 13,
241
241
  "name": "XyoEventNoun"
242
242
  }
243
243
  },
244
244
  {
245
- "id": 28,
245
+ "id": 29,
246
246
  "name": "TVerb",
247
247
  "kind": 131072,
248
248
  "kindString": "Type parameter",
249
249
  "flags": {},
250
250
  "default": {
251
251
  "type": "reference",
252
- "id": 13,
252
+ "id": 14,
253
253
  "name": "XyoEventVerb"
254
254
  }
255
255
  },
256
256
  {
257
- "id": 29,
257
+ "id": 30,
258
258
  "name": "TData",
259
259
  "kind": 131072,
260
260
  "kindString": "Type parameter",
@@ -268,7 +268,7 @@
268
268
  "type": {
269
269
  "type": "reflection",
270
270
  "declaration": {
271
- "id": 22,
271
+ "id": 23,
272
272
  "name": "__type",
273
273
  "kind": 65536,
274
274
  "kindString": "Type literal",
@@ -278,43 +278,43 @@
278
278
  "fileName": "hooks/useXyoEvent.ts",
279
279
  "line": 14,
280
280
  "character": 91,
281
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L14"
281
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L14"
282
282
  }
283
283
  ],
284
284
  "signatures": [
285
285
  {
286
- "id": 23,
286
+ "id": 24,
287
287
  "name": "__type",
288
288
  "kind": 4096,
289
289
  "kindString": "Call signature",
290
290
  "flags": {},
291
291
  "parameters": [
292
292
  {
293
- "id": 24,
293
+ "id": 25,
294
294
  "name": "noun",
295
295
  "kind": 32768,
296
296
  "kindString": "Parameter",
297
297
  "flags": {},
298
298
  "type": {
299
299
  "type": "reference",
300
- "id": 27,
300
+ "id": 28,
301
301
  "name": "TNoun"
302
302
  }
303
303
  },
304
304
  {
305
- "id": 25,
305
+ "id": 26,
306
306
  "name": "verb",
307
307
  "kind": 32768,
308
308
  "kindString": "Parameter",
309
309
  "flags": {},
310
310
  "type": {
311
311
  "type": "reference",
312
- "id": 28,
312
+ "id": 29,
313
313
  "name": "TVerb"
314
314
  }
315
315
  },
316
316
  {
317
- "id": 26,
317
+ "id": 27,
318
318
  "name": "data",
319
319
  "kind": 32768,
320
320
  "kindString": "Parameter",
@@ -323,7 +323,7 @@
323
323
  },
324
324
  "type": {
325
325
  "type": "reference",
326
- "id": 29,
326
+ "id": 30,
327
327
  "name": "TData"
328
328
  }
329
329
  }
@@ -347,7 +347,7 @@
347
347
  }
348
348
  },
349
349
  {
350
- "id": 12,
350
+ "id": 13,
351
351
  "name": "XyoEventNoun",
352
352
  "kind": 4194304,
353
353
  "kindString": "Type alias",
@@ -357,7 +357,7 @@
357
357
  "fileName": "hooks/useXyoEvent.ts",
358
358
  "line": 5,
359
359
  "character": 12,
360
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L5"
360
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L5"
361
361
  }
362
362
  ],
363
363
  "type": {
@@ -379,7 +379,7 @@
379
379
  }
380
380
  },
381
381
  {
382
- "id": 13,
382
+ "id": 14,
383
383
  "name": "XyoEventVerb",
384
384
  "kind": 4194304,
385
385
  "kindString": "Type alias",
@@ -389,7 +389,7 @@
389
389
  "fileName": "hooks/useXyoEvent.ts",
390
390
  "line": 6,
391
391
  "character": 12,
392
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L6"
392
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L6"
393
393
  }
394
394
  ],
395
395
  "type": {
@@ -408,7 +408,7 @@
408
408
  "fileName": "hooks/useCustomEvent.ts",
409
409
  "line": 6,
410
410
  "character": 13,
411
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L6"
411
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useCustomEvent.ts#L6"
412
412
  }
413
413
  ],
414
414
  "signatures": [
@@ -476,6 +476,28 @@
476
476
  ],
477
477
  "name": "CustomEventDispatch"
478
478
  }
479
+ },
480
+ {
481
+ "id": 12,
482
+ "name": "customRef",
483
+ "kind": 32768,
484
+ "kindString": "Parameter",
485
+ "flags": {
486
+ "isOptional": true
487
+ },
488
+ "type": {
489
+ "type": "reference",
490
+ "typeArguments": [
491
+ {
492
+ "type": "reference",
493
+ "id": 8,
494
+ "name": "TElement"
495
+ }
496
+ ],
497
+ "name": "RefObject",
498
+ "qualifiedName": "React.RefObject",
499
+ "package": "@types/react"
500
+ }
479
501
  }
480
502
  ],
481
503
  "type": {
@@ -512,7 +534,7 @@
512
534
  ]
513
535
  },
514
536
  {
515
- "id": 30,
537
+ "id": 31,
516
538
  "name": "useXyoEvent",
517
539
  "kind": 64,
518
540
  "kindString": "Function",
@@ -522,19 +544,19 @@
522
544
  "fileName": "hooks/useXyoEvent.ts",
523
545
  "line": 16,
524
546
  "character": 13,
525
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L16"
547
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/hooks/useXyoEvent.ts#L16"
526
548
  }
527
549
  ],
528
550
  "signatures": [
529
551
  {
530
- "id": 31,
552
+ "id": 32,
531
553
  "name": "useXyoEvent",
532
554
  "kind": 4096,
533
555
  "kindString": "Call signature",
534
556
  "flags": {},
535
557
  "typeParameter": [
536
558
  {
537
- "id": 32,
559
+ "id": 33,
538
560
  "name": "T",
539
561
  "kind": 131072,
540
562
  "kindString": "Type parameter",
@@ -547,19 +569,19 @@
547
569
  }
548
570
  },
549
571
  {
550
- "id": 33,
572
+ "id": 34,
551
573
  "name": "TNoun",
552
574
  "kind": 131072,
553
575
  "kindString": "Type parameter",
554
576
  "flags": {},
555
577
  "default": {
556
578
  "type": "reference",
557
- "id": 12,
579
+ "id": 13,
558
580
  "name": "XyoEventNoun"
559
581
  }
560
582
  },
561
583
  {
562
- "id": 34,
584
+ "id": 35,
563
585
  "name": "TVerb",
564
586
  "kind": 131072,
565
587
  "kindString": "Type parameter",
@@ -570,7 +592,7 @@
570
592
  }
571
593
  },
572
594
  {
573
- "id": 35,
595
+ "id": 36,
574
596
  "name": "TData",
575
597
  "kind": 131072,
576
598
  "kindString": "Type parameter",
@@ -583,7 +605,7 @@
583
605
  ],
584
606
  "parameters": [
585
607
  {
586
- "id": 36,
608
+ "id": 37,
587
609
  "name": "listener",
588
610
  "kind": 32768,
589
611
  "kindString": "Parameter",
@@ -592,26 +614,48 @@
592
614
  },
593
615
  "type": {
594
616
  "type": "reference",
595
- "id": 21,
617
+ "id": 22,
596
618
  "typeArguments": [
597
619
  {
598
620
  "type": "reference",
599
- "id": 33,
621
+ "id": 34,
600
622
  "name": "TNoun"
601
623
  },
602
624
  {
603
625
  "type": "reference",
604
- "id": 34,
626
+ "id": 35,
605
627
  "name": "TVerb"
606
628
  },
607
629
  {
608
630
  "type": "reference",
609
- "id": 35,
631
+ "id": 36,
610
632
  "name": "TData"
611
633
  }
612
634
  ],
613
635
  "name": "XyoEventDispatch"
614
636
  }
637
+ },
638
+ {
639
+ "id": 38,
640
+ "name": "sharableRef",
641
+ "kind": 32768,
642
+ "kindString": "Parameter",
643
+ "flags": {
644
+ "isOptional": true
645
+ },
646
+ "type": {
647
+ "type": "reference",
648
+ "typeArguments": [
649
+ {
650
+ "type": "reference",
651
+ "id": 33,
652
+ "name": "T"
653
+ }
654
+ ],
655
+ "name": "RefObject",
656
+ "qualifiedName": "React.RefObject",
657
+ "package": "@types/react"
658
+ }
615
659
  }
616
660
  ],
617
661
  "type": {
@@ -622,7 +666,7 @@
622
666
  "typeArguments": [
623
667
  {
624
668
  "type": "reference",
625
- "id": 32,
669
+ "id": 33,
626
670
  "name": "T"
627
671
  }
628
672
  ],
@@ -632,21 +676,21 @@
632
676
  },
633
677
  {
634
678
  "type": "reference",
635
- "id": 21,
679
+ "id": 22,
636
680
  "typeArguments": [
637
681
  {
638
682
  "type": "reference",
639
- "id": 33,
683
+ "id": 34,
640
684
  "name": "TNoun"
641
685
  },
642
686
  {
643
687
  "type": "reference",
644
- "id": 34,
688
+ "id": 35,
645
689
  "name": "TVerb"
646
690
  },
647
691
  {
648
692
  "type": "reference",
649
- "id": 35,
693
+ "id": 36,
650
694
  "name": "TData"
651
695
  }
652
696
  ],
@@ -662,23 +706,23 @@
662
706
  {
663
707
  "title": "Interfaces",
664
708
  "children": [
665
- 14
709
+ 15
666
710
  ]
667
711
  },
668
712
  {
669
713
  "title": "Type Aliases",
670
714
  "children": [
671
715
  1,
672
- 21,
673
- 12,
674
- 13
716
+ 22,
717
+ 13,
718
+ 14
675
719
  ]
676
720
  },
677
721
  {
678
722
  "title": "Functions",
679
723
  "children": [
680
724
  6,
681
- 30
725
+ 31
682
726
  ]
683
727
  }
684
728
  ],
@@ -687,7 +731,7 @@
687
731
  "fileName": "index.ts",
688
732
  "line": 1,
689
733
  "character": 0,
690
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/600be45c/packages/sdk/packages/event/src/index.ts#L1"
734
+ "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/blob/de08bcc674/packages/sdk/packages/event/src/index.ts#L1"
691
735
  }
692
736
  ]
693
737
  }
@@ -1,4 +1,4 @@
1
1
  import { RefObject } from 'react';
2
2
  export declare type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void;
3
- export declare const useCustomEvent: <TElement extends HTMLElement, TDetail = unknown>(type: string, listener?: CustomEventDispatch<TDetail> | undefined) => [RefObject<TElement>, CustomEventDispatch<TDetail>];
3
+ export declare const useCustomEvent: <TElement extends HTMLElement, TDetail = unknown>(type: string, listener?: CustomEventDispatch<TDetail> | undefined, customRef?: RefObject<TElement> | undefined) => [RefObject<TElement>, CustomEventDispatch<TDetail>];
4
4
  //# sourceMappingURL=useCustomEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCustomEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAa,MAAM,OAAO,CAAA;AAEvD,oBAAY,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAA;AAE5E,eAAO,MAAM,cAAc,0DACnB,MAAM,6GAoCb,CAAA"}
1
+ {"version":3,"file":"useCustomEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAa,MAAM,OAAO,CAAA;AAEvD,oBAAY,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAAA;AAE5E,eAAO,MAAM,cAAc,0DACnB,MAAM,0JAqCb,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { createRef, useEffect } from 'react';
3
- export const useCustomEvent = (type, listener) => {
4
- const ref = createRef();
3
+ export const useCustomEvent = (type, listener, customRef) => {
4
+ const ref = customRef ?? createRef();
5
5
  useEffect(() => {
6
6
  const element = ref?.current;
7
7
  const currentListener = listener;
@@ -1 +1 @@
1
- {"version":3,"file":"useCustomEvent.js","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAa,SAAS,EAAE,MAAM,OAAO,CAAA;AAIvD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAY,EACZ,QAAuC,EACc,EAAE;IACvD,MAAM,GAAG,GAAG,SAAS,EAAY,CAAA;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAA;QAC5B,MAAM,eAAe,GAAG,QAAQ,CAAA;QAChC,MAAM,OAAO,GAAG,eAAe;YAC7B,CAAC,CAAC,CAAC,KAAuC,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;gBAChE,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;gBACpC,IAAI,IAAI,EAAE;oBACR,KAAK,CAAC,eAAe,EAAE,CAAA;iBACxB;YACH,CAAC;YACH,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SACzC;QACD,OAAO,GAAG,EAAE;YACV,IAAI,OAAO,IAAI,OAAO,EAAE;gBACtB,OAAO,EAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aAC5C;QACH,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAiC,CAAC,MAAgB,EAAE,EAAE;QAClE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAU,IAAI,EAAE;YAC3C,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAA;QACF,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"useCustomEvent.js","sourceRoot":"","sources":["../../../src/hooks/useCustomEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAa,SAAS,EAAE,MAAM,OAAO,CAAA;AAIvD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAY,EACZ,QAAuC,EACvC,SAA+B,EACsB,EAAE;IACvD,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,EAAY,CAAA;IAC9C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,EAAE,OAAO,CAAA;QAC5B,MAAM,eAAe,GAAG,QAAQ,CAAA;QAChC,MAAM,OAAO,GAAG,eAAe;YAC7B,CAAC,CAAC,CAAC,KAAuC,EAAE,EAAE;gBAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAA;gBAChE,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;gBACpC,IAAI,IAAI,EAAE;oBACR,KAAK,CAAC,eAAe,EAAE,CAAA;iBACxB;YACH,CAAC;YACH,CAAC,CAAC,SAAS,CAAA;QAEb,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;SACzC;QACD,OAAO,GAAG,EAAE;YACV,IAAI,OAAO,IAAI,OAAO,EAAE;gBACtB,OAAO,EAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;aAC5C;QACH,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,QAAQ,GAAiC,CAAC,MAAgB,EAAE,EAAE;QAClE,MAAM,KAAK,GAAG,IAAI,WAAW,CAAU,IAAI,EAAE;YAC3C,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAA;QACF,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA"}
@@ -7,5 +7,5 @@ export interface XyoEvent<TNoun = XyoEventNoun, TVerb = XyoEventVerb, TData = st
7
7
  data?: TData;
8
8
  }
9
9
  export declare type XyoEventDispatch<TNoun = XyoEventNoun, TVerb = XyoEventVerb, TData = string> = (noun: TNoun, verb: TVerb, data?: TData) => boolean | void;
10
- export declare const useXyoEvent: <T extends HTMLElement, TNoun = XyoEventNoun, TVerb = "click", TData = string>(listener?: XyoEventDispatch<TNoun, TVerb, TData> | undefined) => [RefObject<T>, XyoEventDispatch<TNoun, TVerb, TData>];
10
+ export declare const useXyoEvent: <T extends HTMLElement, TNoun = XyoEventNoun, TVerb = "click", TData = string>(listener?: XyoEventDispatch<TNoun, TVerb, TData> | undefined, sharableRef?: RefObject<T> | undefined) => [RefObject<T>, XyoEventDispatch<TNoun, TVerb, TData>];
11
11
  //# sourceMappingURL=useXyoEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useXyoEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,oBAAY,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAA;AACjE,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,MAAM,WAAW,QAAQ,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM;IAClF,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED,oBAAY,gBAAgB,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,IAAI,CAAA;AAErJ,eAAO,MAAM,WAAW,uMAgBvB,CAAA"}
1
+ {"version":3,"file":"useXyoEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,oBAAY,YAAY,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAA;AACjE,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,MAAM,WAAW,QAAQ,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM;IAClF,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED,oBAAY,gBAAgB,CAAC,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,YAAY,EAAE,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,IAAI,CAAA;AAErJ,eAAO,MAAM,WAAW,+OAkBvB,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import { useCustomEvent } from './useCustomEvent';
2
- export const useXyoEvent = (listener) => {
2
+ export const useXyoEvent = (listener, sharableRef) => {
3
3
  const [ref, customDispatch] = useCustomEvent('xyo', listener
4
4
  ? (detail) => {
5
5
  return listener(detail.noun, detail.verb, detail.data);
6
6
  }
7
- : undefined);
7
+ : undefined, sharableRef);
8
8
  const dispatch = (noun, verb, data) => {
9
9
  return customDispatch({ data, noun, verb });
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useXyoEvent.js","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAajD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAgD,EACO,EAAE;IACzD,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,cAAc,CAC1C,KAAK,EACL,QAAQ;QACN,CAAC,CAAC,CAAC,MAAqC,EAAE,EAAE;YACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,CAAC;QACH,CAAC,CAAC,SAAS,CACd,CAAA;IAED,MAAM,QAAQ,GAA0C,CAAC,IAAW,EAAE,IAAW,EAAE,IAAY,EAAE,EAAE;QACjG,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"useXyoEvent.js","sourceRoot":"","sources":["../../../src/hooks/useXyoEvent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAajD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,QAAgD,EAChD,WAA0B,EAC6B,EAAE;IACzD,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,cAAc,CAC1C,KAAK,EACL,QAAQ;QACN,CAAC,CAAC,CAAC,MAAqC,EAAE,EAAE;YACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,CAAC;QACH,CAAC,CAAC,SAAS,EACb,WAAW,CACZ,CAAA;IAED,MAAM,QAAQ,GAA0C,CAAC,IAAW,EAAE,IAAW,EAAE,IAAY,EAAE,EAAE;QACjG,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IACD,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;AACxB,CAAC,CAAA"}
package/package.json CHANGED
@@ -59,5 +59,6 @@
59
59
  },
60
60
  "sideEffects": false,
61
61
  "types": "dist/esm/index.d.ts",
62
- "version": "2.37.28"
62
+ "version": "2.38.0-rc.1",
63
+ "stableVersion": "2.37.29"
63
64
  }
@@ -6,8 +6,9 @@ export type CustomEventDispatch<T = unknown> = (detail: T) => boolean | void
6
6
  export const useCustomEvent = <TElement extends HTMLElement, TDetail = unknown>(
7
7
  type: string,
8
8
  listener?: CustomEventDispatch<TDetail>,
9
+ customRef?: RefObject<TElement>,
9
10
  ): [RefObject<TElement>, CustomEventDispatch<TDetail>] => {
10
- const ref = createRef<TElement>()
11
+ const ref = customRef ?? createRef<TElement>()
11
12
  useEffect(() => {
12
13
  const element = ref?.current
13
14
  const currentListener = listener
@@ -15,6 +15,7 @@ export type XyoEventDispatch<TNoun = XyoEventNoun, TVerb = XyoEventVerb, TData =
15
15
 
16
16
  export const useXyoEvent = <T extends HTMLElement, TNoun = XyoEventNoun, TVerb = XyoEventVerb, TData = string>(
17
17
  listener?: XyoEventDispatch<TNoun, TVerb, TData>,
18
+ sharableRef?: RefObject<T>,
18
19
  ): [RefObject<T>, XyoEventDispatch<TNoun, TVerb, TData>] => {
19
20
  const [ref, customDispatch] = useCustomEvent<T, XyoEvent<TNoun, TVerb, TData>>(
20
21
  'xyo',
@@ -23,6 +24,7 @@ export const useXyoEvent = <T extends HTMLElement, TNoun = XyoEventNoun, TVerb =
23
24
  return listener(detail.noun, detail.verb, detail.data)
24
25
  }
25
26
  : undefined,
27
+ sharableRef,
26
28
  )
27
29
 
28
30
  const dispatch: XyoEventDispatch<TNoun, TVerb, TData> = (noun: TNoun, verb: TVerb, data?: TData) => {