@kaspernj/api-maker 1.0.2021 → 1.0.2022

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/build/config.js CHANGED
@@ -1,6 +1,7 @@
1
+ import EventEmitter from "events";
1
2
  import * as inflection from "inflection";
2
3
  const accessors = {
3
- breakPoints: {
4
+ breakpoints: {
4
5
  default: [["xxl", 1400], ["xl", 1200], ["lg", 992], ["md", 768], ["sm", 576], ["xs", 0]],
5
6
  required: true
6
7
  },
@@ -38,14 +39,23 @@ const accessors = {
38
39
  class ApiMakerConfig {
39
40
  constructor() {
40
41
  if (!globalThis.apiMakerConfigGlobal) globalThis.apiMakerConfigGlobal = {};
42
+ this.events = new EventEmitter();
41
43
  this.global = globalThis.apiMakerConfigGlobal;
42
44
  }
45
+ getEvents = () => this.events;
43
46
  }
44
47
  for (const accessorName in accessors) {
45
48
  const accessorData = accessors[accessorName];
46
49
  const camelizedAccessor = inflection.camelize(accessorName);
47
50
  ApiMakerConfig.prototype[`set${camelizedAccessor}`] = function (newValue) {
51
+ const oldValue = this.global[accessorName];
48
52
  this.global[accessorName] = newValue;
53
+ if (oldValue !== newValue) {
54
+ this.events.emit(`on${camelizedAccessor}Change`, {
55
+ oldValue,
56
+ newValue
57
+ });
58
+ }
49
59
  };
50
60
  ApiMakerConfig.prototype[`get${camelizedAccessor}`] = function (...args) {
51
61
  if (!this.global[accessorName]) {
@@ -59,4 +69,4 @@ for (const accessorName in accessors) {
59
69
  }
60
70
  const apiMakerConfig = new ApiMakerConfig();
61
71
  export default apiMakerConfig;
62
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbmZsZWN0aW9uIiwiYWNjZXNzb3JzIiwiYnJlYWtQb2ludHMiLCJkZWZhdWx0IiwicmVxdWlyZWQiLCJjYWJsZVVybCIsInJlcXVpcmUiLCJjdXJyZW5jaWVzQ29sbGVjdGlvbiIsImhpc3RvcnkiLCJob3N0IiwiaTE4biIsImxpbmtUbyIsIm1vZGFsIiwibmF2aWdhdGlvbiIsInJvdXRlcyIsInJvdXRlRGVmaW5pdGlvbnMiLCJBcGlNYWtlckNvbmZpZyIsImNvbnN0cnVjdG9yIiwiZ2xvYmFsVGhpcyIsImFwaU1ha2VyQ29uZmlnR2xvYmFsIiwiZ2xvYmFsIiwiYWNjZXNzb3JOYW1lIiwiYWNjZXNzb3JEYXRhIiwiY2FtZWxpemVkQWNjZXNzb3IiLCJjYW1lbGl6ZSIsInByb3RvdHlwZSIsIm5ld1ZhbHVlIiwiYXJncyIsIkVycm9yIiwidmFsdWUiLCJhcGlNYWtlckNvbmZpZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5cbmNvbnN0IGFjY2Vzc29ycyA9IHtcbiAgYnJlYWtQb2ludHM6IHtcbiAgICBkZWZhdWx0OiBbXG4gICAgICBbXCJ4eGxcIiwgMTQwMF0sXG4gICAgICBbXCJ4bFwiLCAxMjAwXSxcbiAgICAgIFtcImxnXCIsIDk5Ml0sXG4gICAgICBbXCJtZFwiLCA3NjhdLFxuICAgICAgW1wic21cIiwgNTc2XSxcbiAgICAgIFtcInhzXCIsIDBdXG4gICAgXSxcbiAgICByZXF1aXJlZDogdHJ1ZVxuICB9LFxuICBjYWJsZVVybDoge3JlcXVpcmU6IGZhbHNlfSxcbiAgY3VycmVuY2llc0NvbGxlY3Rpb246IHtyZXF1aXJlZDogdHJ1ZX0sXG4gIGhpc3Rvcnk6IHtyZXF1aXJlZDogdHJ1ZX0sXG4gIGhvc3Q6IHtyZXF1aXJlZDogZmFsc2V9LFxuICBpMThuOiB7cmVxdWlyZWQ6IGZhbHNlfSxcbiAgbGlua1RvOiB7cmVxdWlyZWQ6IHRydWV9LFxuICBtb2RhbDoge3JlcXVpcmVkOiBmYWxzZX0sXG4gIG5hdmlnYXRpb246IHtyZXF1aXJlZDogdHJ1ZX0sXG4gIHJvdXRlczoge3JlcXVpcmVkOiBmYWxzZX0sXG4gIHJvdXRlRGVmaW5pdGlvbnM6IHtyZXF1aXJlZDogZmFsc2V9XG59XG5cbmNsYXNzIEFwaU1ha2VyQ29uZmlnIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCFnbG9iYWxUaGlzLmFwaU1ha2VyQ29uZmlnR2xvYmFsKSBnbG9iYWxUaGlzLmFwaU1ha2VyQ29uZmlnR2xvYmFsID0ge31cblxuICAgIHRoaXMuZ2xvYmFsID0gZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbFxuICB9XG59XG5cbmZvciAoY29uc3QgYWNjZXNzb3JOYW1lIGluIGFjY2Vzc29ycykge1xuICBjb25zdCBhY2Nlc3NvckRhdGEgPSBhY2Nlc3NvcnNbYWNjZXNzb3JOYW1lXVxuICBjb25zdCBjYW1lbGl6ZWRBY2Nlc3NvciA9IGluZmxlY3Rpb24uY2FtZWxpemUoYWNjZXNzb3JOYW1lKVxuXG4gIEFwaU1ha2VyQ29uZmlnLnByb3RvdHlwZVtgc2V0JHtjYW1lbGl6ZWRBY2Nlc3Nvcn1gXSA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkgeyB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdID0gbmV3VmFsdWUgfVxuICBBcGlNYWtlckNvbmZpZy5wcm90b3R5cGVbYGdldCR7Y2FtZWxpemVkQWNjZXNzb3J9YF0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgIGlmICghdGhpcy5nbG9iYWxbYWNjZXNzb3JOYW1lXSkge1xuICAgICAgaWYgKGFjY2Vzc29yRGF0YS5kZWZhdWx0KSByZXR1cm4gYWNjZXNzb3JEYXRhLmRlZmF1bHRcbiAgICAgIGlmIChhY2Nlc3NvckRhdGEucmVxdWlyZWQpIHRocm93IG5ldyBFcnJvcihgJHthY2Nlc3Nvck5hbWV9IGhhc24ndCBiZWVuIHNldGApXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHZhbHVlKC4uLmFyZ3MpXG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5jb25zdCBhcGlNYWtlckNvbmZpZyA9IG5ldyBBcGlNYWtlckNvbmZpZygpXG5cbmV4cG9ydCBkZWZhdWx0IGFwaU1ha2VyQ29uZmlnXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsVUFBVSxNQUFNLFlBQVk7QUFFeEMsTUFBTUMsU0FBUyxHQUFHO0VBQ2hCQyxXQUFXLEVBQUU7SUFDWEMsT0FBTyxFQUFFLENBQ1AsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQ2IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQ1osQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ1Y7SUFDREMsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNEQyxRQUFRLEVBQUU7SUFBQ0MsT0FBTyxFQUFFO0VBQUssQ0FBQztFQUMxQkMsb0JBQW9CLEVBQUU7SUFBQ0gsUUFBUSxFQUFFO0VBQUksQ0FBQztFQUN0Q0ksT0FBTyxFQUFFO0lBQUNKLFFBQVEsRUFBRTtFQUFJLENBQUM7RUFDekJLLElBQUksRUFBRTtJQUFDTCxRQUFRLEVBQUU7RUFBSyxDQUFDO0VBQ3ZCTSxJQUFJLEVBQUU7SUFBQ04sUUFBUSxFQUFFO0VBQUssQ0FBQztFQUN2Qk8sTUFBTSxFQUFFO0lBQUNQLFFBQVEsRUFBRTtFQUFJLENBQUM7RUFDeEJRLEtBQUssRUFBRTtJQUFDUixRQUFRLEVBQUU7RUFBSyxDQUFDO0VBQ3hCUyxVQUFVLEVBQUU7SUFBQ1QsUUFBUSxFQUFFO0VBQUksQ0FBQztFQUM1QlUsTUFBTSxFQUFFO0lBQUNWLFFBQVEsRUFBRTtFQUFLLENBQUM7RUFDekJXLGdCQUFnQixFQUFFO0lBQUNYLFFBQVEsRUFBRTtFQUFLO0FBQ3BDLENBQUM7QUFFRCxNQUFNWSxjQUFjLENBQUM7RUFDbkJDLFdBQVdBLENBQUEsRUFBRztJQUNaLElBQUksQ0FBQ0MsVUFBVSxDQUFDQyxvQkFBb0IsRUFBRUQsVUFBVSxDQUFDQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFFMUUsSUFBSSxDQUFDQyxNQUFNLEdBQUdGLFVBQVUsQ0FBQ0Msb0JBQW9CO0VBQy9DO0FBQ0Y7QUFFQSxLQUFLLE1BQU1FLFlBQVksSUFBSXBCLFNBQVMsRUFBRTtFQUNwQyxNQUFNcUIsWUFBWSxHQUFHckIsU0FBUyxDQUFDb0IsWUFBWSxDQUFDO0VBQzVDLE1BQU1FLGlCQUFpQixHQUFHdkIsVUFBVSxDQUFDd0IsUUFBUSxDQUFDSCxZQUFZLENBQUM7RUFFM0RMLGNBQWMsQ0FBQ1MsU0FBUyxDQUFDLE1BQU1GLGlCQUFpQixFQUFFLENBQUMsR0FBRyxVQUFVRyxRQUFRLEVBQUU7SUFBRSxJQUFJLENBQUNOLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDLEdBQUdLLFFBQVE7RUFBQyxDQUFDO0VBQ2xIVixjQUFjLENBQUNTLFNBQVMsQ0FBQyxNQUFNRixpQkFBaUIsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHSSxJQUFJLEVBQUU7SUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQ1AsTUFBTSxDQUFDQyxZQUFZLENBQUMsRUFBRTtNQUM5QixJQUFJQyxZQUFZLENBQUNuQixPQUFPLEVBQUUsT0FBT21CLFlBQVksQ0FBQ25CLE9BQU87TUFDckQsSUFBSW1CLFlBQVksQ0FBQ2xCLFFBQVEsRUFBRSxNQUFNLElBQUl3QixLQUFLLENBQUMsR0FBR1AsWUFBWSxrQkFBa0IsQ0FBQztJQUMvRTtJQUVBLE1BQU1RLEtBQUssR0FBRyxJQUFJLENBQUNULE1BQU0sQ0FBQ0MsWUFBWSxDQUFDO0lBRXZDLElBQUksT0FBT1EsS0FBSyxJQUFJLFVBQVUsRUFBRSxPQUFPQSxLQUFLLENBQUMsR0FBR0YsSUFBSSxDQUFDO0lBRXJELE9BQU9FLEtBQUs7RUFDZCxDQUFDO0FBQ0g7QUFFQSxNQUFNQyxjQUFjLEdBQUcsSUFBSWQsY0FBYyxDQUFDLENBQUM7QUFFM0MsZUFBZWMsY0FBYyIsImlnbm9yZUxpc3QiOltdfQ==
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFdmVudEVtaXR0ZXIiLCJpbmZsZWN0aW9uIiwiYWNjZXNzb3JzIiwiYnJlYWtwb2ludHMiLCJkZWZhdWx0IiwicmVxdWlyZWQiLCJjYWJsZVVybCIsInJlcXVpcmUiLCJjdXJyZW5jaWVzQ29sbGVjdGlvbiIsImhpc3RvcnkiLCJob3N0IiwiaTE4biIsImxpbmtUbyIsIm1vZGFsIiwibmF2aWdhdGlvbiIsInJvdXRlcyIsInJvdXRlRGVmaW5pdGlvbnMiLCJBcGlNYWtlckNvbmZpZyIsImNvbnN0cnVjdG9yIiwiZ2xvYmFsVGhpcyIsImFwaU1ha2VyQ29uZmlnR2xvYmFsIiwiZXZlbnRzIiwiZ2xvYmFsIiwiZ2V0RXZlbnRzIiwiYWNjZXNzb3JOYW1lIiwiYWNjZXNzb3JEYXRhIiwiY2FtZWxpemVkQWNjZXNzb3IiLCJjYW1lbGl6ZSIsInByb3RvdHlwZSIsIm5ld1ZhbHVlIiwib2xkVmFsdWUiLCJlbWl0IiwiYXJncyIsIkVycm9yIiwidmFsdWUiLCJhcGlNYWtlckNvbmZpZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tIFwiZXZlbnRzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuXG5jb25zdCBhY2Nlc3NvcnMgPSB7XG4gIGJyZWFrcG9pbnRzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAgW1wieHhsXCIsIDE0MDBdLFxuICAgICAgW1wieGxcIiwgMTIwMF0sXG4gICAgICBbXCJsZ1wiLCA5OTJdLFxuICAgICAgW1wibWRcIiwgNzY4XSxcbiAgICAgIFtcInNtXCIsIDU3Nl0sXG4gICAgICBbXCJ4c1wiLCAwXVxuICAgIF0sXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgY2FibGVVcmw6IHtyZXF1aXJlOiBmYWxzZX0sXG4gIGN1cnJlbmNpZXNDb2xsZWN0aW9uOiB7cmVxdWlyZWQ6IHRydWV9LFxuICBoaXN0b3J5OiB7cmVxdWlyZWQ6IHRydWV9LFxuICBob3N0OiB7cmVxdWlyZWQ6IGZhbHNlfSxcbiAgaTE4bjoge3JlcXVpcmVkOiBmYWxzZX0sXG4gIGxpbmtUbzoge3JlcXVpcmVkOiB0cnVlfSxcbiAgbW9kYWw6IHtyZXF1aXJlZDogZmFsc2V9LFxuICBuYXZpZ2F0aW9uOiB7cmVxdWlyZWQ6IHRydWV9LFxuICByb3V0ZXM6IHtyZXF1aXJlZDogZmFsc2V9LFxuICByb3V0ZURlZmluaXRpb25zOiB7cmVxdWlyZWQ6IGZhbHNlfVxufVxuXG5jbGFzcyBBcGlNYWtlckNvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbCkgZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbCA9IHt9XG5cbiAgICB0aGlzLmV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICAgIHRoaXMuZ2xvYmFsID0gZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbFxuICB9XG5cbiAgZ2V0RXZlbnRzID0gKCkgPT4gdGhpcy5ldmVudHNcbn1cblxuZm9yIChjb25zdCBhY2Nlc3Nvck5hbWUgaW4gYWNjZXNzb3JzKSB7XG4gIGNvbnN0IGFjY2Vzc29yRGF0YSA9IGFjY2Vzc29yc1thY2Nlc3Nvck5hbWVdXG4gIGNvbnN0IGNhbWVsaXplZEFjY2Vzc29yID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShhY2Nlc3Nvck5hbWUpXG5cbiAgQXBpTWFrZXJDb25maWcucHJvdG90eXBlW2BzZXQke2NhbWVsaXplZEFjY2Vzc29yfWBdID0gZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdID0gbmV3VmFsdWVcblxuICAgIGlmIChvbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoYG9uJHtjYW1lbGl6ZWRBY2Nlc3Nvcn1DaGFuZ2VgLCB7b2xkVmFsdWUsIG5ld1ZhbHVlfSlcbiAgICB9XG4gIH1cblxuICBBcGlNYWtlckNvbmZpZy5wcm90b3R5cGVbYGdldCR7Y2FtZWxpemVkQWNjZXNzb3J9YF0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgIGlmICghdGhpcy5nbG9iYWxbYWNjZXNzb3JOYW1lXSkge1xuICAgICAgaWYgKGFjY2Vzc29yRGF0YS5kZWZhdWx0KSByZXR1cm4gYWNjZXNzb3JEYXRhLmRlZmF1bHRcbiAgICAgIGlmIChhY2Nlc3NvckRhdGEucmVxdWlyZWQpIHRocm93IG5ldyBFcnJvcihgJHthY2Nlc3Nvck5hbWV9IGhhc24ndCBiZWVuIHNldGApXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHZhbHVlKC4uLmFyZ3MpXG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5jb25zdCBhcGlNYWtlckNvbmZpZyA9IG5ldyBBcGlNYWtlckNvbmZpZygpXG5cbmV4cG9ydCBkZWZhdWx0IGFwaU1ha2VyQ29uZmlnXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksTUFBTSxRQUFRO0FBQ2pDLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFFeEMsTUFBTUMsU0FBUyxHQUFHO0VBQ2hCQyxXQUFXLEVBQUU7SUFDWEMsT0FBTyxFQUFFLENBQ1AsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQ2IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQ1osQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ1Y7SUFDREMsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNEQyxRQUFRLEVBQUU7SUFB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
@@ -1,19 +1,21 @@
1
- import { useCallback, useLayoutEffect } from "react";
1
+ import { useCallback } from "react";
2
2
  import config from "./config";
3
3
  import { Dimensions } from "react-native";
4
4
  import * as inflection from "inflection";
5
5
  import isExpo from "./is-expo";
6
+ import useEventEmitter from "./use-event-emitter";
7
+ import useEventListener from "./use-event-listener";
6
8
  import useShape from "set-state-compare/src/use-shape";
7
- const calculateBreakPoint = windowObject => {
9
+ const calculateBreakPoint = breakpoints => {
8
10
  let windowWidth;
9
11
  if (isExpo) {
10
- windowWidth = windowObject.width;
12
+ windowWidth = Dimensions.get("window").width;
11
13
  } else {
12
14
  // Use 'window.innerWidth' outside Expo because sometimes window width excludes scroll
13
15
  windowWidth = window.innerWidth;
14
16
  }
15
17
  const result = {};
16
- for (const breakpointData of config.getBreakPoints()) {
18
+ for (const breakpointData of breakpoints) {
17
19
  const breakpoint = breakpointData[0];
18
20
  const width = breakpointData[1];
19
21
  if (!result.name && windowWidth >= width) {
@@ -30,24 +32,32 @@ const calculateBreakPoint = windowObject => {
30
32
  throw new Error(`Couldn't not find breakpoint from window width: ${windowWidth}`);
31
33
  };
32
34
  const sizeTypes = ["down", "up"];
33
- const useBreakpoint = () => {
34
- const s = useShape();
35
- const onCalled = useCallback(({
36
- window: windowObject
37
- }) => {
38
- const breakpoint = calculateBreakPoint(windowObject);
35
+ const useBreakpoint = (args = {}) => {
36
+ const s = useShape(args);
37
+ s.meta.breakpoints ||= config.getBreakpoints();
38
+ const checkAndUpdateBreakpoint = useCallback(() => {
39
+ const breakpoint = calculateBreakPoint(s.m.breakpoints);
39
40
  if (breakpoint.name != s.s.breakpoint.name) {
40
41
  s.set({
41
42
  breakpoint
42
43
  });
43
44
  }
44
45
  }, []);
46
+ const onDimensionsChange = useCallback(() => {
47
+ checkAndUpdateBreakpoint();
48
+ }, []);
49
+ const onBreakpointsChange = useCallback(({
50
+ newValue
51
+ }) => {
52
+ s.meta.breakpoints = newValue;
53
+ checkAndUpdateBreakpoint();
54
+ }, []);
45
55
  s.useStates({
46
- breakpoint: () => calculateBreakPoint(Dimensions.get("window"))
56
+ breakpoint: () => calculateBreakPoint(s.m.breakpoints)
47
57
  });
48
58
  const styling = useCallback(args => {
49
59
  const style = Object.assign({}, args.base);
50
- for (const breakpointData of apiMakerConfig.getBreakPoints()) {
60
+ for (const breakpointData of s.m.breakpoints) {
51
61
  const breakpoint = breakpointData[0];
52
62
  for (const sizeType of sizeTypes) {
53
63
  const breakpointWithSizeType = `${breakpoint}${inflection.camelize(sizeType)}`;
@@ -58,14 +68,12 @@ const useBreakpoint = () => {
58
68
  }
59
69
  return style;
60
70
  }, []);
61
- useLayoutEffect(() => {
62
- const subscription = Dimensions.addEventListener("change", onCalled);
63
- return () => subscription?.remove();
64
- });
71
+ useEventEmitter(config.getEvents(), "onBreakpointsChange", onBreakpointsChange);
72
+ useEventListener(Dimensions, "change", onDimensionsChange);
65
73
  return {
66
74
  styling,
67
75
  ...s.s.breakpoint
68
76
  };
69
77
  };
70
78
  export default useBreakpoint;
71
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUxheW91dEVmZmVjdCIsImNvbmZpZyIsIkRpbWVuc2lvbnMiLCJpbmZsZWN0aW9uIiwiaXNFeHBvIiwidXNlU2hhcGUiLCJjYWxjdWxhdGVCcmVha1BvaW50Iiwid2luZG93T2JqZWN0Iiwid2luZG93V2lkdGgiLCJ3aWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJyZXN1bHQiLCJicmVha3BvaW50RGF0YSIsImdldEJyZWFrUG9pbnRzIiwiYnJlYWtwb2ludCIsIm5hbWUiLCJCb29sZWFuIiwiRXJyb3IiLCJzaXplVHlwZXMiLCJ1c2VCcmVha3BvaW50IiwicyIsIm9uQ2FsbGVkIiwic2V0IiwidXNlU3RhdGVzIiwiZ2V0Iiwic3R5bGluZyIsImFyZ3MiLCJzdHlsZSIsIk9iamVjdCIsImFzc2lnbiIsImJhc2UiLCJhcGlNYWtlckNvbmZpZyIsInNpemVUeXBlIiwiYnJlYWtwb2ludFdpdGhTaXplVHlwZSIsImNhbWVsaXplIiwic3Vic2NyaXB0aW9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtYnJlYWtwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VMYXlvdXRFZmZlY3R9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZ1wiXG5pbXBvcnQge0RpbWVuc2lvbnN9IGZyb20gXCJyZWFjdC1uYXRpdmVcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgaXNFeHBvIGZyb20gXCIuL2lzLWV4cG9cIlxuaW1wb3J0IHVzZVNoYXBlIGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvdXNlLXNoYXBlXCJcblxuY29uc3QgY2FsY3VsYXRlQnJlYWtQb2ludCA9ICh3aW5kb3dPYmplY3QpID0+IHtcbiAgbGV0IHdpbmRvd1dpZHRoXG5cbiAgaWYgKGlzRXhwbykge1xuICAgIHdpbmRvd1dpZHRoID0gd2luZG93T2JqZWN0LndpZHRoXG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlICd3aW5kb3cuaW5uZXJXaWR0aCcgb3V0c2lkZSBFeHBvIGJlY2F1c2Ugc29tZXRpbWVzIHdpbmRvdyB3aWR0aCBleGNsdWRlcyBzY3JvbGxcbiAgICB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoXG4gIH1cblxuICBjb25zdCByZXN1bHQgPSB7fVxuXG4gIGZvciAoY29uc3QgYnJlYWtwb2ludERhdGEgb2YgY29uZmlnLmdldEJyZWFrUG9pbnRzKCkpIHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cbiAgICBjb25zdCB3aWR0aCA9IGJyZWFrcG9pbnREYXRhWzFdXG5cbiAgICBpZiAoIXJlc3VsdC5uYW1lICYmIHdpbmRvd1dpZHRoID49IHdpZHRoKSB7XG4gICAgICByZXN1bHQubmFtZSA9IGJyZWFrcG9pbnRcbiAgICAgIHJlc3VsdFtgJHticmVha3BvaW50fURvd25gXSA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2Ake2JyZWFrcG9pbnR9RG93bmBdID0gIXJlc3VsdC5uYW1lXG4gICAgfVxuXG4gICAgcmVzdWx0W2Ake2JyZWFrcG9pbnR9VXBgXSA9IEJvb2xlYW4ocmVzdWx0Lm5hbWUpXG4gIH1cblxuICBpZiAocmVzdWx0Lm5hbWUpIHtcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkbid0IG5vdCBmaW5kIGJyZWFrcG9pbnQgZnJvbSB3aW5kb3cgd2lkdGg6ICR7d2luZG93V2lkdGh9YClcbn1cblxuY29uc3Qgc2l6ZVR5cGVzID0gW1wiZG93blwiLCBcInVwXCJdXG5cbmNvbnN0IHVzZUJyZWFrcG9pbnQgPSAoKSA9PiB7XG4gIGNvbnN0IHMgPSB1c2VTaGFwZSgpXG4gIGNvbnN0IG9uQ2FsbGVkID0gdXNlQ2FsbGJhY2soKHt3aW5kb3c6IHdpbmRvd09iamVjdH0pID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gY2FsY3VsYXRlQnJlYWtQb2ludCh3aW5kb3dPYmplY3QpXG5cbiAgICBpZiAoYnJlYWtwb2ludC5uYW1lICE9IHMucy5icmVha3BvaW50Lm5hbWUpIHtcbiAgICAgIHMuc2V0KHticmVha3BvaW50fSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBicmVha3BvaW50OiAoKSA9PiBjYWxjdWxhdGVCcmVha1BvaW50KERpbWVuc2lvbnMuZ2V0KFwid2luZG93XCIpKVxuICB9KVxuXG4gIGNvbnN0IHN0eWxpbmcgPSB1c2VDYWxsYmFjaygoYXJncykgPT4ge1xuICAgIGNvbnN0IHN0eWxlID0gT2JqZWN0LmFzc2lnbih7fSwgYXJncy5iYXNlKVxuXG4gICAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBhcGlNYWtlckNvbmZpZy5nZXRCcmVha1BvaW50cygpKSB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cblxuICAgICAgZm9yIChjb25zdCBzaXplVHlwZSBvZiBzaXplVHlwZXMpIHtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFdpdGhTaXplVHlwZSA9IGAke2JyZWFrcG9pbnR9JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNpemVUeXBlKX1gXG5cbiAgICAgICAgaWYgKGFyZ3NbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0gJiYgcy5zLmJyZWFrcG9pbnRbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBhcmdzW2JyZWFrcG9pbnRXaXRoU2l6ZVR5cGVdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlXG4gIH0sIFtdKVxuXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gRGltZW5zaW9ucy5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIG9uQ2FsbGVkKVxuXG4gICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbj8ucmVtb3ZlKClcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIHN0eWxpbmcsXG4gICAgLi4ucy5zLmJyZWFrcG9pbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VCcmVha3BvaW50XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFdBQVcsRUFBRUMsZUFBZSxRQUFPLE9BQU87QUFDbEQsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsVUFBVSxRQUFPLGNBQWM7QUFDdkMsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxNQUFNLE1BQU0sV0FBVztBQUM5QixPQUFPQyxRQUFRLE1BQU0saUNBQWlDO0FBRXRELE1BQU1DLG1CQUFtQixHQUFJQyxZQUFZLElBQUs7RUFDNUMsSUFBSUMsV0FBVztFQUVmLElBQUlKLE1BQU0sRUFBRTtJQUNWSSxXQUFXLEdBQUdELFlBQVksQ0FBQ0UsS0FBSztFQUNsQyxDQUFDLE1BQU07SUFDTDtJQUNBRCxXQUFXLEdBQUdFLE1BQU0sQ0FBQ0MsVUFBVTtFQUNqQztFQUVBLE1BQU1DLE1BQU0sR0FBRyxDQUFDLENBQUM7RUFFakIsS0FBSyxNQUFNQyxjQUFjLElBQUlaLE1BQU0sQ0FBQ2EsY0FBYyxDQUFDLENBQUMsRUFBRTtJQUNwRCxNQUFNQyxVQUFVLEdBQUdGLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsTUFBTUosS0FBSyxHQUFHSSxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBRS9CLElBQUksQ0FBQ0QsTUFBTSxDQUFDSSxJQUFJLElBQUlSLFdBQVcsSUFBSUMsS0FBSyxFQUFFO01BQ3hDRyxNQUFNLENBQUNJLElBQUksR0FBR0QsVUFBVTtNQUN4QkgsTUFBTSxDQUFDLEdBQUdHLFVBQVUsTUFBTSxDQUFDLEdBQUcsSUFBSTtJQUNwQyxDQUFDLE1BQU07TUFDTEgsTUFBTSxDQUFDLEdBQUdHLFVBQVUsTUFBTSxDQUFDLEdBQUcsQ0FBQ0gsTUFB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
79
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsImNvbmZpZyIsIkRpbWVuc2lvbnMiLCJpbmZsZWN0aW9uIiwiaXNFeHBvIiwidXNlRXZlbnRFbWl0dGVyIiwidXNlRXZlbnRMaXN0ZW5lciIsInVzZVNoYXBlIiwiY2FsY3VsYXRlQnJlYWtQb2ludCIsImJyZWFrcG9pbnRzIiwid2luZG93V2lkdGgiLCJnZXQiLCJ3aWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJyZXN1bHQiLCJicmVha3BvaW50RGF0YSIsImJyZWFrcG9pbnQiLCJuYW1lIiwiQm9vbGVhbiIsIkVycm9yIiwic2l6ZVR5cGVzIiwidXNlQnJlYWtwb2ludCIsImFyZ3MiLCJzIiwibWV0YSIsImdldEJyZWFrcG9pbnRzIiwiY2hlY2tBbmRVcGRhdGVCcmVha3BvaW50IiwibSIsInNldCIsIm9uRGltZW5zaW9uc0NoYW5nZSIsIm9uQnJlYWtwb2ludHNDaGFuZ2UiLCJuZXdWYWx1ZSIsInVzZVN0YXRlcyIsInN0eWxpbmciLCJzdHlsZSIsIk9iamVjdCIsImFzc2lnbiIsImJhc2UiLCJzaXplVHlwZSIsImJyZWFrcG9pbnRXaXRoU2l6ZVR5cGUiLCJjYW1lbGl6ZSIsImdldEV2ZW50cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtYnJlYWtwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIlxuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IGlzRXhwbyBmcm9tIFwiLi9pcy1leHBvXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWVtaXR0ZXJcIlxuaW1wb3J0IHVzZUV2ZW50TGlzdGVuZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWxpc3RlbmVyXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3VzZS1zaGFwZVwiXG5cbmNvbnN0IGNhbGN1bGF0ZUJyZWFrUG9pbnQgPSAoYnJlYWtwb2ludHMpID0+IHtcbiAgbGV0IHdpbmRvd1dpZHRoXG5cbiAgaWYgKGlzRXhwbykge1xuICAgIHdpbmRvd1dpZHRoID0gRGltZW5zaW9ucy5nZXQoXCJ3aW5kb3dcIikud2lkdGhcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgJ3dpbmRvdy5pbm5lcldpZHRoJyBvdXRzaWRlIEV4cG8gYmVjYXVzZSBzb21ldGltZXMgd2luZG93IHdpZHRoIGV4Y2x1ZGVzIHNjcm9sbFxuICAgIHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGhcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHt9XG5cbiAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBicmVha3BvaW50cykge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBicmVha3BvaW50RGF0YVswXVxuICAgIGNvbnN0IHdpZHRoID0gYnJlYWtwb2ludERhdGFbMV1cblxuICAgIGlmICghcmVzdWx0Lm5hbWUgJiYgd2luZG93V2lkdGggPj0gd2lkdGgpIHtcbiAgICAgIHJlc3VsdC5uYW1lID0gYnJlYWtwb2ludFxuICAgICAgcmVzdWx0W2Ake2JyZWFrcG9pbnR9RG93bmBdID0gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1Eb3duYF0gPSAhcmVzdWx0Lm5hbWVcbiAgICB9XG5cbiAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1VcGBdID0gQm9vbGVhbihyZXN1bHQubmFtZSlcbiAgfVxuXG4gIGlmIChyZXN1bHQubmFtZSkge1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3Qgbm90IGZpbmQgYnJlYWtwb2ludCBmcm9tIHdpbmRvdyB3aWR0aDogJHt3aW5kb3dXaWR0aH1gKVxufVxuXG5jb25zdCBzaXplVHlwZXMgPSBbXCJkb3duXCIsIFwidXBcIl1cblxuY29uc3QgdXNlQnJlYWtwb2ludCA9IChhcmdzID0ge30pID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKGFyZ3MpXG5cbiAgcy5tZXRhLmJyZWFrcG9pbnRzIHx8PSBjb25maWcuZ2V0QnJlYWtwb2ludHMoKVxuXG4gIGNvbnN0IGNoZWNrQW5kVXBkYXRlQnJlYWtwb2ludCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gY2FsY3VsYXRlQnJlYWtQb2ludChzLm0uYnJlYWtwb2ludHMpXG5cbiAgICBpZiAoYnJlYWtwb2ludC5uYW1lICE9IHMucy5icmVha3BvaW50Lm5hbWUpIHtcbiAgICAgIHMuc2V0KHticmVha3BvaW50fSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGltZW5zaW9uc0NoYW5nZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjaGVja0FuZFVwZGF0ZUJyZWFrcG9pbnQoKVxuICB9LCBbXSlcblxuICBjb25zdCBvbkJyZWFrcG9pbnRzQ2hhbmdlID0gdXNlQ2FsbGJhY2soKHtuZXdWYWx1ZX0pID0+IHtcbiAgICBzLm1ldGEuYnJlYWtwb2ludHMgPSBuZXdWYWx1ZVxuICAgIGNoZWNrQW5kVXBkYXRlQnJlYWtwb2ludCgpXG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBicmVha3BvaW50OiAoKSA9PiBjYWxjdWxhdGVCcmVha1BvaW50KHMubS5icmVha3BvaW50cylcbiAgfSlcblxuICBjb25zdCBzdHlsaW5nID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBjb25zdCBzdHlsZSA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MuYmFzZSlcblxuICAgIGZvciAoY29uc3QgYnJlYWtwb2ludERhdGEgb2Ygcy5tLmJyZWFrcG9pbnRzKSB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cblxuICAgICAgZm9yIChjb25zdCBzaXplVHlwZSBvZiBzaXplVHlwZXMpIHtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFdpdGhTaXplVHlwZSA9IGAke2JyZWFrcG9pbnR9JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNpemVUeXBlKX1gXG5cbiAgICAgICAgaWYgKGFyZ3NbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0gJiYgcy5zLmJyZWFrcG9pbnRbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBhcmdzW2JyZWFrcG9pbnRXaXRoU2l6ZVR5cGVdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlXG4gIH0sIFtdKVxuXG4gIHVzZUV2ZW50RW1pdHRlcihjb25maWcuZ2V0RXZlbnRzKCksIFwib25CcmVha3BvaW50c0NoYW5nZVwiLCBvbkJyZWFrcG9pbnRzQ2hhbmdlKVxuICB1c2VFdmVudExpc3RlbmVyKERpbWVuc2lvbnMsIFwiY2hhbmdlXCIsIG9uRGltZW5zaW9uc0NoYW5nZSlcblxuICByZXR1cm4ge1xuICAgIHN0eWxpbmcsXG4gICAgLi4ucy5zLmJyZWFrcG9pbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VCcmVha3BvaW50XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFdBQVcsUUFBTyxPQUFPO0FBQ2pDLE9BQU9DLE1BQU0sTUFBTSxVQUFVO0FBQzdCLFNBQVFDLFVBQVUsUUFBTyxjQUFjO0FBQ3ZDLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFDeEMsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsT0FBT0MsZUFBZSxNQUFNLHFCQUFxQjtBQUNqRCxPQUFPQyxnQkFBZ0IsTUFBTSxzQkFBc0I7QUFDbkQsT0FBT0MsUUFBUSxNQUFNLGlDQUFpQztBQUV0RCxNQUFNQyxtQkFBbUIsR0FBSUMsV0FBVyxJQUFLO0VBQzNDLElBQUlDLFdBQVc7RUFFZixJQUFJTixNQUFNLEVBQUU7SUFDVk0sV0FBVyxHQUFHUixV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
@@ -1,5 +1,5 @@
1
1
  import CanCan from "./can-can";
2
- import { useCallback, useMemo, useState } from "react";
2
+ import { useCallback, useMemo } from "react";
3
3
  import useCurrentUser from "./use-current-user";
4
4
  import useEventEmitter from "./use-event-emitter";
5
5
  import useShape from "set-state-compare/src/use-shape";
@@ -52,4 +52,4 @@ const useCanCan = (abilitiesCallback, dependencies) => {
52
52
  return s.s.canCan;
53
53
  };
54
54
  export default useCanCan;
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYW5DYW4iLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUN1cnJlbnRVc2VyIiwidXNlRXZlbnRFbWl0dGVyIiwidXNlU2hhcGUiLCJ1c2VDYW5DYW4iLCJhYmlsaXRpZXNDYWxsYmFjayIsImRlcGVuZGVuY2llcyIsImN1cnJlbnRVc2VyIiwicyIsInVzZVN0YXRlcyIsImNhbkNhbiIsImxhc3RVcGRhdGUiLCJEYXRlIiwiaWQiLCJsb2FkQWJpbGl0aWVzIiwiY3VycmVudCIsImFiaWxpdGllcyIsInAiLCJzZXQiLCJvblJlc2V0QWJpbGl0aWVzIiwic2lsZW50IiwibG9hZEFiaWxpdGllc09uTmV3IiwicmVzZXRBYmlsaXRpZXMiLCJldmVudHMiXSwic291cmNlcyI6WyIuLi9zcmMvdXNlLWNhbi1jYW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENhbkNhbiBmcm9tIFwiLi9jYW4tY2FuXCJcbmltcG9ydCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZUN1cnJlbnRVc2VyIGZyb20gXCIuL3VzZS1jdXJyZW50LXVzZXJcIlxuaW1wb3J0IHVzZUV2ZW50RW1pdHRlciBmcm9tIFwiLi91c2UtZXZlbnQtZW1pdHRlclwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy91c2Utc2hhcGVcIlxuXG5jb25zdCB1c2VDYW5DYW4gPSAoYWJpbGl0aWVzQ2FsbGJhY2ssIGRlcGVuZGVuY2llcykgPT4ge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZUN1cnJlbnRVc2VyKClcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHthYmlsaXRpZXNDYWxsYmFja30pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIGNhbkNhbjogbnVsbCxcbiAgICBsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpXG4gIH0pXG5cbiAgaWYgKCFkZXBlbmRlbmNpZXMpIHtcbiAgICBkZXBlbmRlbmNpZXMgPSBbY3VycmVudFVzZXI/LmlkKCldXG4gIH1cblxuICBjb25zdCBsb2FkQWJpbGl0aWVzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNhbkNhbiA9IENhbkNhbi5jdXJyZW50KClcbiAgICBjb25zdCBhYmlsaXRpZXMgPSBzLnAuYWJpbGl0aWVzQ2FsbGJhY2soKVxuXG4gICAgYXdhaXQgY2FuQ2FuLmxvYWRBYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgcy5zZXQoe2NhbkNhbiwgbGFzdFVwZGF0ZTogbmV3IERhdGUoKX0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uUmVzZXRBYmlsaXRpZXMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgcy5zZXQoe2NhbkNhbjogbnVsbH0sIHtzaWxlbnQ6IHRydWV9KVxuICAgIGF3YWl0IGxvYWRBYmlsaXRpZXMoKVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkQWJpbGl0aWVzT25OZXcgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2FuQ2FuID0gcy5zLmNhbkNhblxuXG4gICAgcy5zZXQoe2NhbkNhbjogbnVsbH0sIHtzaWxlbnQ6IHRydWV9KVxuXG4gICAgaWYgKGNhbkNhbikge1xuICAgICAgYXdhaXQgY2FuQ2FuPy5yZXNldEFiaWxpdGllcygpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGxvYWRBYmlsaXRpZXMoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlTWVtbygoKSA9PiB7XG4gICAgbG9hZEFiaWxpdGllc09uTmV3KClcbiAgfSwgZGVwZW5kZW5jaWVzKVxuXG4gIHVzZUV2ZW50RW1pdHRlcihDYW5DYW4uY3VycmVudCgpLmV2ZW50cywgXCJvblJlc2V0QWJpbGl0aWVzXCIsIG9uUmVzZXRBYmlsaXRpZXMpXG5cbiAgcmV0dXJuIHMucy5jYW5DYW5cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlQ2FuQ2FuXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9B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
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYW5DYW4iLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VDdXJyZW50VXNlciIsInVzZUV2ZW50RW1pdHRlciIsInVzZVNoYXBlIiwidXNlQ2FuQ2FuIiwiYWJpbGl0aWVzQ2FsbGJhY2siLCJkZXBlbmRlbmNpZXMiLCJjdXJyZW50VXNlciIsInMiLCJ1c2VTdGF0ZXMiLCJjYW5DYW4iLCJsYXN0VXBkYXRlIiwiRGF0ZSIsImlkIiwibG9hZEFiaWxpdGllcyIsImN1cnJlbnQiLCJhYmlsaXRpZXMiLCJwIiwic2V0Iiwib25SZXNldEFiaWxpdGllcyIsInNpbGVudCIsImxvYWRBYmlsaXRpZXNPbk5ldyIsInJlc2V0QWJpbGl0aWVzIiwiZXZlbnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZS1jYW4tY2FuLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDYW5DYW4gZnJvbSBcIi4vY2FuLWNhblwiXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHVzZUN1cnJlbnRVc2VyIGZyb20gXCIuL3VzZS1jdXJyZW50LXVzZXJcIlxuaW1wb3J0IHVzZUV2ZW50RW1pdHRlciBmcm9tIFwiLi91c2UtZXZlbnQtZW1pdHRlclwiXG5pbXBvcnQgdXNlU2hhcGUgZnJvbSBcInNldC1zdGF0ZS1jb21wYXJlL3NyYy91c2Utc2hhcGVcIlxuXG5jb25zdCB1c2VDYW5DYW4gPSAoYWJpbGl0aWVzQ2FsbGJhY2ssIGRlcGVuZGVuY2llcykgPT4ge1xuICBjb25zdCBjdXJyZW50VXNlciA9IHVzZUN1cnJlbnRVc2VyKClcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHthYmlsaXRpZXNDYWxsYmFja30pXG5cbiAgcy51c2VTdGF0ZXMoe1xuICAgIGNhbkNhbjogbnVsbCxcbiAgICBsYXN0VXBkYXRlOiBuZXcgRGF0ZSgpXG4gIH0pXG5cbiAgaWYgKCFkZXBlbmRlbmNpZXMpIHtcbiAgICBkZXBlbmRlbmNpZXMgPSBbY3VycmVudFVzZXI/LmlkKCldXG4gIH1cblxuICBjb25zdCBsb2FkQWJpbGl0aWVzID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGNhbkNhbiA9IENhbkNhbi5jdXJyZW50KClcbiAgICBjb25zdCBhYmlsaXRpZXMgPSBzLnAuYWJpbGl0aWVzQ2FsbGJhY2soKVxuXG4gICAgYXdhaXQgY2FuQ2FuLmxvYWRBYmlsaXRpZXMoYWJpbGl0aWVzKVxuXG4gICAgcy5zZXQoe2NhbkNhbiwgbGFzdFVwZGF0ZTogbmV3IERhdGUoKX0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uUmVzZXRBYmlsaXRpZXMgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgcy5zZXQoe2NhbkNhbjogbnVsbH0sIHtzaWxlbnQ6IHRydWV9KVxuICAgIGF3YWl0IGxvYWRBYmlsaXRpZXMoKVxuICB9LCBbXSlcblxuICBjb25zdCBsb2FkQWJpbGl0aWVzT25OZXcgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgY2FuQ2FuID0gcy5zLmNhbkNhblxuXG4gICAgcy5zZXQoe2NhbkNhbjogbnVsbH0sIHtzaWxlbnQ6IHRydWV9KVxuXG4gICAgaWYgKGNhbkNhbikge1xuICAgICAgYXdhaXQgY2FuQ2FuPy5yZXNldEFiaWxpdGllcygpXG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGxvYWRBYmlsaXRpZXMoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlTWVtbygoKSA9PiB7XG4gICAgbG9hZEFiaWxpdGllc09uTmV3KClcbiAgfSwgZGVwZW5kZW5jaWVzKVxuXG4gIHVzZUV2ZW50RW1pdHRlcihDYW5DYW4uY3VycmVudCgpLmV2ZW50cywgXCJvblJlc2V0QWJpbGl0aWVzXCIsIG9uUmVzZXRBYmlsaXRpZXMpXG5cbiAgcmV0dXJuIHMucy5jYW5DYW5cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXNlQ2FuQ2FuXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxXQUFXO0FBQzlCLFNBQVFDLFdBQVcsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDMUMsT0FBT0MsY0FBYyxNQUFNLG9CQUFvQjtBQUMvQyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLFFBQVEsTUFBTSxpQ0FBaUM7QUFFdEQsTUFBTUMsU0FBUyxHQUFHQSxDQUFDQyxpQkFBaUIsRUFBRUMsWUFBWSxLQUFLO0VBQ3JELE1BQU1DLFdBQVcsR0FBR04sY0FBYyxDQUFDLENBQUM7RUFDcEMsTUFBTU8sQ0FBQyxHQUFHTCxRQUFRLENBQUM7SUFBQ0U7RUFBaUIsQ0FBQyxDQUFDO0VBRXZDRyxDQUFDLENBQUNDLFNBQVMsQ0FBQztJQUNWQyxNQUFNLEVBQUUsSUFBSTtJQUNaQyxVQUFVLEVBQUUsSUFBSUMsSUFBSSxDQUFDO0VBQ3ZCLENBQUMsQ0FBQztFQUVGLElBQUksQ0FBQ04sWUFBWSxFQUFFO0lBQ2pCQSxZQUFZLEdBQUcsQ0FBQ0MsV0FBVyxFQUFFTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ3BDO0VBRUEsTUFBTUMsYUFBYSxHQUFHZixXQUFXLENBQUMsWUFBWTtJQUM1QyxNQUFNVyxNQUFNLEdBQUdaLE1BQU0sQ0FBQ2lCLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLE1BQU1DLFNBQVMsR0FBR1IsQ0FBQyxDQUFDUyxDQUFDLENBQUNaLGlCQUFpQixDQUFDLENBQUM7SUFFekMsTUFBTUssTUFBTSxDQUFDSSxhQUFhLENBQUNFLFNBQVMsQ0FBQztJQUVyQ1IsQ0FBQyxDQUFDVSxHQUFHLENBQUM7TUFBQ1IsTUFBTTtNQUFFQyxVQUFVLEVBQUUsSUFBSUMsSUFBSSxDQUFDO0lBQUMsQ0FBQyxDQUFDO0VBQ3pDLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixNQUFNTyxnQkFBZ0IsR0FBR3BCLFdBQVcsQ0FBQyxZQUFZO0lBQy9DUyxDQUFDLENBQUNVLEdBQUcsQ0FBQztNQUFDUixNQUFNLEVBQUU7SUFBSSxDQUFDLEVBQUU7TUFBQ1UsTUFBTSxFQUFFO0lBQUksQ0FBQyxDQUFDO0lBQ3JDLE1BQU1OLGFBQWEsQ0FBQyxDQUFDO0VBQ3ZCLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixNQUFNTyxrQkFBa0IsR0FBR3RCLFdBQVcsQ0FBQyxZQUFZO0lBQ2pELE1BQU1XLE1BQU0sR0FBR0YsQ0FBQyxDQUFDQSxDQUFDLENBQUNFLE1BQU07SUFFekJGLENBQUMsQ0FBQ1UsR0FBRyxDQUFDO01BQUNSLE1BQU0sRUFBRTtJQUFJLENBQUMsRUFBRTtNQUFDVSxNQUFNLEVBQUU7SUFBSSxDQUFDLENBQUM7SUFFckMsSUFBSVYsTUFBTSxFQUFFO01BQ1YsTUFBTUEsTUFBTSxFQUFFWSxjQUFjLENBQUMsQ0FBQztJQUNoQyxDQUFDLE1BQU07TUFDTCxNQUFNUixhQUFhLENBQUMsQ0FBQztJQUN2QjtFQUNGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTmQsT0FBTyxDQUFDLE1BQU07SUFDWnFCLGtCQUFrQixDQUFDLENBQUM7RUFDdEIsQ0FBQyxFQUFFZixZQUFZLENBQUM7RUFFaEJKLGVBQWUsQ0FBQ0osTUFBTSxDQUFDaUIsT0FBTyxDQUFDLENBQUMsQ0FBQ1EsTUFBTSxFQUFFLGtCQUFrQixFQUFFSixnQkFBZ0IsQ0FBQztFQUU5RSxPQUFPWCxDQUFDLENBQUNBLENBQUMsQ0FBQ0UsTUFBTTtBQUNuQixDQUFDO0FBRUQsZUFBZU4sU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,8 +1,15 @@
1
- import { useLayoutEffect } from "react";
1
+ import { useLayoutEffect, useMemo } from "react";
2
2
  const ApiMakerUseEventEmitter = (events, event, onCalled) => {
3
- useLayoutEffect(() => {
3
+ // useMemo to instantly connect
4
+ useMemo(() => {
4
5
  if (events) {
5
6
  events.addListener(event, onCalled);
7
+ }
8
+ }, [events, event, onCalled]);
9
+
10
+ // useLayoutEffect to disconnect when unmounted or changed
11
+ useLayoutEffect(() => {
12
+ if (events) {
6
13
  return () => {
7
14
  events.removeListener(event, onCalled);
8
15
  };
@@ -10,4 +17,4 @@ const ApiMakerUseEventEmitter = (events, event, onCalled) => {
10
17
  }, [events, event, onCalled]);
11
18
  };
12
19
  export default ApiMakerUseEventEmitter;
13
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJBcGlNYWtlclVzZUV2ZW50RW1pdHRlciIsImV2ZW50cyIsImV2ZW50Iiwib25DYWxsZWQiLCJhZGRMaXN0ZW5lciIsInJlbW92ZUxpc3RlbmVyIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VzZS1ldmVudC1lbWl0dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dXNlTGF5b3V0RWZmZWN0fSBmcm9tIFwicmVhY3RcIlxuXG5jb25zdCBBcGlNYWtlclVzZUV2ZW50RW1pdHRlciA9IChldmVudHMsIGV2ZW50LCBvbkNhbGxlZCkgPT4ge1xuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChldmVudHMpIHtcbiAgICAgIGV2ZW50cy5hZGRMaXN0ZW5lcihldmVudCwgb25DYWxsZWQpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGV2ZW50cy5yZW1vdmVMaXN0ZW5lcihldmVudCwgb25DYWxsZWQpXG4gICAgICB9XG4gICAgfVxuICB9LCBbZXZlbnRzLCBldmVudCwgb25DYWxsZWRdKVxufVxuXG5leHBvcnQgZGVmYXVsdCBBcGlNYWtlclVzZUV2ZW50RW1pdHRlclxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxlQUFlLFFBQU8sT0FBTztBQUVyQyxNQUFNQyx1QkFBdUIsR0FBR0EsQ0FBQ0MsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsS0FBSztFQUMzREosZUFBZSxDQUFDLE1BQU07SUFDcEIsSUFBSUUsTUFBTSxFQUFFO01BQ1ZBLE1BQU0sQ0FBQ0csV0FBVyxDQUFDRixLQUFLLEVBQUVDLFFBQVEsQ0FBQztNQUVuQyxPQUFPLE1BQU07UUFDWEYsTUFBTSxDQUFDSSxjQUFjLENBQUNILEtBQUssRUFBRUMsUUFBUSxDQUFDO01BQ3hDLENBQUM7SUFDSDtFQUNGLENBQUMsRUFBRSxDQUFDRixNQUFNLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUVELGVBQWVILHVCQUF1QiIsImlnbm9yZUxpc3QiOltdfQ==
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwiQXBpTWFrZXJVc2VFdmVudEVtaXR0ZXIiLCJldmVudHMiLCJldmVudCIsIm9uQ2FsbGVkIiwiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtZXZlbnQtZW1pdHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUxheW91dEVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcblxuY29uc3QgQXBpTWFrZXJVc2VFdmVudEVtaXR0ZXIgPSAoZXZlbnRzLCBldmVudCwgb25DYWxsZWQpID0+IHtcbiAgLy8gdXNlTWVtbyB0byBpbnN0YW50bHkgY29ubmVjdFxuICB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZXZlbnRzKSB7XG4gICAgICBldmVudHMuYWRkTGlzdGVuZXIoZXZlbnQsIG9uQ2FsbGVkKVxuICAgIH1cbiAgfSwgW2V2ZW50cywgZXZlbnQsIG9uQ2FsbGVkXSlcblxuICAvLyB1c2VMYXlvdXRFZmZlY3QgdG8gZGlzY29ubmVjdCB3aGVuIHVubW91bnRlZCBvciBjaGFuZ2VkXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGV2ZW50cykge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZXZlbnRzLnJlbW92ZUxpc3RlbmVyKGV2ZW50LCBvbkNhbGxlZClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtldmVudHMsIGV2ZW50LCBvbkNhbGxlZF0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwaU1ha2VyVXNlRXZlbnRFbWl0dGVyXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGVBQWUsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFFOUMsTUFBTUMsdUJBQXVCLEdBQUdBLENBQUNDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxRQUFRLEtBQUs7RUFDM0Q7RUFDQUosT0FBTyxDQUFDLE1BQU07SUFDWixJQUFJRSxNQUFNLEVBQUU7TUFDVkEsTUFBTSxDQUFDRyxXQUFXLENBQUNGLEtBQUssRUFBRUMsUUFBUSxDQUFDO0lBQ3JDO0VBQ0YsQ0FBQyxFQUFFLENBQUNGLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxRQUFRLENBQUMsQ0FBQzs7RUFFN0I7RUFDQUwsZUFBZSxDQUFDLE1BQU07SUFDcEIsSUFBSUcsTUFBTSxFQUFFO01BQ1YsT0FBTyxNQUFNO1FBQ1hBLE1BQU0sQ0FBQ0ksY0FBYyxDQUFDSCxLQUFLLEVBQUVDLFFBQVEsQ0FBQztNQUN4QyxDQUFDO0lBQ0g7RUFDRixDQUFDLEVBQUUsQ0FBQ0YsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlSCx1QkFBdUIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -28,7 +28,7 @@ const useStyles = (styles, args, dependencies = []) => {
28
28
  const actualDependencies = [...dependencies, breakpointName];
29
29
  const listOfStyles = useMemo(() => {
30
30
  const listOfStyles = [];
31
- const breakpointsReverse = [...config.getBreakPoints()].reverse();
31
+ const breakpointsReverse = [...config.getBreakpoints()].reverse();
32
32
  if (!Array.isArray(args)) {
33
33
  args = [args];
34
34
  }
@@ -51,4 +51,4 @@ const useStyles = (styles, args, dependencies = []) => {
51
51
  return listOfStyles;
52
52
  };
53
53
  export default useStyles;
54
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJkaWdnIiwiaW5mbGVjdGlvbiIsInVzZUJyZWFrcG9pbnQiLCJ1c2VNZW1vIiwiaGFuZGxlU3RyaW5nU3R5bGUiLCJzdHlsZXMiLCJsaXN0T2ZTdHlsZXMiLCJicmVha3BvaW50IiwiYnJlYWtwb2ludHNSZXZlcnNlIiwiYXJnIiwiRXJyb3IiLCJPYmplY3QiLCJrZXlzIiwiam9pbiIsInB1c2giLCJicmVha3BvaW50RGF0YSIsImJyZWFrcG9pbnROYW1lIiwiYnJlYWtwb2ludFN0eWxlTmFtZVVwIiwiY2FtZWxpemUiLCJicmVha3BvaW50U3R5bGVOYW1lRG93biIsImJyZWFrcG9pbnRJc1VwIiwiYnJlYWtwb2ludElzRG93biIsInVzZVN0eWxlcyIsImFyZ3MiLCJkZXBlbmRlbmNpZXMiLCJhY3R1YWxEZXBlbmRlbmNpZXMiLCJnZXRCcmVha1BvaW50cyIsInJldmVyc2UiLCJBcnJheSIsImlzQXJyYXkiLCJrZXkiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2Utc3R5bGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB1c2VCcmVha3BvaW50IGZyb20gXCIuL3VzZS1icmVha3BvaW50XCJcbmltcG9ydCB7dXNlTWVtb30gZnJvbSBcInJlYWN0XCJcblxuY29uc3QgaGFuZGxlU3RyaW5nU3R5bGUgPSAoc3R5bGVzLCBsaXN0T2ZTdHlsZXMsIGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRzUmV2ZXJzZSwgYXJnKSA9PiB7XG4gIGlmICghKGFyZyBpbiBzdHlsZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIHN0eWxpbmcgJyR7YXJnfScgaW4gZ2l2ZW4gc3R5bGVzOiAke09iamVjdC5rZXlzKHN0eWxlcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYXJnXSlcblxuICBmb3IgKGNvbnN0IGJyZWFrcG9pbnREYXRhIG9mIGJyZWFrcG9pbnRzUmV2ZXJzZSkge1xuICAgIGNvbnN0IGJyZWFrcG9pbnROYW1lID0gYnJlYWtwb2ludERhdGFbMF1cbiAgICBjb25zdCBicmVha3BvaW50U3R5bGVOYW1lVXAgPSBgJHthcmd9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGJyZWFrcG9pbnROYW1lKX1VcGBcbiAgICBjb25zdCBicmVha3BvaW50U3R5bGVOYW1lRG93biA9IGAke2FyZ30ke2luZmxlY3Rpb24uY2FtZWxpemUoYnJlYWtwb2ludE5hbWUpfURvd25gXG4gICAgY29uc3QgYnJlYWtwb2ludElzVXAgPSBkaWdnKGJyZWFrcG9pbnQsIGAke2JyZWFrcG9pbnROYW1lfVVwYClcbiAgICBjb25zdCBicmVha3BvaW50SXNEb3duID0gZGlnZyhicmVha3BvaW50LCBgJHticmVha3BvaW50TmFtZX1Eb3duYClcblxuICAgIGlmIChicmVha3BvaW50U3R5bGVOYW1lVXAgaW4gc3R5bGVzICYmIGJyZWFrcG9pbnRJc1VwKSB7XG4gICAgICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYnJlYWtwb2ludFN0eWxlTmFtZVVwXSlcbiAgICB9XG5cbiAgICBpZiAoYnJlYWtwb2ludFN0eWxlTmFtZURvd24gaW4gc3R5bGVzICYmIGJyZWFrcG9pbnRJc0Rvd24pIHtcbiAgICAgIGxpc3RPZlN0eWxlcy5wdXNoKHN0eWxlc1ticmVha3BvaW50U3R5bGVOYW1lRG93bl0pXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHVzZVN0eWxlcyA9IChzdHlsZXMsIGFyZ3MsIGRlcGVuZGVuY2llcyA9IFtdKSA9PiB7XG4gIGNvbnN0IGJyZWFrcG9pbnQgPSB1c2VCcmVha3BvaW50KClcbiAgY29uc3QgYnJlYWtwb2ludE5hbWUgPSBkaWdnKGJyZWFrcG9pbnQsIFwibmFtZVwiKVxuICBjb25zdCBhY3R1YWxEZXBlbmRlbmNpZXMgPSBbLi4uZGVwZW5kZW5jaWVzLCBicmVha3BvaW50TmFtZV1cblxuICBjb25zdCBsaXN0T2ZTdHlsZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBsaXN0T2ZTdHlsZXMgPSBbXVxuICAgIGNvbnN0IGJyZWFrcG9pbnRzUmV2ZXJzZSA9IFsuLi5jb25maWcuZ2V0QnJlYWtQb2ludHMoKV0ucmV2ZXJzZSgpXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJncykpIHtcbiAgICAgIGFyZ3MgPSBbYXJnc11cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZyA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGhhbmRsZVN0cmluZ1N0eWxlKHN0eWxlcywgbGlzdE9mU3R5bGVzLCBicmVha3BvaW50LCBicmVha3BvaW50c1JldmVyc2UsIGFyZylcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFyZykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXJnW2tleV1cblxuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaGFuZGxlU3RyaW5nU3R5bGUoc3R5bGVzLCBsaXN0T2ZTdHlsZXMsIGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRzUmV2ZXJzZSwga2V5KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgdHlwZTogJHt0eXBlb2YgYXJnfWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3RPZlN0eWxlc1xuICB9LCBhY3R1YWxEZXBlbmRlbmNpZXMpXG5cbiAgcmV0dXJuIGxpc3RPZlN0eWxlc1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTdHlsZXNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxN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
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJkaWdnIiwiaW5mbGVjdGlvbiIsInVzZUJyZWFrcG9pbnQiLCJ1c2VNZW1vIiwiaGFuZGxlU3RyaW5nU3R5bGUiLCJzdHlsZXMiLCJsaXN0T2ZTdHlsZXMiLCJicmVha3BvaW50IiwiYnJlYWtwb2ludHNSZXZlcnNlIiwiYXJnIiwiRXJyb3IiLCJPYmplY3QiLCJrZXlzIiwiam9pbiIsInB1c2giLCJicmVha3BvaW50RGF0YSIsImJyZWFrcG9pbnROYW1lIiwiYnJlYWtwb2ludFN0eWxlTmFtZVVwIiwiY2FtZWxpemUiLCJicmVha3BvaW50U3R5bGVOYW1lRG93biIsImJyZWFrcG9pbnRJc1VwIiwiYnJlYWtwb2ludElzRG93biIsInVzZVN0eWxlcyIsImFyZ3MiLCJkZXBlbmRlbmNpZXMiLCJhY3R1YWxEZXBlbmRlbmNpZXMiLCJnZXRCcmVha3BvaW50cyIsInJldmVyc2UiLCJBcnJheSIsImlzQXJyYXkiLCJrZXkiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2Utc3R5bGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB1c2VCcmVha3BvaW50IGZyb20gXCIuL3VzZS1icmVha3BvaW50XCJcbmltcG9ydCB7dXNlTWVtb30gZnJvbSBcInJlYWN0XCJcblxuY29uc3QgaGFuZGxlU3RyaW5nU3R5bGUgPSAoc3R5bGVzLCBsaXN0T2ZTdHlsZXMsIGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRzUmV2ZXJzZSwgYXJnKSA9PiB7XG4gIGlmICghKGFyZyBpbiBzdHlsZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIHN0eWxpbmcgJyR7YXJnfScgaW4gZ2l2ZW4gc3R5bGVzOiAke09iamVjdC5rZXlzKHN0eWxlcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYXJnXSlcblxuICBmb3IgKGNvbnN0IGJyZWFrcG9pbnREYXRhIG9mIGJyZWFrcG9pbnRzUmV2ZXJzZSkge1xuICAgIGNvbnN0IGJyZWFrcG9pbnROYW1lID0gYnJlYWtwb2ludERhdGFbMF1cbiAgICBjb25zdCBicmVha3BvaW50U3R5bGVOYW1lVXAgPSBgJHthcmd9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGJyZWFrcG9pbnROYW1lKX1VcGBcbiAgICBjb25zdCBicmVha3BvaW50U3R5bGVOYW1lRG93biA9IGAke2FyZ30ke2luZmxlY3Rpb24uY2FtZWxpemUoYnJlYWtwb2ludE5hbWUpfURvd25gXG4gICAgY29uc3QgYnJlYWtwb2ludElzVXAgPSBkaWdnKGJyZWFrcG9pbnQsIGAke2JyZWFrcG9pbnROYW1lfVVwYClcbiAgICBjb25zdCBicmVha3BvaW50SXNEb3duID0gZGlnZyhicmVha3BvaW50LCBgJHticmVha3BvaW50TmFtZX1Eb3duYClcblxuICAgIGlmIChicmVha3BvaW50U3R5bGVOYW1lVXAgaW4gc3R5bGVzICYmIGJyZWFrcG9pbnRJc1VwKSB7XG4gICAgICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYnJlYWtwb2ludFN0eWxlTmFtZVVwXSlcbiAgICB9XG5cbiAgICBpZiAoYnJlYWtwb2ludFN0eWxlTmFtZURvd24gaW4gc3R5bGVzICYmIGJyZWFrcG9pbnRJc0Rvd24pIHtcbiAgICAgIGxpc3RPZlN0eWxlcy5wdXNoKHN0eWxlc1ticmVha3BvaW50U3R5bGVOYW1lRG93bl0pXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHVzZVN0eWxlcyA9IChzdHlsZXMsIGFyZ3MsIGRlcGVuZGVuY2llcyA9IFtdKSA9PiB7XG4gIGNvbnN0IGJyZWFrcG9pbnQgPSB1c2VCcmVha3BvaW50KClcbiAgY29uc3QgYnJlYWtwb2ludE5hbWUgPSBkaWdnKGJyZWFrcG9pbnQsIFwibmFtZVwiKVxuICBjb25zdCBhY3R1YWxEZXBlbmRlbmNpZXMgPSBbLi4uZGVwZW5kZW5jaWVzLCBicmVha3BvaW50TmFtZV1cblxuICBjb25zdCBsaXN0T2ZTdHlsZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBsaXN0T2ZTdHlsZXMgPSBbXVxuICAgIGNvbnN0IGJyZWFrcG9pbnRzUmV2ZXJzZSA9IFsuLi5jb25maWcuZ2V0QnJlYWtwb2ludHMoKV0ucmV2ZXJzZSgpXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJncykpIHtcbiAgICAgIGFyZ3MgPSBbYXJnc11cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZyA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGhhbmRsZVN0cmluZ1N0eWxlKHN0eWxlcywgbGlzdE9mU3R5bGVzLCBicmVha3BvaW50LCBicmVha3BvaW50c1JldmVyc2UsIGFyZylcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFyZykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXJnW2tleV1cblxuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaGFuZGxlU3RyaW5nU3R5bGUoc3R5bGVzLCBsaXN0T2ZTdHlsZXMsIGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRzUmV2ZXJzZSwga2V5KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgdHlwZTogJHt0eXBlb2YgYXJnfWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3RPZlN0eWxlc1xuICB9LCBhY3R1YWxEZXBlbmRlbmNpZXMpXG5cbiAgcmV0dXJuIGxpc3RPZlN0eWxlc1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTdHlsZXNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxN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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kaspernj/api-maker",
3
- "version": "1.0.2021",
3
+ "version": "1.0.2022",
4
4
  "description": "My new module",
5
5
  "main": "build/index.js",
6
6
  "scripts": {
package/src/config.js CHANGED
@@ -1,7 +1,8 @@
1
+ import EventEmitter from "events"
1
2
  import * as inflection from "inflection"
2
3
 
3
4
  const accessors = {
4
- breakPoints: {
5
+ breakpoints: {
5
6
  default: [
6
7
  ["xxl", 1400],
7
8
  ["xl", 1200],
@@ -28,15 +29,27 @@ class ApiMakerConfig {
28
29
  constructor() {
29
30
  if (!globalThis.apiMakerConfigGlobal) globalThis.apiMakerConfigGlobal = {}
30
31
 
32
+ this.events = new EventEmitter()
31
33
  this.global = globalThis.apiMakerConfigGlobal
32
34
  }
35
+
36
+ getEvents = () => this.events
33
37
  }
34
38
 
35
39
  for (const accessorName in accessors) {
36
40
  const accessorData = accessors[accessorName]
37
41
  const camelizedAccessor = inflection.camelize(accessorName)
38
42
 
39
- ApiMakerConfig.prototype[`set${camelizedAccessor}`] = function (newValue) { this.global[accessorName] = newValue }
43
+ ApiMakerConfig.prototype[`set${camelizedAccessor}`] = function (newValue) {
44
+ const oldValue = this.global[accessorName]
45
+
46
+ this.global[accessorName] = newValue
47
+
48
+ if (oldValue !== newValue) {
49
+ this.events.emit(`on${camelizedAccessor}Change`, {oldValue, newValue})
50
+ }
51
+ }
52
+
40
53
  ApiMakerConfig.prototype[`get${camelizedAccessor}`] = function (...args) {
41
54
  if (!this.global[accessorName]) {
42
55
  if (accessorData.default) return accessorData.default
@@ -1,15 +1,17 @@
1
- import {useCallback, useLayoutEffect} from "react"
1
+ import {useCallback} from "react"
2
2
  import config from "./config"
3
3
  import {Dimensions} from "react-native"
4
4
  import * as inflection from "inflection"
5
5
  import isExpo from "./is-expo"
6
+ import useEventEmitter from "./use-event-emitter"
7
+ import useEventListener from "./use-event-listener"
6
8
  import useShape from "set-state-compare/src/use-shape"
7
9
 
8
- const calculateBreakPoint = (windowObject) => {
10
+ const calculateBreakPoint = (breakpoints) => {
9
11
  let windowWidth
10
12
 
11
13
  if (isExpo) {
12
- windowWidth = windowObject.width
14
+ windowWidth = Dimensions.get("window").width
13
15
  } else {
14
16
  // Use 'window.innerWidth' outside Expo because sometimes window width excludes scroll
15
17
  windowWidth = window.innerWidth
@@ -17,7 +19,7 @@ const calculateBreakPoint = (windowObject) => {
17
19
 
18
20
  const result = {}
19
21
 
20
- for (const breakpointData of config.getBreakPoints()) {
22
+ for (const breakpointData of breakpoints) {
21
23
  const breakpoint = breakpointData[0]
22
24
  const width = breakpointData[1]
23
25
 
@@ -40,24 +42,36 @@ const calculateBreakPoint = (windowObject) => {
40
42
 
41
43
  const sizeTypes = ["down", "up"]
42
44
 
43
- const useBreakpoint = () => {
44
- const s = useShape()
45
- const onCalled = useCallback(({window: windowObject}) => {
46
- const breakpoint = calculateBreakPoint(windowObject)
45
+ const useBreakpoint = (args = {}) => {
46
+ const s = useShape(args)
47
+
48
+ s.meta.breakpoints ||= config.getBreakpoints()
49
+
50
+ const checkAndUpdateBreakpoint = useCallback(() => {
51
+ const breakpoint = calculateBreakPoint(s.m.breakpoints)
47
52
 
48
53
  if (breakpoint.name != s.s.breakpoint.name) {
49
54
  s.set({breakpoint})
50
55
  }
51
56
  }, [])
52
57
 
58
+ const onDimensionsChange = useCallback(() => {
59
+ checkAndUpdateBreakpoint()
60
+ }, [])
61
+
62
+ const onBreakpointsChange = useCallback(({newValue}) => {
63
+ s.meta.breakpoints = newValue
64
+ checkAndUpdateBreakpoint()
65
+ }, [])
66
+
53
67
  s.useStates({
54
- breakpoint: () => calculateBreakPoint(Dimensions.get("window"))
68
+ breakpoint: () => calculateBreakPoint(s.m.breakpoints)
55
69
  })
56
70
 
57
71
  const styling = useCallback((args) => {
58
72
  const style = Object.assign({}, args.base)
59
73
 
60
- for (const breakpointData of apiMakerConfig.getBreakPoints()) {
74
+ for (const breakpointData of s.m.breakpoints) {
61
75
  const breakpoint = breakpointData[0]
62
76
 
63
77
  for (const sizeType of sizeTypes) {
@@ -72,11 +86,8 @@ const useBreakpoint = () => {
72
86
  return style
73
87
  }, [])
74
88
 
75
- useLayoutEffect(() => {
76
- const subscription = Dimensions.addEventListener("change", onCalled)
77
-
78
- return () => subscription?.remove()
79
- })
89
+ useEventEmitter(config.getEvents(), "onBreakpointsChange", onBreakpointsChange)
90
+ useEventListener(Dimensions, "change", onDimensionsChange)
80
91
 
81
92
  return {
82
93
  styling,
@@ -1,5 +1,5 @@
1
1
  import CanCan from "./can-can"
2
- import {useCallback, useMemo, useState} from "react"
2
+ import {useCallback, useMemo} from "react"
3
3
  import useCurrentUser from "./use-current-user"
4
4
  import useEventEmitter from "./use-event-emitter"
5
5
  import useShape from "set-state-compare/src/use-shape"
@@ -1,10 +1,16 @@
1
- import {useLayoutEffect} from "react"
1
+ import {useLayoutEffect, useMemo} from "react"
2
2
 
3
3
  const ApiMakerUseEventEmitter = (events, event, onCalled) => {
4
- useLayoutEffect(() => {
4
+ // useMemo to instantly connect
5
+ useMemo(() => {
5
6
  if (events) {
6
7
  events.addListener(event, onCalled)
8
+ }
9
+ }, [events, event, onCalled])
7
10
 
11
+ // useLayoutEffect to disconnect when unmounted or changed
12
+ useLayoutEffect(() => {
13
+ if (events) {
8
14
  return () => {
9
15
  events.removeListener(event, onCalled)
10
16
  }
package/src/use-styles.js CHANGED
@@ -35,7 +35,7 @@ const useStyles = (styles, args, dependencies = []) => {
35
35
 
36
36
  const listOfStyles = useMemo(() => {
37
37
  const listOfStyles = []
38
- const breakpointsReverse = [...config.getBreakPoints()].reverse()
38
+ const breakpointsReverse = [...config.getBreakpoints()].reverse()
39
39
 
40
40
  if (!Array.isArray(args)) {
41
41
  args = [args]