@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 +12 -2
- package/build/use-breakpoint.js +25 -17
- package/build/use-can-can.js +2 -2
- package/build/use-event-emitter.js +10 -3
- package/build/use-styles.js +2 -2
- package/package.json +1 -1
- package/src/config.js +15 -2
- package/src/use-breakpoint.js +26 -15
- package/src/use-can-can.js +1 -1
- package/src/use-event-emitter.js +8 -2
- package/src/use-styles.js +1 -1
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
|
-
|
|
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,
|
|
72
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFdmVudEVtaXR0ZXIiLCJpbmZsZWN0aW9uIiwiYWNjZXNzb3JzIiwiYnJlYWtwb2ludHMiLCJkZWZhdWx0IiwicmVxdWlyZWQiLCJjYWJsZVVybCIsInJlcXVpcmUiLCJjdXJyZW5jaWVzQ29sbGVjdGlvbiIsImhpc3RvcnkiLCJob3N0IiwiaTE4biIsImxpbmtUbyIsIm1vZGFsIiwibmF2aWdhdGlvbiIsInJvdXRlcyIsInJvdXRlRGVmaW5pdGlvbnMiLCJBcGlNYWtlckNvbmZpZyIsImNvbnN0cnVjdG9yIiwiZ2xvYmFsVGhpcyIsImFwaU1ha2VyQ29uZmlnR2xvYmFsIiwiZXZlbnRzIiwiZ2xvYmFsIiwiZ2V0RXZlbnRzIiwiYWNjZXNzb3JOYW1lIiwiYWNjZXNzb3JEYXRhIiwiY2FtZWxpemVkQWNjZXNzb3IiLCJjYW1lbGl6ZSIsInByb3RvdHlwZSIsIm5ld1ZhbHVlIiwib2xkVmFsdWUiLCJlbWl0IiwiYXJncyIsIkVycm9yIiwidmFsdWUiLCJhcGlNYWtlckNvbmZpZyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV2ZW50RW1pdHRlciBmcm9tIFwiZXZlbnRzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuXG5jb25zdCBhY2Nlc3NvcnMgPSB7XG4gIGJyZWFrcG9pbnRzOiB7XG4gICAgZGVmYXVsdDogW1xuICAgICAgW1wieHhsXCIsIDE0MDBdLFxuICAgICAgW1wieGxcIiwgMTIwMF0sXG4gICAgICBbXCJsZ1wiLCA5OTJdLFxuICAgICAgW1wibWRcIiwgNzY4XSxcbiAgICAgIFtcInNtXCIsIDU3Nl0sXG4gICAgICBbXCJ4c1wiLCAwXVxuICAgIF0sXG4gICAgcmVxdWlyZWQ6IHRydWVcbiAgfSxcbiAgY2FibGVVcmw6IHtyZXF1aXJlOiBmYWxzZX0sXG4gIGN1cnJlbmNpZXNDb2xsZWN0aW9uOiB7cmVxdWlyZWQ6IHRydWV9LFxuICBoaXN0b3J5OiB7cmVxdWlyZWQ6IHRydWV9LFxuICBob3N0OiB7cmVxdWlyZWQ6IGZhbHNlfSxcbiAgaTE4bjoge3JlcXVpcmVkOiBmYWxzZX0sXG4gIGxpbmtUbzoge3JlcXVpcmVkOiB0cnVlfSxcbiAgbW9kYWw6IHtyZXF1aXJlZDogZmFsc2V9LFxuICBuYXZpZ2F0aW9uOiB7cmVxdWlyZWQ6IHRydWV9LFxuICByb3V0ZXM6IHtyZXF1aXJlZDogZmFsc2V9LFxuICByb3V0ZURlZmluaXRpb25zOiB7cmVxdWlyZWQ6IGZhbHNlfVxufVxuXG5jbGFzcyBBcGlNYWtlckNvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbCkgZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbCA9IHt9XG5cbiAgICB0aGlzLmV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICAgIHRoaXMuZ2xvYmFsID0gZ2xvYmFsVGhpcy5hcGlNYWtlckNvbmZpZ0dsb2JhbFxuICB9XG5cbiAgZ2V0RXZlbnRzID0gKCkgPT4gdGhpcy5ldmVudHNcbn1cblxuZm9yIChjb25zdCBhY2Nlc3Nvck5hbWUgaW4gYWNjZXNzb3JzKSB7XG4gIGNvbnN0IGFjY2Vzc29yRGF0YSA9IGFjY2Vzc29yc1thY2Nlc3Nvck5hbWVdXG4gIGNvbnN0IGNhbWVsaXplZEFjY2Vzc29yID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShhY2Nlc3Nvck5hbWUpXG5cbiAgQXBpTWFrZXJDb25maWcucHJvdG90eXBlW2BzZXQke2NhbWVsaXplZEFjY2Vzc29yfWBdID0gZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdID0gbmV3VmFsdWVcblxuICAgIGlmIChvbGRWYWx1ZSAhPT0gbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoYG9uJHtjYW1lbGl6ZWRBY2Nlc3Nvcn1DaGFuZ2VgLCB7b2xkVmFsdWUsIG5ld1ZhbHVlfSlcbiAgICB9XG4gIH1cblxuICBBcGlNYWtlckNvbmZpZy5wcm90b3R5cGVbYGdldCR7Y2FtZWxpemVkQWNjZXNzb3J9YF0gPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgIGlmICghdGhpcy5nbG9iYWxbYWNjZXNzb3JOYW1lXSkge1xuICAgICAgaWYgKGFjY2Vzc29yRGF0YS5kZWZhdWx0KSByZXR1cm4gYWNjZXNzb3JEYXRhLmRlZmF1bHRcbiAgICAgIGlmIChhY2Nlc3NvckRhdGEucmVxdWlyZWQpIHRocm93IG5ldyBFcnJvcihgJHthY2Nlc3Nvck5hbWV9IGhhc24ndCBiZWVuIHNldGApXG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdsb2JhbFthY2Nlc3Nvck5hbWVdXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwiZnVuY3Rpb25cIikgcmV0dXJuIHZhbHVlKC4uLmFyZ3MpXG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxufVxuXG5jb25zdCBhcGlNYWtlckNvbmZpZyA9IG5ldyBBcGlNYWtlckNvbmZpZygpXG5cbmV4cG9ydCBkZWZhdWx0IGFwaU1ha2VyQ29uZmlnXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksTUFBTSxRQUFRO0FBQ2pDLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFFeEMsTUFBTUMsU0FBUyxHQUFHO0VBQ2hCQyxXQUFXLEVBQUU7SUFDWEMsT0FBTyxFQUFFLENBQ1AsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQ2IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQ1osQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQ1gsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQ1Y7SUFDREMsUUFBUSxFQUFFO0VBQ1osQ0FBQztFQUNEQyxRQUFRLEVBQUU7SUFB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
|
package/build/use-breakpoint.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
import { useCallback
|
|
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 =
|
|
9
|
+
const calculateBreakPoint = breakpoints => {
|
|
8
10
|
let windowWidth;
|
|
9
11
|
if (isExpo) {
|
|
10
|
-
windowWidth =
|
|
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
|
|
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
|
-
|
|
36
|
-
|
|
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(
|
|
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
|
|
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
|
-
|
|
62
|
-
|
|
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,
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsImNvbmZpZyIsIkRpbWVuc2lvbnMiLCJpbmZsZWN0aW9uIiwiaXNFeHBvIiwidXNlRXZlbnRFbWl0dGVyIiwidXNlRXZlbnRMaXN0ZW5lciIsInVzZVNoYXBlIiwiY2FsY3VsYXRlQnJlYWtQb2ludCIsImJyZWFrcG9pbnRzIiwid2luZG93V2lkdGgiLCJnZXQiLCJ3aWR0aCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJyZXN1bHQiLCJicmVha3BvaW50RGF0YSIsImJyZWFrcG9pbnQiLCJuYW1lIiwiQm9vbGVhbiIsIkVycm9yIiwic2l6ZVR5cGVzIiwidXNlQnJlYWtwb2ludCIsImFyZ3MiLCJzIiwibWV0YSIsImdldEJyZWFrcG9pbnRzIiwiY2hlY2tBbmRVcGRhdGVCcmVha3BvaW50IiwibSIsInNldCIsIm9uRGltZW5zaW9uc0NoYW5nZSIsIm9uQnJlYWtwb2ludHNDaGFuZ2UiLCJuZXdWYWx1ZSIsInVzZVN0YXRlcyIsInN0eWxpbmciLCJzdHlsZSIsIk9iamVjdCIsImFzc2lnbiIsImJhc2UiLCJzaXplVHlwZSIsImJyZWFrcG9pbnRXaXRoU2l6ZVR5cGUiLCJjYW1lbGl6ZSIsImdldEV2ZW50cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtYnJlYWtwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUNhbGxiYWNrfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWdcIlxuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tIFwicmVhY3QtbmF0aXZlXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuaW1wb3J0IGlzRXhwbyBmcm9tIFwiLi9pcy1leHBvXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWVtaXR0ZXJcIlxuaW1wb3J0IHVzZUV2ZW50TGlzdGVuZXIgZnJvbSBcIi4vdXNlLWV2ZW50LWxpc3RlbmVyXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3VzZS1zaGFwZVwiXG5cbmNvbnN0IGNhbGN1bGF0ZUJyZWFrUG9pbnQgPSAoYnJlYWtwb2ludHMpID0+IHtcbiAgbGV0IHdpbmRvd1dpZHRoXG5cbiAgaWYgKGlzRXhwbykge1xuICAgIHdpbmRvd1dpZHRoID0gRGltZW5zaW9ucy5nZXQoXCJ3aW5kb3dcIikud2lkdGhcbiAgfSBlbHNlIHtcbiAgICAvLyBVc2UgJ3dpbmRvdy5pbm5lcldpZHRoJyBvdXRzaWRlIEV4cG8gYmVjYXVzZSBzb21ldGltZXMgd2luZG93IHdpZHRoIGV4Y2x1ZGVzIHNjcm9sbFxuICAgIHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGhcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHt9XG5cbiAgZm9yIChjb25zdCBicmVha3BvaW50RGF0YSBvZiBicmVha3BvaW50cykge1xuICAgIGNvbnN0IGJyZWFrcG9pbnQgPSBicmVha3BvaW50RGF0YVswXVxuICAgIGNvbnN0IHdpZHRoID0gYnJlYWtwb2ludERhdGFbMV1cblxuICAgIGlmICghcmVzdWx0Lm5hbWUgJiYgd2luZG93V2lkdGggPj0gd2lkdGgpIHtcbiAgICAgIHJlc3VsdC5uYW1lID0gYnJlYWtwb2ludFxuICAgICAgcmVzdWx0W2Ake2JyZWFrcG9pbnR9RG93bmBdID0gdHJ1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1Eb3duYF0gPSAhcmVzdWx0Lm5hbWVcbiAgICB9XG5cbiAgICByZXN1bHRbYCR7YnJlYWtwb2ludH1VcGBdID0gQm9vbGVhbihyZXN1bHQubmFtZSlcbiAgfVxuXG4gIGlmIChyZXN1bHQubmFtZSkge1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcihgQ291bGRuJ3Qgbm90IGZpbmQgYnJlYWtwb2ludCBmcm9tIHdpbmRvdyB3aWR0aDogJHt3aW5kb3dXaWR0aH1gKVxufVxuXG5jb25zdCBzaXplVHlwZXMgPSBbXCJkb3duXCIsIFwidXBcIl1cblxuY29uc3QgdXNlQnJlYWtwb2ludCA9IChhcmdzID0ge30pID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKGFyZ3MpXG5cbiAgcy5tZXRhLmJyZWFrcG9pbnRzIHx8PSBjb25maWcuZ2V0QnJlYWtwb2ludHMoKVxuXG4gIGNvbnN0IGNoZWNrQW5kVXBkYXRlQnJlYWtwb2ludCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBicmVha3BvaW50ID0gY2FsY3VsYXRlQnJlYWtQb2ludChzLm0uYnJlYWtwb2ludHMpXG5cbiAgICBpZiAoYnJlYWtwb2ludC5uYW1lICE9IHMucy5icmVha3BvaW50Lm5hbWUpIHtcbiAgICAgIHMuc2V0KHticmVha3BvaW50fSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGltZW5zaW9uc0NoYW5nZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjaGVja0FuZFVwZGF0ZUJyZWFrcG9pbnQoKVxuICB9LCBbXSlcblxuICBjb25zdCBvbkJyZWFrcG9pbnRzQ2hhbmdlID0gdXNlQ2FsbGJhY2soKHtuZXdWYWx1ZX0pID0+IHtcbiAgICBzLm1ldGEuYnJlYWtwb2ludHMgPSBuZXdWYWx1ZVxuICAgIGNoZWNrQW5kVXBkYXRlQnJlYWtwb2ludCgpXG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICBicmVha3BvaW50OiAoKSA9PiBjYWxjdWxhdGVCcmVha1BvaW50KHMubS5icmVha3BvaW50cylcbiAgfSlcblxuICBjb25zdCBzdHlsaW5nID0gdXNlQ2FsbGJhY2soKGFyZ3MpID0+IHtcbiAgICBjb25zdCBzdHlsZSA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MuYmFzZSlcblxuICAgIGZvciAoY29uc3QgYnJlYWtwb2ludERhdGEgb2Ygcy5tLmJyZWFrcG9pbnRzKSB7XG4gICAgICBjb25zdCBicmVha3BvaW50ID0gYnJlYWtwb2ludERhdGFbMF1cblxuICAgICAgZm9yIChjb25zdCBzaXplVHlwZSBvZiBzaXplVHlwZXMpIHtcbiAgICAgICAgY29uc3QgYnJlYWtwb2ludFdpdGhTaXplVHlwZSA9IGAke2JyZWFrcG9pbnR9JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNpemVUeXBlKX1gXG5cbiAgICAgICAgaWYgKGFyZ3NbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0gJiYgcy5zLmJyZWFrcG9pbnRbYnJlYWtwb2ludFdpdGhTaXplVHlwZV0pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHN0eWxlLCBhcmdzW2JyZWFrcG9pbnRXaXRoU2l6ZVR5cGVdKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlXG4gIH0sIFtdKVxuXG4gIHVzZUV2ZW50RW1pdHRlcihjb25maWcuZ2V0RXZlbnRzKCksIFwib25CcmVha3BvaW50c0NoYW5nZVwiLCBvbkJyZWFrcG9pbnRzQ2hhbmdlKVxuICB1c2VFdmVudExpc3RlbmVyKERpbWVuc2lvbnMsIFwiY2hhbmdlXCIsIG9uRGltZW5zaW9uc0NoYW5nZSlcblxuICByZXR1cm4ge1xuICAgIHN0eWxpbmcsXG4gICAgLi4ucy5zLmJyZWFrcG9pbnRcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VCcmVha3BvaW50XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFdBQVcsUUFBTyxPQUFPO0FBQ2pDLE9BQU9DLE1BQU0sTUFBTSxVQUFVO0FBQzdCLFNBQVFDLFVBQVUsUUFBTyxjQUFjO0FBQ3ZDLE9BQU8sS0FBS0MsVUFBVSxNQUFNLFlBQVk7QUFDeEMsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsT0FBT0MsZUFBZSxNQUFNLHFCQUFxQjtBQUNqRCxPQUFPQyxnQkFBZ0IsTUFBTSxzQkFBc0I7QUFDbkQsT0FBT0MsUUFBUSxNQUFNLGlDQUFpQztBQUV0RCxNQUFNQyxtQkFBbUIsR0FBSUMsV0FBVyxJQUFLO0VBQzNDLElBQUlDLFdBQVc7RUFFZixJQUFJTixNQUFNLEVBQUU7SUFDVk0sV0FBVyxHQUFHUixV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
|
package/build/use-can-can.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import CanCan from "./can-can";
|
|
2
|
-
import { useCallback, useMemo
|
|
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,
|
|
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
|
-
|
|
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,
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwiQXBpTWFrZXJVc2VFdmVudEVtaXR0ZXIiLCJldmVudHMiLCJldmVudCIsIm9uQ2FsbGVkIiwiYWRkTGlzdGVuZXIiLCJyZW1vdmVMaXN0ZW5lciJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtZXZlbnQtZW1pdHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3VzZUxheW91dEVmZmVjdCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcblxuY29uc3QgQXBpTWFrZXJVc2VFdmVudEVtaXR0ZXIgPSAoZXZlbnRzLCBldmVudCwgb25DYWxsZWQpID0+IHtcbiAgLy8gdXNlTWVtbyB0byBpbnN0YW50bHkgY29ubmVjdFxuICB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZXZlbnRzKSB7XG4gICAgICBldmVudHMuYWRkTGlzdGVuZXIoZXZlbnQsIG9uQ2FsbGVkKVxuICAgIH1cbiAgfSwgW2V2ZW50cywgZXZlbnQsIG9uQ2FsbGVkXSlcblxuICAvLyB1c2VMYXlvdXRFZmZlY3QgdG8gZGlzY29ubmVjdCB3aGVuIHVubW91bnRlZCBvciBjaGFuZ2VkXG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGV2ZW50cykge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZXZlbnRzLnJlbW92ZUxpc3RlbmVyKGV2ZW50LCBvbkNhbGxlZClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtldmVudHMsIGV2ZW50LCBvbkNhbGxlZF0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IEFwaU1ha2VyVXNlRXZlbnRFbWl0dGVyXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGVBQWUsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFFOUMsTUFBTUMsdUJBQXVCLEdBQUdBLENBQUNDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxRQUFRLEtBQUs7RUFDM0Q7RUFDQUosT0FBTyxDQUFDLE1BQU07SUFDWixJQUFJRSxNQUFNLEVBQUU7TUFDVkEsTUFBTSxDQUFDRyxXQUFXLENBQUNGLEtBQUssRUFBRUMsUUFBUSxDQUFDO0lBQ3JDO0VBQ0YsQ0FBQyxFQUFFLENBQUNGLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxRQUFRLENBQUMsQ0FBQzs7RUFFN0I7RUFDQUwsZUFBZSxDQUFDLE1BQU07SUFDcEIsSUFBSUcsTUFBTSxFQUFFO01BQ1YsT0FBTyxNQUFNO1FBQ1hBLE1BQU0sQ0FBQ0ksY0FBYyxDQUFDSCxLQUFLLEVBQUVDLFFBQVEsQ0FBQztNQUN4QyxDQUFDO0lBQ0g7RUFDRixDQUFDLEVBQUUsQ0FBQ0YsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlSCx1QkFBdUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/build/use-styles.js
CHANGED
|
@@ -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.
|
|
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,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJkaWdnIiwiaW5mbGVjdGlvbiIsInVzZUJyZWFrcG9pbnQiLCJ1c2VNZW1vIiwiaGFuZGxlU3RyaW5nU3R5bGUiLCJzdHlsZXMiLCJsaXN0T2ZTdHlsZXMiLCJicmVha3BvaW50IiwiYnJlYWtwb2ludHNSZXZlcnNlIiwiYXJnIiwiRXJyb3IiLCJPYmplY3QiLCJrZXlzIiwiam9pbiIsInB1c2giLCJicmVha3BvaW50RGF0YSIsImJyZWFrcG9pbnROYW1lIiwiYnJlYWtwb2ludFN0eWxlTmFtZVVwIiwiY2FtZWxpemUiLCJicmVha3BvaW50U3R5bGVOYW1lRG93biIsImJyZWFrcG9pbnRJc1VwIiwiYnJlYWtwb2ludElzRG93biIsInVzZVN0eWxlcyIsImFyZ3MiLCJkZXBlbmRlbmNpZXMiLCJhY3R1YWxEZXBlbmRlbmNpZXMiLCJnZXRCcmVha3BvaW50cyIsInJldmVyc2UiLCJBcnJheSIsImlzQXJyYXkiLCJrZXkiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2Utc3R5bGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25maWcgZnJvbSBcIi4vY29uZmlnXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCB1c2VCcmVha3BvaW50IGZyb20gXCIuL3VzZS1icmVha3BvaW50XCJcbmltcG9ydCB7dXNlTWVtb30gZnJvbSBcInJlYWN0XCJcblxuY29uc3QgaGFuZGxlU3RyaW5nU3R5bGUgPSAoc3R5bGVzLCBsaXN0T2ZTdHlsZXMsIGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRzUmV2ZXJzZSwgYXJnKSA9PiB7XG4gIGlmICghKGFyZyBpbiBzdHlsZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWNoIHN0eWxpbmcgJyR7YXJnfScgaW4gZ2l2ZW4gc3R5bGVzOiAke09iamVjdC5rZXlzKHN0eWxlcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYXJnXSlcblxuICBmb3IgKGNvbnN0IGJyZWFrcG9pbnREYXRhIG9mIGJyZWFrcG9pbnRzUmV2ZXJzZSkge1xuICAgIGNvbnN0IGJyZWFrcG9pbnROYW1lID0gYnJlYWtwb2ludERhdGFbMF1cbiAgICBjb25zdCBicmVha3BvaW50U3R5bGVOYW1lVXAgPSBgJHthcmd9JHtpbmZsZWN0aW9uLmNhbWVsaXplKGJyZWFrcG9pbnROYW1lKX1VcGBcbiAgICBjb25zdCBicmVha3BvaW50U3R5bGVOYW1lRG93biA9IGAke2FyZ30ke2luZmxlY3Rpb24uY2FtZWxpemUoYnJlYWtwb2ludE5hbWUpfURvd25gXG4gICAgY29uc3QgYnJlYWtwb2ludElzVXAgPSBkaWdnKGJyZWFrcG9pbnQsIGAke2JyZWFrcG9pbnROYW1lfVVwYClcbiAgICBjb25zdCBicmVha3BvaW50SXNEb3duID0gZGlnZyhicmVha3BvaW50LCBgJHticmVha3BvaW50TmFtZX1Eb3duYClcblxuICAgIGlmIChicmVha3BvaW50U3R5bGVOYW1lVXAgaW4gc3R5bGVzICYmIGJyZWFrcG9pbnRJc1VwKSB7XG4gICAgICBsaXN0T2ZTdHlsZXMucHVzaChzdHlsZXNbYnJlYWtwb2ludFN0eWxlTmFtZVVwXSlcbiAgICB9XG5cbiAgICBpZiAoYnJlYWtwb2ludFN0eWxlTmFtZURvd24gaW4gc3R5bGVzICYmIGJyZWFrcG9pbnRJc0Rvd24pIHtcbiAgICAgIGxpc3RPZlN0eWxlcy5wdXNoKHN0eWxlc1ticmVha3BvaW50U3R5bGVOYW1lRG93bl0pXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHVzZVN0eWxlcyA9IChzdHlsZXMsIGFyZ3MsIGRlcGVuZGVuY2llcyA9IFtdKSA9PiB7XG4gIGNvbnN0IGJyZWFrcG9pbnQgPSB1c2VCcmVha3BvaW50KClcbiAgY29uc3QgYnJlYWtwb2ludE5hbWUgPSBkaWdnKGJyZWFrcG9pbnQsIFwibmFtZVwiKVxuICBjb25zdCBhY3R1YWxEZXBlbmRlbmNpZXMgPSBbLi4uZGVwZW5kZW5jaWVzLCBicmVha3BvaW50TmFtZV1cblxuICBjb25zdCBsaXN0T2ZTdHlsZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBsaXN0T2ZTdHlsZXMgPSBbXVxuICAgIGNvbnN0IGJyZWFrcG9pbnRzUmV2ZXJzZSA9IFsuLi5jb25maWcuZ2V0QnJlYWtwb2ludHMoKV0ucmV2ZXJzZSgpXG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJncykpIHtcbiAgICAgIGFyZ3MgPSBbYXJnc11cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZyA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGhhbmRsZVN0cmluZ1N0eWxlKHN0eWxlcywgbGlzdE9mU3R5bGVzLCBicmVha3BvaW50LCBicmVha3BvaW50c1JldmVyc2UsIGFyZylcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZyA9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFyZykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXJnW2tleV1cblxuICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaGFuZGxlU3RyaW5nU3R5bGUoc3R5bGVzLCBsaXN0T2ZTdHlsZXMsIGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRzUmV2ZXJzZSwga2V5KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmhhbmRsZWQgdHlwZTogJHt0eXBlb2YgYXJnfWApXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxpc3RPZlN0eWxlc1xuICB9LCBhY3R1YWxEZXBlbmRlbmNpZXMpXG5cbiAgcmV0dXJuIGxpc3RPZlN0eWxlc1xufVxuXG5leHBvcnQgZGVmYXVsdCB1c2VTdHlsZXNcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxN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
|
package/package.json
CHANGED
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
|
-
|
|
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) {
|
|
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
|
package/src/use-breakpoint.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import {useCallback
|
|
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 = (
|
|
10
|
+
const calculateBreakPoint = (breakpoints) => {
|
|
9
11
|
let windowWidth
|
|
10
12
|
|
|
11
13
|
if (isExpo) {
|
|
12
|
-
windowWidth =
|
|
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
|
|
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
|
-
|
|
46
|
-
|
|
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(
|
|
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
|
|
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
|
-
|
|
76
|
-
|
|
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,
|
package/src/use-can-can.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import CanCan from "./can-can"
|
|
2
|
-
import {useCallback, useMemo
|
|
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"
|
package/src/use-event-emitter.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
38
|
+
const breakpointsReverse = [...config.getBreakpoints()].reverse()
|
|
39
39
|
|
|
40
40
|
if (!Array.isArray(args)) {
|
|
41
41
|
args = [args]
|