@selfcommunity/react-core 0.6.0-alpha.0 → 0.6.0-alpha.2
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/lib/cjs/hooks/useSCFetchEvent.d.ts +1 -1
- package/lib/cjs/hooks/useSCFetchEvent.js +26 -20
- package/lib/cjs/hooks/useSCWebSocket.js +1 -3
- package/lib/cjs/utils/validator.d.ts +1 -1
- package/lib/cjs/utils/validator.js +2 -6
- package/lib/esm/hooks/useSCFetchEvent.d.ts +1 -1
- package/lib/esm/hooks/useSCFetchEvent.js +26 -20
- package/lib/esm/hooks/useSCWebSocket.js +1 -3
- package/lib/esm/utils/validator.d.ts +1 -1
- package/lib/esm/utils/validator.js +2 -6
- package/lib/umd/react-core.js +1 -1
- package/package.json +2 -2
|
@@ -19,6 +19,7 @@ const SCUserProvider_1 = require("../components/provider/SCUserProvider");
|
|
|
19
19
|
* @param object.cacheStrategy
|
|
20
20
|
*/
|
|
21
21
|
function useSCFetchEvent({ id = null, event = null, autoSubscribe = true, cacheStrategy = utils_1.CacheStrategies.CACHE_FIRST, }) {
|
|
22
|
+
console.log('Params: ', event, id);
|
|
22
23
|
const __eventId = event ? event.id : id;
|
|
23
24
|
// CONTEXT
|
|
24
25
|
const scUserContext = (0, SCUserProvider_1.useSCUser)();
|
|
@@ -28,11 +29,27 @@ function useSCFetchEvent({ id = null, event = null, autoSubscribe = true, cacheS
|
|
|
28
29
|
const __event = authUserId ? event : (0, utils_1.objectWithoutProperties)(event, ['subscription_status']);
|
|
29
30
|
const [scEvent, setScEvent] = (0, react_1.useState)(cacheStrategy !== utils_1.CacheStrategies.NETWORK_ONLY ? utils_1.LRUCache.get(__eventCacheKey, __event) : null);
|
|
30
31
|
const [error, setError] = (0, react_1.useState)(null);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Memoized setSCEvent (auto-subscription if need it)
|
|
34
|
+
*/
|
|
35
|
+
const setSCEvent = (0, react_1.useMemo)(() => (e) => {
|
|
36
|
+
if (autoSubscribe &&
|
|
37
|
+
authUserId !== null &&
|
|
38
|
+
((e.privacy === types_1.SCEventPrivacyType.PUBLIC && !e.subscription_status) || e.subscription_status === types_1.SCEventSubscriptionStatusType.INVITED)) {
|
|
39
|
+
// Auto subscribe to the event
|
|
40
|
+
api_services_1.EventService.subscribeToEvent(e.id).then(() => {
|
|
41
|
+
const updatedEvent = Object.assign(Object.assign({}, e), { subscription_status: types_1.SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
42
|
+
console.log('Update event', updatedEvent.id);
|
|
43
|
+
setScEvent(updatedEvent);
|
|
44
|
+
utils_1.LRUCache.set(__eventCacheKey, updatedEvent);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const updatedEvent = authUserId ? e : (0, utils_1.objectWithoutProperties)(e, ['subscription_status']);
|
|
49
|
+
setScEvent(updatedEvent);
|
|
50
|
+
utils_1.LRUCache.set(__eventCacheKey, updatedEvent);
|
|
51
|
+
}
|
|
52
|
+
}, [autoSubscribe, authUserId, setScEvent]);
|
|
36
53
|
/**
|
|
37
54
|
* Memoized fetchTag
|
|
38
55
|
*/
|
|
@@ -53,21 +70,10 @@ function useSCFetchEvent({ id = null, event = null, autoSubscribe = true, cacheS
|
|
|
53
70
|
* If id attempt to get the event by id
|
|
54
71
|
*/
|
|
55
72
|
(0, react_1.useEffect)(() => {
|
|
56
|
-
if (__eventId
|
|
73
|
+
if ((__eventId === null || __eventId === void 0 ? void 0 : __eventId.toString()) !== undefined && !event) {
|
|
57
74
|
fetchEvent()
|
|
58
|
-
.then((
|
|
59
|
-
|
|
60
|
-
authUserId !== null &&
|
|
61
|
-
((event.privacy === types_1.SCEventPrivacyType.PUBLIC && !event.subscription_status) || event.subscription_status === types_1.SCEventSubscriptionStatusType.INVITED)) {
|
|
62
|
-
// Auto subscribe to the event
|
|
63
|
-
api_services_1.EventService.subscribeToEvent(event.id).then(() => {
|
|
64
|
-
const updatedEvent = Object.assign(Object.assign({}, event), { subscription_status: types_1.SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
65
|
-
setSCEvent(updatedEvent);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
setSCEvent(event);
|
|
70
|
-
}
|
|
75
|
+
.then((e) => {
|
|
76
|
+
setSCEvent(e);
|
|
71
77
|
})
|
|
72
78
|
.catch((err) => {
|
|
73
79
|
utils_1.LRUCache.delete(__eventCacheKey);
|
|
@@ -76,7 +82,7 @@ function useSCFetchEvent({ id = null, event = null, autoSubscribe = true, cacheS
|
|
|
76
82
|
utils_1.Logger.error(Errors_1.SCOPE_SC_CORE, err.message);
|
|
77
83
|
});
|
|
78
84
|
}
|
|
79
|
-
}, [__eventId,
|
|
85
|
+
}, [__eventId, event]);
|
|
80
86
|
(0, use_deep_compare_effect_1.useDeepCompareEffectNoCheck)(() => {
|
|
81
87
|
if (event) {
|
|
82
88
|
setSCEvent(event);
|
|
@@ -19,9 +19,7 @@ function useSCWebSocket() {
|
|
|
19
19
|
const scUserContext = (0, SCUserProvider_1.useSCUser)();
|
|
20
20
|
const [wsInstance, setWsInstance] = (0, react_1.useState)(null);
|
|
21
21
|
// Websocket uri, prefixPath, protocols and sub-protocols
|
|
22
|
-
const _wsProtocol = scContext.settings.notifications.webSocket.secure
|
|
23
|
-
? WebSocket_1.WS_PROTOCOL_SECURE
|
|
24
|
-
: WebSocket_1.WS_PROTOCOL_INSECURE;
|
|
22
|
+
const _wsProtocol = scContext.settings.notifications.webSocket.secure ? WebSocket_1.WS_PROTOCOL_SECURE : WebSocket_1.WS_PROTOCOL_INSECURE;
|
|
25
23
|
const _wsPrefixPath = scContext.settings.notifications.webSocket.prefixPath || WebSocket_1.WS_PREFIX_PATH;
|
|
26
24
|
const _wsUri = `${_wsProtocol}://${new URL(scContext.settings.portal).hostname}/${_wsPrefixPath}/${WebSocket_1.WS_FACILITY_NOTIFY}?subscribe-user`;
|
|
27
25
|
const _wsSubProtocol = scContext.settings.session.authToken && scContext.settings.session.authToken.accessToken
|
|
@@ -107,7 +107,7 @@ export declare const validateWebSocketDisableToastMessage: (value: any) => {
|
|
|
107
107
|
export declare const validateWebSocketSecure: (value: any) => {
|
|
108
108
|
errors: any[];
|
|
109
109
|
warnings: any[];
|
|
110
|
-
value:
|
|
110
|
+
value: boolean;
|
|
111
111
|
};
|
|
112
112
|
/**
|
|
113
113
|
* Validate prefixPath (webSocket)
|
|
@@ -206,12 +206,8 @@ exports.validateWebSocketDisableToastMessage = validateWebSocketDisableToastMess
|
|
|
206
206
|
const validateWebSocketSecure = (value) => {
|
|
207
207
|
const errors = [];
|
|
208
208
|
const warnings = [];
|
|
209
|
-
if (value) {
|
|
210
|
-
|
|
211
|
-
errors.push(errors_1.ValidationError.ERROR_INVALID_NOTIFICATIONS_WEBSOCKET_SECURE);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
209
|
+
if (!(typeof value === 'boolean')) {
|
|
210
|
+
errors.push(errors_1.ValidationError.ERROR_INVALID_NOTIFICATIONS_WEBSOCKET_SECURE);
|
|
215
211
|
return {
|
|
216
212
|
errors,
|
|
217
213
|
warnings,
|
|
@@ -17,6 +17,7 @@ import { useSCUser } from '../components/provider/SCUserProvider';
|
|
|
17
17
|
* @param object.cacheStrategy
|
|
18
18
|
*/
|
|
19
19
|
export default function useSCFetchEvent({ id = null, event = null, autoSubscribe = true, cacheStrategy = CacheStrategies.CACHE_FIRST, }) {
|
|
20
|
+
console.log('Params: ', event, id);
|
|
20
21
|
const __eventId = event ? event.id : id;
|
|
21
22
|
// CONTEXT
|
|
22
23
|
const scUserContext = useSCUser();
|
|
@@ -26,11 +27,27 @@ export default function useSCFetchEvent({ id = null, event = null, autoSubscribe
|
|
|
26
27
|
const __event = authUserId ? event : objectWithoutProperties(event, ['subscription_status']);
|
|
27
28
|
const [scEvent, setScEvent] = useState(cacheStrategy !== CacheStrategies.NETWORK_ONLY ? LRUCache.get(__eventCacheKey, __event) : null);
|
|
28
29
|
const [error, setError] = useState(null);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Memoized setSCEvent (auto-subscription if need it)
|
|
32
|
+
*/
|
|
33
|
+
const setSCEvent = useMemo(() => (e) => {
|
|
34
|
+
if (autoSubscribe &&
|
|
35
|
+
authUserId !== null &&
|
|
36
|
+
((e.privacy === SCEventPrivacyType.PUBLIC && !e.subscription_status) || e.subscription_status === SCEventSubscriptionStatusType.INVITED)) {
|
|
37
|
+
// Auto subscribe to the event
|
|
38
|
+
EventService.subscribeToEvent(e.id).then(() => {
|
|
39
|
+
const updatedEvent = Object.assign(Object.assign({}, e), { subscription_status: SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
40
|
+
console.log('Update event', updatedEvent.id);
|
|
41
|
+
setScEvent(updatedEvent);
|
|
42
|
+
LRUCache.set(__eventCacheKey, updatedEvent);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const updatedEvent = authUserId ? e : objectWithoutProperties(e, ['subscription_status']);
|
|
47
|
+
setScEvent(updatedEvent);
|
|
48
|
+
LRUCache.set(__eventCacheKey, updatedEvent);
|
|
49
|
+
}
|
|
50
|
+
}, [autoSubscribe, authUserId, setScEvent]);
|
|
34
51
|
/**
|
|
35
52
|
* Memoized fetchTag
|
|
36
53
|
*/
|
|
@@ -51,21 +68,10 @@ export default function useSCFetchEvent({ id = null, event = null, autoSubscribe
|
|
|
51
68
|
* If id attempt to get the event by id
|
|
52
69
|
*/
|
|
53
70
|
useEffect(() => {
|
|
54
|
-
if (__eventId
|
|
71
|
+
if ((__eventId === null || __eventId === void 0 ? void 0 : __eventId.toString()) !== undefined && !event) {
|
|
55
72
|
fetchEvent()
|
|
56
|
-
.then((
|
|
57
|
-
|
|
58
|
-
authUserId !== null &&
|
|
59
|
-
((event.privacy === SCEventPrivacyType.PUBLIC && !event.subscription_status) || event.subscription_status === SCEventSubscriptionStatusType.INVITED)) {
|
|
60
|
-
// Auto subscribe to the event
|
|
61
|
-
EventService.subscribeToEvent(event.id).then(() => {
|
|
62
|
-
const updatedEvent = Object.assign(Object.assign({}, event), { subscription_status: SCEventSubscriptionStatusType.SUBSCRIBED });
|
|
63
|
-
setSCEvent(updatedEvent);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
setSCEvent(event);
|
|
68
|
-
}
|
|
73
|
+
.then((e) => {
|
|
74
|
+
setSCEvent(e);
|
|
69
75
|
})
|
|
70
76
|
.catch((err) => {
|
|
71
77
|
LRUCache.delete(__eventCacheKey);
|
|
@@ -74,7 +80,7 @@ export default function useSCFetchEvent({ id = null, event = null, autoSubscribe
|
|
|
74
80
|
Logger.error(SCOPE_SC_CORE, err.message);
|
|
75
81
|
});
|
|
76
82
|
}
|
|
77
|
-
}, [__eventId,
|
|
83
|
+
}, [__eventId, event]);
|
|
78
84
|
useDeepCompareEffectNoCheck(() => {
|
|
79
85
|
if (event) {
|
|
80
86
|
setSCEvent(event);
|
|
@@ -16,9 +16,7 @@ export default function useSCWebSocket() {
|
|
|
16
16
|
const scUserContext = useSCUser();
|
|
17
17
|
const [wsInstance, setWsInstance] = useState(null);
|
|
18
18
|
// Websocket uri, prefixPath, protocols and sub-protocols
|
|
19
|
-
const _wsProtocol = scContext.settings.notifications.webSocket.secure
|
|
20
|
-
? WS_PROTOCOL_SECURE
|
|
21
|
-
: WS_PROTOCOL_INSECURE;
|
|
19
|
+
const _wsProtocol = scContext.settings.notifications.webSocket.secure ? WS_PROTOCOL_SECURE : WS_PROTOCOL_INSECURE;
|
|
22
20
|
const _wsPrefixPath = scContext.settings.notifications.webSocket.prefixPath || WS_PREFIX_PATH;
|
|
23
21
|
const _wsUri = `${_wsProtocol}://${new URL(scContext.settings.portal).hostname}/${_wsPrefixPath}/${WS_FACILITY_NOTIFY}?subscribe-user`;
|
|
24
22
|
const _wsSubProtocol = scContext.settings.session.authToken && scContext.settings.session.authToken.accessToken
|
|
@@ -107,7 +107,7 @@ export declare const validateWebSocketDisableToastMessage: (value: any) => {
|
|
|
107
107
|
export declare const validateWebSocketSecure: (value: any) => {
|
|
108
108
|
errors: any[];
|
|
109
109
|
warnings: any[];
|
|
110
|
-
value:
|
|
110
|
+
value: boolean;
|
|
111
111
|
};
|
|
112
112
|
/**
|
|
113
113
|
* Validate prefixPath (webSocket)
|
|
@@ -193,12 +193,8 @@ export const validateWebSocketDisableToastMessage = (value) => {
|
|
|
193
193
|
export const validateWebSocketSecure = (value) => {
|
|
194
194
|
const errors = [];
|
|
195
195
|
const warnings = [];
|
|
196
|
-
if (value) {
|
|
197
|
-
|
|
198
|
-
errors.push(ValidationError.ERROR_INVALID_NOTIFICATIONS_WEBSOCKET_SECURE);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
196
|
+
if (!(typeof value === 'boolean')) {
|
|
197
|
+
errors.push(ValidationError.ERROR_INVALID_NOTIFICATIONS_WEBSOCKET_SECURE);
|
|
202
198
|
return {
|
|
203
199
|
errors,
|
|
204
200
|
warnings,
|