@kaspernj/api-maker 1.0.2030 → 1.0.2031
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/use-current-user.js +50 -19
- package/package.json +1 -1
- package/src/use-current-user.js +48 -17
|
@@ -1,26 +1,44 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useCallback, useContext, useMemo } from "react";
|
|
2
2
|
import Devise from "./devise";
|
|
3
3
|
import { digg } from "diggerize";
|
|
4
|
+
import EventEmitter from "events";
|
|
4
5
|
import * as inflection from "inflection";
|
|
5
6
|
import Logger from "./logger";
|
|
6
7
|
import Services from "./services";
|
|
7
8
|
import useEventEmitter from "./use-event-emitter";
|
|
8
9
|
import useShape from "set-state-compare/src/use-shape";
|
|
10
|
+
const events = new EventEmitter();
|
|
9
11
|
const logger = new Logger({
|
|
10
12
|
name: "ApiMaker / useCurrentUser"
|
|
11
13
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
logger.setDebug(false);
|
|
15
|
+
const useCurrentUser = (props = {}) => {
|
|
16
|
+
const {
|
|
17
|
+
scope = "user",
|
|
18
|
+
withData,
|
|
19
|
+
...restProps
|
|
20
|
+
} = props;
|
|
21
|
+
if (Object.keys(restProps).length > 0) {
|
|
22
|
+
throw new Error(`Unknown props given to useCurrentUser: ${Object.keys(restProps).join(", ")}`);
|
|
23
|
+
}
|
|
17
24
|
const scopeInstance = Devise.getScope(scope);
|
|
18
25
|
const currentUserContext = useContext(scopeInstance.getContext());
|
|
19
|
-
|
|
26
|
+
if (withData) {
|
|
27
|
+
return currentUserContext;
|
|
28
|
+
} else {
|
|
29
|
+
return currentUserContext.model;
|
|
30
|
+
}
|
|
20
31
|
};
|
|
21
|
-
const WithCurrentUser = props => {
|
|
22
|
-
const
|
|
23
|
-
|
|
32
|
+
const WithCurrentUser = (props = {}) => {
|
|
33
|
+
const {
|
|
34
|
+
children,
|
|
35
|
+
scope = "user",
|
|
36
|
+
...restProps
|
|
37
|
+
} = props;
|
|
38
|
+
if (Object.keys(restProps).length > 0) {
|
|
39
|
+
throw new Error(`Unknown props given to WithCurrentUser: ${Object.keys(restProps).join(", ")}`);
|
|
40
|
+
}
|
|
41
|
+
const s = useShape(props);
|
|
24
42
|
const scopeName = `current${inflection.camelize(scope)}`;
|
|
25
43
|
const scopeInstance = Devise.getScope(scope);
|
|
26
44
|
const ScopeContext = scopeInstance.getContext();
|
|
@@ -40,9 +58,14 @@ const WithCurrentUser = props => {
|
|
|
40
58
|
const current = digg(result, "current")[0];
|
|
41
59
|
if (current) Devise.updateSession(current);
|
|
42
60
|
s.set({
|
|
61
|
+
result: {
|
|
62
|
+
loaded: true,
|
|
63
|
+
model: current
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
events.emit("currentUserLoaded", {
|
|
43
67
|
current
|
|
44
68
|
});
|
|
45
|
-
if (s.props.onCurrentUserLoaded) setTimeout(() => s.props.onCurrentUserLoaded(current), 0);
|
|
46
69
|
}, []);
|
|
47
70
|
const defaultCurrentUser = useCallback(() => {
|
|
48
71
|
const {
|
|
@@ -57,17 +80,25 @@ const WithCurrentUser = props => {
|
|
|
57
80
|
current = Devise[scopeName]();
|
|
58
81
|
logger.debug(() => `Setting ${scope} from global current scope: ${current?.id()}`);
|
|
59
82
|
}
|
|
60
|
-
if (current
|
|
61
|
-
|
|
83
|
+
if (current) {
|
|
84
|
+
events.emit("currentUserLoaded", {
|
|
85
|
+
current
|
|
86
|
+
});
|
|
62
87
|
}
|
|
63
88
|
return current;
|
|
64
89
|
}, []);
|
|
65
90
|
s.useStates({
|
|
66
|
-
|
|
91
|
+
result: () => ({
|
|
92
|
+
loaded: false,
|
|
93
|
+
model: defaultCurrentUser()
|
|
94
|
+
})
|
|
67
95
|
});
|
|
68
96
|
const updateCurrentUser = useCallback(() => {
|
|
69
97
|
s.set({
|
|
70
|
-
|
|
98
|
+
result: {
|
|
99
|
+
loaded: true,
|
|
100
|
+
model: Devise[s.m.scopeName]()
|
|
101
|
+
}
|
|
71
102
|
});
|
|
72
103
|
}, []);
|
|
73
104
|
useMemo(() => {
|
|
@@ -85,9 +116,9 @@ const WithCurrentUser = props => {
|
|
|
85
116
|
useEventEmitter(Devise.events(), "onDeviseSignIn", onDeviseSignIn);
|
|
86
117
|
useEventEmitter(Devise.events(), "onDeviseSignOut", onDeviseSignOut);
|
|
87
118
|
return /*#__PURE__*/React.createElement(ScopeContext.Provider, {
|
|
88
|
-
value: s.s.
|
|
89
|
-
},
|
|
119
|
+
value: s.s.result
|
|
120
|
+
}, children);
|
|
90
121
|
};
|
|
91
|
-
export { WithCurrentUser };
|
|
122
|
+
export { events, WithCurrentUser };
|
|
92
123
|
export default useCurrentUser;
|
|
93
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDYWxsYmFjayIsInVzZUNvbnRleHQiLCJ1c2VNZW1vIiwiRGV2aXNlIiwiZGlnZyIsImluZmxlY3Rpb24iLCJMb2dnZXIiLCJTZXJ2aWNlcyIsInVzZUV2ZW50RW1pdHRlciIsInVzZVNoYXBlIiwibG9nZ2VyIiwibmFtZSIsInVzZUN1cnJlbnRVc2VyIiwicHJvcHMiLCJzY29wZSIsInNjb3BlSW5zdGFuY2UiLCJnZXRTY29wZSIsImN1cnJlbnRVc2VyQ29udGV4dCIsImdldENvbnRleHQiLCJXaXRoQ3VycmVudFVzZXIiLCJzIiwic2NvcGVOYW1lIiwiY2FtZWxpemUiLCJTY29wZUNvbnRleHQiLCJtZXRhIiwibG9hZEN1cnJlbnRVc2VyRnJvbVJlcXVlc3QiLCJtIiwiZ2V0QXJnc01ldGhvZE5hbWUiLCJhcmdzIiwiZGVidWciLCJyZXN1bHQiLCJjdXJyZW50Iiwic2VuZFJlcXVlc3QiLCJxdWVyeSIsInVwZGF0ZVNlc3Npb24iLCJzZXQiLCJvbkN1cnJlbnRVc2VyTG9hZGVkIiwic2V0VGltZW91dCIsImRlZmF1bHRDdXJyZW50VXNlciIsImhhc0N1cnJlbnRTY29wZSIsImdldEN1cnJlbnRTY29wZSIsImlkIiwiaGFzR2xvYmFsQ3VycmVudFNjb3BlIiwidXNlU3RhdGVzIiwidXBkYXRlQ3VycmVudFVzZXIiLCJvbkRldmlzZVNpZ25JbiIsIm9uRGV2aXNlU2lnbk91dCIsImV2ZW50cyIsImNyZWF0ZUVsZW1lbnQiLCJQcm92aWRlciIsInZhbHVlIiwiY2hpbGRyZW4iXSwic291cmNlcyI6WyIuLi9zcmMvdXNlLWN1cnJlbnQtdXNlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0LCB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlTWVtb30gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXZpc2UgZnJvbSBcIi4vZGV2aXNlXCJcbmltcG9ydCB7ZGlnZ30gZnJvbSBcImRpZ2dlcml6ZVwiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCIuL3VzZS1ldmVudC1lbWl0dGVyXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3VzZS1zaGFwZVwiXG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoe25hbWU6IFwiQXBpTWFrZXIgLyB1c2VDdXJyZW50VXNlclwifSlcblxuLy8gbG9nZ2VyLnNldERlYnVnKHRydWUpXG5cbmNvbnN0IHVzZUN1cnJlbnRVc2VyID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHNjb3BlID0gcHJvcHM/LnNjb3BlIHx8IFwidXNlclwiXG4gIGNvbnN0IHNjb3BlSW5zdGFuY2UgPSBEZXZpc2UuZ2V0U2NvcGUoc2NvcGUpXG4gIGNvbnN0IGN1cnJlbnRVc2VyQ29udGV4dCA9IHVzZUNvbnRleHQoc2NvcGVJbnN0YW5jZS5nZXRDb250ZXh0KCkpXG5cbiAgcmV0dXJuIGN1cnJlbnRVc2VyQ29udGV4dFxufVxuXG5jb25zdCBXaXRoQ3VycmVudFVzZXIgPSAocHJvcHMpID0+IHtcbiAgY29uc3QgcyA9IHVzZVNoYXBlKHByb3BzIHx8IHt9KVxuICBjb25zdCBzY29wZSA9IHByb3BzPy5zY29wZSB8fCBcInVzZXJcIlxuICBjb25zdCBzY29wZU5hbWUgPSBgY3VycmVudCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSl9YFxuICBjb25zdCBzY29wZUluc3RhbmNlID0gRGV2aXNlLmdldFNjb3BlKHNjb3BlKVxuICBjb25zdCBTY29wZUNvbnRleHQgPSBzY29wZUluc3RhbmNlLmdldENvbnRleHQoKVxuXG4gIHMubWV0YS5zY29wZSA9IHNjb3BlXG4gIHMubWV0YS5zY29wZU5hbWUgPSBzY29wZU5hbWVcblxuICBjb25zdCBsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7c2NvcGV9ID0gcy5tXG4gICAgY29uc3QgZ2V0QXJnc01ldGhvZE5hbWUgPSBgZ2V0JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlKX1BcmdzYFxuICAgIGNvbnN0IGFyZ3MgPSBEZXZpc2VbZ2V0QXJnc01ldGhvZE5hbWVdKClcblxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgTG9hZGluZyAke3Njb3BlfSB3aXRoIHJlcXVlc3RgKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpDdXJyZW50XCIsIHtxdWVyeTogYXJncy5xdWVyeSwgc2NvcGV9KVxuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWdnKHJlc3VsdCwgXCJjdXJyZW50XCIpWzBdXG5cbiAgICBpZiAoY3VycmVudCkgRGV2aXNlLnVwZGF0ZVNlc3Npb24oY3VycmVudClcblxuICAgIHMuc2V0KHtjdXJyZW50fSlcblxuICAgIGlmIChzLnByb3BzLm9uQ3VycmVudFVzZXJMb2FkZWQpIHNldFRpbWVvdXQoKCkgPT4gcy5wcm9wcy5vbkN1cnJlbnRVc2VyTG9hZGVkKGN1cnJlbnQpLCAwKVxuICB9LCBbXSlcblxuICBjb25zdCBkZWZhdWx0Q3VycmVudFVzZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qge3Njb3BlLCBzY29wZU5hbWV9ID0gcy5tXG4gICAgbGV0IGN1cnJlbnRcblxuICAgIGlmIChEZXZpc2UuY3VycmVudCgpLmhhc0N1cnJlbnRTY29wZShzLm0uc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpXG5cbiAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgU2V0dGluZyAke3Njb3BlfSBmcm9tIGN1cnJlbnQgc2NvcGU6ICR7Y3VycmVudD8uaWQoKX1gKVxuICAgIH0gZWxzZSBpZiAoRGV2aXNlLmN1cnJlbnQoKS5oYXNHbG9iYWxDdXJyZW50U2NvcGUoc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlW3Njb3BlTmFtZV0oKVxuXG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYFNldHRpbmcgJHtzY29wZX0gZnJvbSBnbG9iYWwgY3VycmVudCBzY29wZTogJHtjdXJyZW50Py5pZCgpfWApXG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnQgJiYgcy5wcm9wcy5vbkN1cnJlbnRVc2VyTG9hZGVkKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHMucHJvcHMub25DdXJyZW50VXNlckxvYWRlZChjdXJyZW50KSwgMClcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFxuICB9LCBbXSlcblxuICBzLnVzZVN0YXRlcyh7Y3VycmVudDogKCkgPT4gZGVmYXVsdEN1cnJlbnRVc2VyKCl9KVxuXG4gIGNvbnN0IHVwZGF0ZUN1cnJlbnRVc2VyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHMuc2V0KHtjdXJyZW50OiBEZXZpc2Vbcy5tLnNjb3BlTmFtZV0oKX0pXG4gIH0sIFtdKVxuXG4gIHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghRGV2aXNlLmN1cnJlbnQoKS5oYXNHbG9iYWxDdXJyZW50U2NvcGUocy5tLnNjb3BlKSAmJiAhRGV2aXNlLmN1cnJlbnQoKS5oYXNDdXJyZW50U2NvcGUocy5tLnNjb3BlKSkge1xuICAgICAgbG9nZ2VyLmRlYnVnKCgpID0+IGBEZXZpc2UgaGFzbid0IGdvdCBjdXJyZW50IHNjb3BlICR7cy5tLnNjb3BlfSBzbyBsb2FkaW5nIGZyb20gcmVxdWVzdGApXG4gICAgICBsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCgpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBvbkRldmlzZVNpZ25JbiA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1cGRhdGVDdXJyZW50VXNlcigpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IG9uRGV2aXNlU2lnbk91dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB1cGRhdGVDdXJyZW50VXNlcigpXG4gIH0sIFtdKVxuXG4gIHVzZUV2ZW50RW1pdHRlcihEZXZpc2UuZXZlbnRzKCksIFwib25EZXZpc2VTaWduSW5cIiwgb25EZXZpc2VTaWduSW4pXG4gIHVzZUV2ZW50RW1pdHRlcihEZXZpc2UuZXZlbnRzKCksIFwib25EZXZpc2VTaWduT3V0XCIsIG9uRGV2aXNlU2lnbk91dClcblxuICByZXR1cm4gKFxuICAgIDxTY29wZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Mucy5jdXJyZW50fT5cbiAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICA8L1Njb3BlQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5leHBvcnQge1dpdGhDdXJyZW50VXNlcn1cbmV4cG9ydCBkZWZhdWx0IHVzZUN1cnJlbnRVc2VyXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBR0MsYUFBYSxFQUFFQyxXQUFXLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDNUUsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxNQUFNLE1BQU0sVUFBVTtBQUM3QixPQUFPQyxRQUFRLE1BQU0sWUFBWTtBQUNqQyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLFFBQVEsTUFBTSxpQ0FBaUM7QUFFdEQsTUFBTUMsTUFBTSxHQUFHLElBQUlKLE1BQU0sQ0FBQztFQUFDSyxJQUFJLEVBQUU7QUFBMkIsQ0FBQyxDQUFDOztBQUU5RDs7QUFFQSxNQUFNQyxjQUFjLEdBQUlDLEtBQUssSUFBSztFQUNoQyxNQUFNQyxLQUFLLEdBQUdELEtBQUssRUFBRUMsS0FBSyxJQUFJLE1BQU07RUFDcEMsTUFBTUMsYUFBYSxHQUFHWixNQUFNLENBQUNhLFFB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
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZU1lbW8iLCJEZXZpc2UiLCJkaWdnIiwiRXZlbnRFbWl0dGVyIiwiaW5mbGVjdGlvbiIsIkxvZ2dlciIsIlNlcnZpY2VzIiwidXNlRXZlbnRFbWl0dGVyIiwidXNlU2hhcGUiLCJldmVudHMiLCJsb2dnZXIiLCJuYW1lIiwic2V0RGVidWciLCJ1c2VDdXJyZW50VXNlciIsInByb3BzIiwic2NvcGUiLCJ3aXRoRGF0YSIsInJlc3RQcm9wcyIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJFcnJvciIsImpvaW4iLCJzY29wZUluc3RhbmNlIiwiZ2V0U2NvcGUiLCJjdXJyZW50VXNlckNvbnRleHQiLCJnZXRDb250ZXh0IiwibW9kZWwiLCJXaXRoQ3VycmVudFVzZXIiLCJjaGlsZHJlbiIsInMiLCJzY29wZU5hbWUiLCJjYW1lbGl6ZSIsIlNjb3BlQ29udGV4dCIsIm1ldGEiLCJsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCIsIm0iLCJnZXRBcmdzTWV0aG9kTmFtZSIsImFyZ3MiLCJkZWJ1ZyIsInJlc3VsdCIsImN1cnJlbnQiLCJzZW5kUmVxdWVzdCIsInF1ZXJ5IiwidXBkYXRlU2Vzc2lvbiIsInNldCIsImxvYWRlZCIsImVtaXQiLCJkZWZhdWx0Q3VycmVudFVzZXIiLCJoYXNDdXJyZW50U2NvcGUiLCJnZXRDdXJyZW50U2NvcGUiLCJpZCIsImhhc0dsb2JhbEN1cnJlbnRTY29wZSIsInVzZVN0YXRlcyIsInVwZGF0ZUN1cnJlbnRVc2VyIiwib25EZXZpc2VTaWduSW4iLCJvbkRldmlzZVNpZ25PdXQiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91c2UtY3VycmVudC11c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VNZW1vfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IERldmlzZSBmcm9tIFwiLi9kZXZpc2VcIlxuaW1wb3J0IHtkaWdnfSBmcm9tIFwiZGlnZ2VyaXplXCJcbmltcG9ydCBFdmVudEVtaXR0ZXIgZnJvbSBcImV2ZW50c1wiXG5pbXBvcnQgKiBhcyBpbmZsZWN0aW9uIGZyb20gXCJpbmZsZWN0aW9uXCJcbmltcG9ydCBMb2dnZXIgZnJvbSBcIi4vbG9nZ2VyXCJcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlc1wiXG5pbXBvcnQgdXNlRXZlbnRFbWl0dGVyIGZyb20gXCIuL3VzZS1ldmVudC1lbWl0dGVyXCJcbmltcG9ydCB1c2VTaGFwZSBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL3VzZS1zaGFwZVwiXG5cbmNvbnN0IGV2ZW50cyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcih7bmFtZTogXCJBcGlNYWtlciAvIHVzZUN1cnJlbnRVc2VyXCJ9KVxuXG5sb2dnZXIuc2V0RGVidWcoZmFsc2UpXG5cbmNvbnN0IHVzZUN1cnJlbnRVc2VyID0gKHByb3BzID0ge30pID0+IHtcbiAgY29uc3Qge3Njb3BlID0gXCJ1c2VyXCIsIHdpdGhEYXRhLCAuLi5yZXN0UHJvcHN9ID0gcHJvcHNcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIHVzZUN1cnJlbnRVc2VyOiAke09iamVjdC5rZXlzKHJlc3RQcm9wcykuam9pbihcIiwgXCIpfWApXG4gIH1cblxuICBjb25zdCBzY29wZUluc3RhbmNlID0gRGV2aXNlLmdldFNjb3BlKHNjb3BlKVxuICBjb25zdCBjdXJyZW50VXNlckNvbnRleHQgPSB1c2VDb250ZXh0KHNjb3BlSW5zdGFuY2UuZ2V0Q29udGV4dCgpKVxuXG4gIGlmICh3aXRoRGF0YSkge1xuICAgIHJldHVybiBjdXJyZW50VXNlckNvbnRleHRcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3VycmVudFVzZXJDb250ZXh0Lm1vZGVsXG4gIH1cbn1cblxuY29uc3QgV2l0aEN1cnJlbnRVc2VyID0gKHByb3BzID0ge30pID0+IHtcbiAgY29uc3Qge2NoaWxkcmVuLCBzY29wZSA9IFwidXNlclwiLCAuLi5yZXN0UHJvcHN9ID0gcHJvcHNcblxuICBpZiAoT2JqZWN0LmtleXMocmVzdFByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHByb3BzIGdpdmVuIHRvIFdpdGhDdXJyZW50VXNlcjogJHtPYmplY3Qua2V5cyhyZXN0UHJvcHMpLmpvaW4oXCIsIFwiKX1gKVxuICB9XG5cbiAgY29uc3QgcyA9IHVzZVNoYXBlKHByb3BzKVxuICBjb25zdCBzY29wZU5hbWUgPSBgY3VycmVudCR7aW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSl9YFxuICBjb25zdCBzY29wZUluc3RhbmNlID0gRGV2aXNlLmdldFNjb3BlKHNjb3BlKVxuICBjb25zdCBTY29wZUNvbnRleHQgPSBzY29wZUluc3RhbmNlLmdldENvbnRleHQoKVxuXG4gIHMubWV0YS5zY29wZSA9IHNjb3BlXG4gIHMubWV0YS5zY29wZU5hbWUgPSBzY29wZU5hbWVcblxuICBjb25zdCBsb2FkQ3VycmVudFVzZXJGcm9tUmVxdWVzdCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7c2NvcGV9ID0gcy5tXG4gICAgY29uc3QgZ2V0QXJnc01ldGhvZE5hbWUgPSBgZ2V0JHtpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlKX1BcmdzYFxuICAgIGNvbnN0IGFyZ3MgPSBEZXZpc2VbZ2V0QXJnc01ldGhvZE5hbWVdKClcblxuICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgTG9hZGluZyAke3Njb3BlfSB3aXRoIHJlcXVlc3RgKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpDdXJyZW50XCIsIHtxdWVyeTogYXJncy5xdWVyeSwgc2NvcGV9KVxuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWdnKHJlc3VsdCwgXCJjdXJyZW50XCIpWzBdXG5cbiAgICBpZiAoY3VycmVudCkgRGV2aXNlLnVwZGF0ZVNlc3Npb24oY3VycmVudClcblxuICAgIHMuc2V0KHtcbiAgICAgIHJlc3VsdDoge1xuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIG1vZGVsOiBjdXJyZW50XG4gICAgICB9XG4gICAgfSlcblxuICAgIGV2ZW50cy5lbWl0KFwiY3VycmVudFVzZXJMb2FkZWRcIiwge2N1cnJlbnR9KVxuICB9LCBbXSlcblxuICBjb25zdCBkZWZhdWx0Q3VycmVudFVzZXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3Qge3Njb3BlLCBzY29wZU5hbWV9ID0gcy5tXG4gICAgbGV0IGN1cnJlbnRcblxuICAgIGlmIChEZXZpc2UuY3VycmVudCgpLmhhc0N1cnJlbnRTY29wZShzLm0uc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpXG5cbiAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgU2V0dGluZyAke3Njb3BlfSBmcm9tIGN1cnJlbnQgc2NvcGU6ICR7Y3VycmVudD8uaWQoKX1gKVxuICAgIH0gZWxzZSBpZiAoRGV2aXNlLmN1cnJlbnQoKS5oYXNHbG9iYWxDdXJyZW50U2NvcGUoc2NvcGUpKSB7XG4gICAgICBjdXJyZW50ID0gRGV2aXNlW3Njb3BlTmFtZV0oKVxuXG4gICAgICBsb2dnZXIuZGVidWcoKCkgPT4gYFNldHRpbmcgJHtzY29wZX0gZnJvbSBnbG9iYWwgY3VycmVudCBzY29wZTogJHtjdXJyZW50Py5pZCgpfWApXG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgIGV2ZW50cy5lbWl0KFwiY3VycmVudFVzZXJMb2FkZWRcIiwge2N1cnJlbnR9KVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50XG4gIH0sIFtdKVxuXG4gIHMudXNlU3RhdGVzKHtcbiAgICByZXN1bHQ6ICgpID0+ICh7XG4gICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgbW9kZWw6IGRlZmF1bHRDdXJyZW50VXNlcigpXG4gICAgfSlcbiAgfSlcblxuICBjb25zdCB1cGRhdGVDdXJyZW50VXNlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzLnNldCh7XG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBtb2RlbDogRGV2aXNlW3MubS5zY29wZU5hbWVdKClcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIURldmlzZS5jdXJyZW50KCkuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHMubS5zY29wZSkgJiYgIURldmlzZS5jdXJyZW50KCkuaGFzQ3VycmVudFNjb3BlKHMubS5zY29wZSkpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZygoKSA9PiBgRGV2aXNlIGhhc24ndCBnb3QgY3VycmVudCBzY29wZSAke3MubS5zY29wZX0gc28gbG9hZGluZyBmcm9tIHJlcXVlc3RgKVxuICAgICAgbG9hZEN1cnJlbnRVc2VyRnJvbVJlcXVlc3QoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3Qgb25EZXZpc2VTaWduSW4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdXBkYXRlQ3VycmVudFVzZXIoKVxuICB9LCBbXSlcblxuICBjb25zdCBvbkRldmlzZVNpZ25PdXQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgdXBkYXRlQ3VycmVudFVzZXIoKVxuICB9LCBbXSlcblxuICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbkluXCIsIG9uRGV2aXNlU2lnbkluKVxuICB1c2VFdmVudEVtaXR0ZXIoRGV2aXNlLmV2ZW50cygpLCBcIm9uRGV2aXNlU2lnbk91dFwiLCBvbkRldmlzZVNpZ25PdXQpXG5cbiAgcmV0dXJuIChcbiAgICA8U2NvcGVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtzLnMucmVzdWx0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1Njb3BlQ29udGV4dC5Qcm92aWRlcj5cbiAgKVxufVxuXG5leHBvcnQge2V2ZW50cywgV2l0aEN1cnJlbnRVc2VyfVxuZXhwb3J0IGRlZmF1bHQgdXNlQ3VycmVudFVzZXJcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDN0QsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsU0FBUUMsSUFBSSxRQUFPLFdBQVc7QUFDOUIsT0FBT0MsWUFBWSxNQUFNLFFBQVE7QUFDakMsT0FBTyxLQUFLQyxVQUFVLE1BQU0sWUFBWTtBQUN4QyxPQUFPQyxNQUFNLE1BQU0sVUFBVTtBQUM3QixPQUFPQyxRQUFRLE1BQU0sWUFBWTtBQUNqQyxPQUFPQyxlQUFlLE1BQU0scUJBQXFCO0FBQ2pELE9BQU9DLFFBQVEsTUFBTSxpQ0FBaUM7QUFFdEQsTUFBTUMsTUFBTSxHQUFHLElBQUlOLFlBQVksQ0FBQyxDQUFDO0FBQ2pDLE1BQU1PLE1BQU0sR0FBRyxJQUFJTCxNQUFNLENBQUM7RUFBQ00sSUFBSSxFQUFFO0FBQTJCLENBQUMsQ0FBQztBQUU5REQsTUFBTSxDQUFDRSxRQUFRLENBQUMsS0FBSyxDQUFDO0FBRXRCLE1BQU1DLGNBQWMsR0FBR0EsQ0FBQ0MsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLO0VBQ3JDLE1BQU07SUFBQ0MsS0FBSyxHQUFHLE1BQU07SUFBRUMsUUFBUTtJQUFFLEdBQUdDO0VBQVMsQ0FBQyxHQUFHSCxLQUFLO0VBRXRELElBQUlJLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDRixTQUFTLENBQUMsQ0FBQ0csTUFBTSxHQUFHLENBQUMsRUFBRTtJQUNyQyxNQUFNLElBQUlDLEtBQUssQ0FBQywwQ0FBMENILE1BQU0sQ0FBQ0MsSUFBSSxDQUFDRixTQUFTLENBQUMsQ0FBQ0ssSUFBSSxDQUFD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
|
package/package.json
CHANGED
package/src/use-current-user.js
CHANGED
|
@@ -1,27 +1,43 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, {useCallback, useContext, useMemo} from "react"
|
|
2
2
|
import Devise from "./devise"
|
|
3
3
|
import {digg} from "diggerize"
|
|
4
|
+
import EventEmitter from "events"
|
|
4
5
|
import * as inflection from "inflection"
|
|
5
6
|
import Logger from "./logger"
|
|
6
7
|
import Services from "./services"
|
|
7
8
|
import useEventEmitter from "./use-event-emitter"
|
|
8
9
|
import useShape from "set-state-compare/src/use-shape"
|
|
9
10
|
|
|
11
|
+
const events = new EventEmitter()
|
|
10
12
|
const logger = new Logger({name: "ApiMaker / useCurrentUser"})
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
logger.setDebug(false)
|
|
15
|
+
|
|
16
|
+
const useCurrentUser = (props = {}) => {
|
|
17
|
+
const {scope = "user", withData, ...restProps} = props
|
|
18
|
+
|
|
19
|
+
if (Object.keys(restProps).length > 0) {
|
|
20
|
+
throw new Error(`Unknown props given to useCurrentUser: ${Object.keys(restProps).join(", ")}`)
|
|
21
|
+
}
|
|
13
22
|
|
|
14
|
-
const useCurrentUser = (props) => {
|
|
15
|
-
const scope = props?.scope || "user"
|
|
16
23
|
const scopeInstance = Devise.getScope(scope)
|
|
17
24
|
const currentUserContext = useContext(scopeInstance.getContext())
|
|
18
25
|
|
|
19
|
-
|
|
26
|
+
if (withData) {
|
|
27
|
+
return currentUserContext
|
|
28
|
+
} else {
|
|
29
|
+
return currentUserContext.model
|
|
30
|
+
}
|
|
20
31
|
}
|
|
21
32
|
|
|
22
|
-
const WithCurrentUser = (props) => {
|
|
23
|
-
const
|
|
24
|
-
|
|
33
|
+
const WithCurrentUser = (props = {}) => {
|
|
34
|
+
const {children, scope = "user", ...restProps} = props
|
|
35
|
+
|
|
36
|
+
if (Object.keys(restProps).length > 0) {
|
|
37
|
+
throw new Error(`Unknown props given to WithCurrentUser: ${Object.keys(restProps).join(", ")}`)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const s = useShape(props)
|
|
25
41
|
const scopeName = `current${inflection.camelize(scope)}`
|
|
26
42
|
const scopeInstance = Devise.getScope(scope)
|
|
27
43
|
const ScopeContext = scopeInstance.getContext()
|
|
@@ -41,9 +57,14 @@ const WithCurrentUser = (props) => {
|
|
|
41
57
|
|
|
42
58
|
if (current) Devise.updateSession(current)
|
|
43
59
|
|
|
44
|
-
s.set({
|
|
60
|
+
s.set({
|
|
61
|
+
result: {
|
|
62
|
+
loaded: true,
|
|
63
|
+
model: current
|
|
64
|
+
}
|
|
65
|
+
})
|
|
45
66
|
|
|
46
|
-
|
|
67
|
+
events.emit("currentUserLoaded", {current})
|
|
47
68
|
}, [])
|
|
48
69
|
|
|
49
70
|
const defaultCurrentUser = useCallback(() => {
|
|
@@ -60,17 +81,27 @@ const WithCurrentUser = (props) => {
|
|
|
60
81
|
logger.debug(() => `Setting ${scope} from global current scope: ${current?.id()}`)
|
|
61
82
|
}
|
|
62
83
|
|
|
63
|
-
if (current
|
|
64
|
-
|
|
84
|
+
if (current) {
|
|
85
|
+
events.emit("currentUserLoaded", {current})
|
|
65
86
|
}
|
|
66
87
|
|
|
67
88
|
return current
|
|
68
89
|
}, [])
|
|
69
90
|
|
|
70
|
-
s.useStates({
|
|
91
|
+
s.useStates({
|
|
92
|
+
result: () => ({
|
|
93
|
+
loaded: false,
|
|
94
|
+
model: defaultCurrentUser()
|
|
95
|
+
})
|
|
96
|
+
})
|
|
71
97
|
|
|
72
98
|
const updateCurrentUser = useCallback(() => {
|
|
73
|
-
s.set({
|
|
99
|
+
s.set({
|
|
100
|
+
result: {
|
|
101
|
+
loaded: true,
|
|
102
|
+
model: Devise[s.m.scopeName]()
|
|
103
|
+
}
|
|
104
|
+
})
|
|
74
105
|
}, [])
|
|
75
106
|
|
|
76
107
|
useMemo(() => {
|
|
@@ -92,11 +123,11 @@ const WithCurrentUser = (props) => {
|
|
|
92
123
|
useEventEmitter(Devise.events(), "onDeviseSignOut", onDeviseSignOut)
|
|
93
124
|
|
|
94
125
|
return (
|
|
95
|
-
<ScopeContext.Provider value={s.s.
|
|
96
|
-
{
|
|
126
|
+
<ScopeContext.Provider value={s.s.result}>
|
|
127
|
+
{children}
|
|
97
128
|
</ScopeContext.Provider>
|
|
98
129
|
)
|
|
99
130
|
}
|
|
100
131
|
|
|
101
|
-
export {WithCurrentUser}
|
|
132
|
+
export {events, WithCurrentUser}
|
|
102
133
|
export default useCurrentUser
|