brew-js-react 0.7.0 → 0.7.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.
package/mixins/Mixin.d.ts CHANGED
@@ -5,7 +5,7 @@ import StaticAttributeMixin from "./StaticAttributeMixin";
5
5
  export type MixinProps<T extends Element, M> = MixinDefaultProps<T> & UnionToIntersection<M extends CustomAttributeProvider<infer P> ? P : never>;
6
6
 
7
7
  type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
8
- type MixinTypes<T extends unknown[]> = Extract<Zeta.ArrayMember<T>, CustomAttributeProvider>;
8
+ type MixinTypes<T extends readonly unknown[]> = Extract<Zeta.ArrayMember<T>, CustomAttributeProvider>;
9
9
 
10
10
  interface MixinDefaultProps<T extends Element> {
11
11
  ref: React.RefCallback<T>;
@@ -15,5 +15,6 @@ export default class StaticAttributeMixin<P = {}> extends Mixin {
15
15
  * Applies custom attributes to element.
16
16
  * @private It is used internally by mixins and is declared for type inference.
17
17
  */
18
+ // @ts-ignore
18
19
  getCustomAttributes(): P;
19
20
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brew-js-react",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -28,13 +28,12 @@
28
28
  "@babel/preset-react": "^7.16.7",
29
29
  "@jest/globals": "^26.6.2",
30
30
  "@misonou/build-utils": "^1.3.1",
31
- "@misonou/test-utils": "^1.0.3",
31
+ "@misonou/test-utils": "^1.4.3",
32
32
  "@testing-library/dom": "^8.11.3",
33
33
  "@testing-library/react": "^12.1.2",
34
34
  "@testing-library/react-hooks": "^7.0.2",
35
35
  "@types/jest": "^26.0.15",
36
36
  "babel-loader": "^9.1.3",
37
- "check-dts": "^0.8.2",
38
37
  "cross-env": "^7.0.2",
39
38
  "expect-type": "^0.20.0",
40
39
  "jest": "^27.0.6",
package/view.d.ts CHANGED
@@ -98,7 +98,14 @@ export class ViewContext implements Zeta.ZetaEventDispatcher<ViewContextEventMap
98
98
  * @param event Name of the event.
99
99
  * @param handler A callback function to be fired when the specified event is triggered.
100
100
  */
101
- on<E extends keyof ViewContextEventMap>(event: E, handler: Zeta.ZetaEventHandler<E, ViewContextEventMap, ViewContext>): Zeta.UnregisterCallback;
101
+ on<E extends Zeta.StringKeyOf<ViewContextEventMap>>(event: E, handler: Zeta.ZetaEventHandler<E, ViewContextEventMap, ViewContext>): Zeta.UnregisterCallback;
102
+
103
+ /**
104
+ * Adds an event handler to a specific event.
105
+ * @param event Name of the event.
106
+ * @param handler A callback function to be fired when the specified event is triggered.
107
+ */
108
+ on<E extends Zeta.HintedStringKeyOf<ViewContextEventMap>>(event: E, handler: Zeta.ZetaEventHandler<Zeta.WhitespaceDelimited<E>, ViewContextEventMap, ViewContext>): Zeta.UnregisterCallback;
102
109
  }
103
110
 
104
111
  export interface ViewProps<S = {}> {
package/view.js CHANGED
@@ -105,11 +105,13 @@ definePrototype(ErrorBoundary, Component, {
105
105
  var context = self.props.context;
106
106
  if (!context.container) {
107
107
  setImmediate(function () {
108
- extend(self, createAsyncScope(context.container));
109
- dom.on(context.container, 'error', function (e) {
110
- return emitter.emit(e, context, { error: e.error }, false);
111
- });
112
- self.forceUpdate();
108
+ if (!self.errorHandler) {
109
+ extend(self, createAsyncScope(context.container));
110
+ dom.on(context.container, 'error', function (e) {
111
+ return emitter.emit(e, context, { error: e.error }, false);
112
+ });
113
+ self.forceUpdate();
114
+ }
113
115
  });
114
116
  return null;
115
117
  }
@@ -312,7 +314,7 @@ function createViewComponent(factory) {
312
314
  }
313
315
  return function fn(props) {
314
316
  var children = promise || factory(props.viewProps);
315
- if (isThenable(children)) {
317
+ if (promise || isThenable(children)) {
316
318
  promise = children;
317
319
  catchAsync(promise);
318
320
  } else {
@@ -320,8 +322,8 @@ function createViewComponent(factory) {
320
322
  return children;
321
323
  }
322
324
  var component = useAsync(function () {
323
- return promise.then(null, function (error) {
324
- promise = null;
325
+ promise = true;
326
+ return (isThenable(children) || factory()).then(null, function (error) {
325
327
  props.onError(error);
326
328
  });
327
329
  })[0];