@selfcommunity/react-core 0.4.0-alpha.4 → 0.4.0-alpha.40

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.
Files changed (186) hide show
  1. package/lib/cjs/components/provider/SCUserProvider/index.d.ts.map +1 -1
  2. package/lib/cjs/components/provider/SCUserProvider/index.js +6 -0
  3. package/lib/cjs/components/provider/SCUserProvider/index.js.map +1 -1
  4. package/lib/cjs/components/router/index.js +1 -1
  5. package/lib/cjs/constants/Cache.d.ts +23 -14
  6. package/lib/cjs/constants/Cache.d.ts.map +1 -1
  7. package/lib/cjs/constants/Cache.js +28 -16
  8. package/lib/cjs/constants/Cache.js.map +1 -1
  9. package/lib/cjs/constants/ContextProviders.js +2 -2
  10. package/lib/cjs/constants/ContextProviders.js.map +1 -1
  11. package/lib/cjs/constants/Features.d.ts +1 -0
  12. package/lib/cjs/constants/Features.d.ts.map +1 -1
  13. package/lib/cjs/constants/Features.js +2 -1
  14. package/lib/cjs/constants/Features.js.map +1 -1
  15. package/lib/cjs/constants/Notification.d.ts +8 -0
  16. package/lib/cjs/constants/Notification.d.ts.map +1 -1
  17. package/lib/cjs/constants/Notification.js +9 -1
  18. package/lib/cjs/constants/Notification.js.map +1 -1
  19. package/lib/cjs/constants/Notifications.d.ts +1 -0
  20. package/lib/cjs/constants/Notifications.d.ts.map +1 -1
  21. package/lib/cjs/constants/Notifications.js +2 -1
  22. package/lib/cjs/constants/Notifications.js.map +1 -1
  23. package/lib/cjs/constants/Preferences.d.ts +8 -0
  24. package/lib/cjs/constants/Preferences.d.ts.map +1 -1
  25. package/lib/cjs/constants/Preferences.js +11 -2
  26. package/lib/cjs/constants/Preferences.js.map +1 -1
  27. package/lib/cjs/constants/Routes.d.ts +1 -0
  28. package/lib/cjs/constants/Routes.d.ts.map +1 -1
  29. package/lib/cjs/constants/Routes.js +3 -1
  30. package/lib/cjs/constants/Routes.js.map +1 -1
  31. package/lib/cjs/hooks/useSCAuth.js +2 -2
  32. package/lib/cjs/hooks/useSCAuth.js.map +1 -1
  33. package/lib/cjs/hooks/useSCFetchCategory.d.ts.map +1 -1
  34. package/lib/cjs/hooks/useSCFetchCategory.js +13 -11
  35. package/lib/cjs/hooks/useSCFetchCategory.js.map +1 -1
  36. package/lib/cjs/hooks/useSCFetchCommentObjects.d.ts +2 -2
  37. package/lib/cjs/hooks/useSCFetchCommentObjects.d.ts.map +1 -1
  38. package/lib/cjs/hooks/useSCFetchCommentObjects.js.map +1 -1
  39. package/lib/cjs/hooks/useSCFetchContributors.d.ts +2 -2
  40. package/lib/cjs/hooks/useSCFetchContributors.d.ts.map +1 -1
  41. package/lib/cjs/hooks/useSCFetchContributors.js.map +1 -1
  42. package/lib/cjs/hooks/useSCFetchFeed.js +1 -1
  43. package/lib/cjs/hooks/useSCFetchFeed.js.map +1 -1
  44. package/lib/cjs/hooks/useSCFetchFeedObject.d.ts +3 -4
  45. package/lib/cjs/hooks/useSCFetchFeedObject.d.ts.map +1 -1
  46. package/lib/cjs/hooks/useSCFetchFeedObject.js +15 -9
  47. package/lib/cjs/hooks/useSCFetchFeedObject.js.map +1 -1
  48. package/lib/cjs/hooks/useSCFetchIncubator.d.ts +4 -1
  49. package/lib/cjs/hooks/useSCFetchIncubator.d.ts.map +1 -1
  50. package/lib/cjs/hooks/useSCFetchIncubator.js +28 -7
  51. package/lib/cjs/hooks/useSCFetchIncubator.js.map +1 -1
  52. package/lib/cjs/hooks/useSCFetchPrivateMessageSnippets.d.ts +26 -0
  53. package/lib/cjs/hooks/useSCFetchPrivateMessageSnippets.d.ts.map +1 -0
  54. package/lib/cjs/hooks/useSCFetchPrivateMessageSnippets.js +111 -0
  55. package/lib/cjs/hooks/useSCFetchPrivateMessageSnippets.js.map +1 -0
  56. package/lib/cjs/hooks/useSCFetchReactions.d.ts +1 -0
  57. package/lib/cjs/hooks/useSCFetchReactions.d.ts.map +1 -1
  58. package/lib/cjs/hooks/useSCFetchReactions.js +6 -6
  59. package/lib/cjs/hooks/useSCFetchReactions.js.map +1 -1
  60. package/lib/cjs/hooks/useSCFetchUser.d.ts.map +1 -1
  61. package/lib/cjs/hooks/useSCFetchUser.js +9 -4
  62. package/lib/cjs/hooks/useSCFetchUser.js.map +1 -1
  63. package/lib/cjs/hooks/useSCFetchVote.d.ts +58 -0
  64. package/lib/cjs/hooks/useSCFetchVote.d.ts.map +1 -0
  65. package/lib/cjs/hooks/useSCFetchVote.js +208 -0
  66. package/lib/cjs/hooks/useSCFetchVote.js.map +1 -0
  67. package/lib/cjs/hooks/useSCFollowedCategoriesManager.d.ts.map +1 -1
  68. package/lib/cjs/hooks/useSCFollowedCategoriesManager.js +11 -7
  69. package/lib/cjs/hooks/useSCFollowedCategoriesManager.js.map +1 -1
  70. package/lib/cjs/hooks/useSCFollowedManager.d.ts.map +1 -1
  71. package/lib/cjs/hooks/useSCFollowedManager.js +9 -6
  72. package/lib/cjs/hooks/useSCFollowedManager.js.map +1 -1
  73. package/lib/cjs/hooks/useSCSettingsManager.d.ts +23 -0
  74. package/lib/cjs/hooks/useSCSettingsManager.d.ts.map +1 -0
  75. package/lib/cjs/hooks/useSCSettingsManager.js +101 -0
  76. package/lib/cjs/hooks/useSCSettingsManager.js.map +1 -0
  77. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.d.ts +10 -0
  78. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.d.ts.map +1 -1
  79. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.js +24 -22
  80. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.js.map +1 -1
  81. package/lib/cjs/hooks/useSCWebPushMessaging.d.ts +2 -0
  82. package/lib/cjs/hooks/useSCWebPushMessaging.d.ts.map +1 -1
  83. package/lib/cjs/hooks/useSCWebPushMessaging.js +124 -67
  84. package/lib/cjs/hooks/useSCWebPushMessaging.js.map +1 -1
  85. package/lib/cjs/index.d.ts +4 -2
  86. package/lib/cjs/index.d.ts.map +1 -1
  87. package/lib/cjs/index.js +6 -2
  88. package/lib/cjs/index.js.map +1 -1
  89. package/lib/cjs/types/context.d.ts +24 -1
  90. package/lib/cjs/types/context.d.ts.map +1 -1
  91. package/lib/cjs/types/index.d.ts +2 -2
  92. package/lib/cjs/types/index.d.ts.map +1 -1
  93. package/lib/esm/components/provider/SCUserProvider/index.d.ts.map +1 -1
  94. package/lib/esm/components/provider/SCUserProvider/index.js +6 -0
  95. package/lib/esm/components/provider/SCUserProvider/index.js.map +1 -1
  96. package/lib/esm/components/router/index.js +1 -1
  97. package/lib/esm/constants/Cache.d.ts +23 -14
  98. package/lib/esm/constants/Cache.d.ts.map +1 -1
  99. package/lib/esm/constants/Cache.js +23 -14
  100. package/lib/esm/constants/Cache.js.map +1 -1
  101. package/lib/esm/constants/ContextProviders.js +2 -2
  102. package/lib/esm/constants/ContextProviders.js.map +1 -1
  103. package/lib/esm/constants/Features.d.ts +1 -0
  104. package/lib/esm/constants/Features.d.ts.map +1 -1
  105. package/lib/esm/constants/Features.js +1 -0
  106. package/lib/esm/constants/Features.js.map +1 -1
  107. package/lib/esm/constants/Notification.d.ts +8 -0
  108. package/lib/esm/constants/Notification.d.ts.map +1 -1
  109. package/lib/esm/constants/Notification.js +8 -0
  110. package/lib/esm/constants/Notification.js.map +1 -1
  111. package/lib/esm/constants/Notifications.d.ts +1 -0
  112. package/lib/esm/constants/Notifications.d.ts.map +1 -1
  113. package/lib/esm/constants/Notifications.js +1 -0
  114. package/lib/esm/constants/Notifications.js.map +1 -1
  115. package/lib/esm/constants/Preferences.d.ts +8 -0
  116. package/lib/esm/constants/Preferences.d.ts.map +1 -1
  117. package/lib/esm/constants/Preferences.js +8 -0
  118. package/lib/esm/constants/Preferences.js.map +1 -1
  119. package/lib/esm/constants/Routes.d.ts +1 -0
  120. package/lib/esm/constants/Routes.d.ts.map +1 -1
  121. package/lib/esm/constants/Routes.js +2 -0
  122. package/lib/esm/constants/Routes.js.map +1 -1
  123. package/lib/esm/hooks/useSCAuth.js +2 -2
  124. package/lib/esm/hooks/useSCAuth.js.map +1 -1
  125. package/lib/esm/hooks/useSCFetchCategory.d.ts.map +1 -1
  126. package/lib/esm/hooks/useSCFetchCategory.js +15 -13
  127. package/lib/esm/hooks/useSCFetchCategory.js.map +1 -1
  128. package/lib/esm/hooks/useSCFetchCommentObjects.d.ts +2 -2
  129. package/lib/esm/hooks/useSCFetchCommentObjects.d.ts.map +1 -1
  130. package/lib/esm/hooks/useSCFetchCommentObjects.js.map +1 -1
  131. package/lib/esm/hooks/useSCFetchContributors.d.ts +2 -2
  132. package/lib/esm/hooks/useSCFetchContributors.d.ts.map +1 -1
  133. package/lib/esm/hooks/useSCFetchContributors.js.map +1 -1
  134. package/lib/esm/hooks/useSCFetchFeed.js +1 -1
  135. package/lib/esm/hooks/useSCFetchFeed.js.map +1 -1
  136. package/lib/esm/hooks/useSCFetchFeedObject.d.ts +3 -4
  137. package/lib/esm/hooks/useSCFetchFeedObject.d.ts.map +1 -1
  138. package/lib/esm/hooks/useSCFetchFeedObject.js +12 -6
  139. package/lib/esm/hooks/useSCFetchFeedObject.js.map +1 -1
  140. package/lib/esm/hooks/useSCFetchIncubator.d.ts +4 -1
  141. package/lib/esm/hooks/useSCFetchIncubator.d.ts.map +1 -1
  142. package/lib/esm/hooks/useSCFetchIncubator.js +29 -8
  143. package/lib/esm/hooks/useSCFetchIncubator.js.map +1 -1
  144. package/lib/esm/hooks/useSCFetchPrivateMessageSnippets.d.ts +26 -0
  145. package/lib/esm/hooks/useSCFetchPrivateMessageSnippets.d.ts.map +1 -0
  146. package/lib/esm/hooks/useSCFetchPrivateMessageSnippets.js +109 -0
  147. package/lib/esm/hooks/useSCFetchPrivateMessageSnippets.js.map +1 -0
  148. package/lib/esm/hooks/useSCFetchReactions.d.ts +1 -0
  149. package/lib/esm/hooks/useSCFetchReactions.d.ts.map +1 -1
  150. package/lib/esm/hooks/useSCFetchReactions.js +6 -6
  151. package/lib/esm/hooks/useSCFetchReactions.js.map +1 -1
  152. package/lib/esm/hooks/useSCFetchUser.d.ts.map +1 -1
  153. package/lib/esm/hooks/useSCFetchUser.js +10 -5
  154. package/lib/esm/hooks/useSCFetchUser.js.map +1 -1
  155. package/lib/esm/hooks/useSCFetchVote.d.ts +58 -0
  156. package/lib/esm/hooks/useSCFetchVote.d.ts.map +1 -0
  157. package/lib/esm/hooks/useSCFetchVote.js +202 -0
  158. package/lib/esm/hooks/useSCFetchVote.js.map +1 -0
  159. package/lib/esm/hooks/useSCFollowedCategoriesManager.d.ts.map +1 -1
  160. package/lib/esm/hooks/useSCFollowedCategoriesManager.js +11 -7
  161. package/lib/esm/hooks/useSCFollowedCategoriesManager.js.map +1 -1
  162. package/lib/esm/hooks/useSCFollowedManager.d.ts.map +1 -1
  163. package/lib/esm/hooks/useSCFollowedManager.js +9 -6
  164. package/lib/esm/hooks/useSCFollowedManager.js.map +1 -1
  165. package/lib/esm/hooks/useSCSettingsManager.d.ts +23 -0
  166. package/lib/esm/hooks/useSCSettingsManager.d.ts.map +1 -0
  167. package/lib/esm/hooks/useSCSettingsManager.js +98 -0
  168. package/lib/esm/hooks/useSCSettingsManager.js.map +1 -0
  169. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.d.ts +10 -0
  170. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.d.ts.map +1 -1
  171. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.js +24 -22
  172. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.js.map +1 -1
  173. package/lib/esm/hooks/useSCWebPushMessaging.d.ts +2 -0
  174. package/lib/esm/hooks/useSCWebPushMessaging.d.ts.map +1 -1
  175. package/lib/esm/hooks/useSCWebPushMessaging.js +121 -67
  176. package/lib/esm/hooks/useSCWebPushMessaging.js.map +1 -1
  177. package/lib/esm/index.d.ts +4 -2
  178. package/lib/esm/index.d.ts.map +1 -1
  179. package/lib/esm/index.js +3 -1
  180. package/lib/esm/index.js.map +1 -1
  181. package/lib/esm/types/context.d.ts +24 -1
  182. package/lib/esm/types/context.d.ts.map +1 -1
  183. package/lib/esm/types/index.d.ts +2 -2
  184. package/lib/esm/types/index.d.ts.map +1 -1
  185. package/lib/umd/react-core.js +1 -1
  186. package/package.json +11 -10
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFollowedManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAchD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;mBAkDjD,UAAU,KAAG,QAAQ,GAAG,CAAC;uBAiEzB,UAAU,KAAG,OAAO;mBAtGnB,IAAI;;EAyHjB"}
1
+ {"version":3,"file":"useSCFollowedManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAchD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;mBAmDjD,UAAU,KAAG,QAAQ,GAAG,CAAC;uBAiEzB,UAAU,KAAG,OAAO;mBAtGnB,IAAI;;EA2HjB"}
@@ -33,6 +33,7 @@ const STATUS_FOLLOWED = 'followed';
33
33
  function useSCFollowedManager(user) {
34
34
  const { cache, updateCache, emptyCache, data, setData, loading, setLoading, isLoading } = (0, useSCCachingManager_1.default)();
35
35
  const scPreferencesContext = (0, SCPreferencesProvider_1.useSCPreferences)();
36
+ const authUserId = user ? user.id : null;
36
37
  const followEnabled = Preferences_1.CONFIGURATIONS_FOLLOW_ENABLED in scPreferencesContext.preferences && scPreferencesContext.preferences[Preferences_1.CONFIGURATIONS_FOLLOW_ENABLED].value;
37
38
  /**
38
39
  * Memoized refresh all followed
@@ -129,14 +130,16 @@ function useSCFollowedManager(user) {
129
130
  if (cache.includes(user.id)) {
130
131
  return Boolean(data.includes(user.id));
131
132
  }
132
- if ('connection_status' in user) {
133
- return getConnectionStatus(user);
134
- }
135
- if (!loading.includes(user.id)) {
136
- checkIsUserFollowed(user);
133
+ if (authUserId) {
134
+ if ('connection_status' in user) {
135
+ return getConnectionStatus(user);
136
+ }
137
+ if (!loading.includes(user.id)) {
138
+ checkIsUserFollowed(user);
139
+ }
137
140
  }
138
141
  return false;
139
- }, [data, loading, cache]);
142
+ }, [data, loading, cache, authUserId]);
140
143
  if (!followEnabled || !user) {
141
144
  return { followed: data, loading, isLoading };
142
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSCFollowedManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSCFollowedManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCFollowedManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { SCUserSettingsType, SCUserType } from '@selfcommunity/types';
2
+ /**
3
+ :::info
4
+ This custom hook is used to manage user settings.
5
+ :::
6
+ :::tipHow to use it:
7
+
8
+ Follow these steps:
9
+ ```jsx
10
+ 1. const scUserContext: SCUserContextType = useSCUser();
11
+ 2. const scSettingsManager: SCSettingsManagerType = scUserContext.manager.settings;
12
+ 3. scSettingsManager.all()
13
+ ```
14
+ :::
15
+ */
16
+ export default function useSCSettingsManager(user?: SCUserType): {
17
+ update: (p: string, v: any) => Promise<any>;
18
+ get: (p: string) => any;
19
+ all: () => SCUserSettingsType;
20
+ isLoading: () => boolean;
21
+ refresh: () => void;
22
+ };
23
+ //# sourceMappingURL=useSCSettingsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSCSettingsManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCSettingsManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAE,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAIpE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU;gBA0EpD,MAAM,KAAK,GAAG,KAAG,QAAQ,GAAG,CAAC;aA1B7B,MAAM,KAAG,GAAG;eAcR,kBAAkB;qBA1BlB,OAAO;mBAzBP,IAAI;EA2FjB"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_1 = require("react");
4
+ const api_services_1 = require("@selfcommunity/api-services");
5
+ const utils_1 = require("@selfcommunity/utils");
6
+ const Errors_1 = require("../constants/Errors");
7
+ /**
8
+ :::info
9
+ This custom hook is used to manage user settings.
10
+ :::
11
+ :::tipHow to use it:
12
+
13
+ Follow these steps:
14
+ ```jsx
15
+ 1. const scUserContext: SCUserContextType = useSCUser();
16
+ 2. const scSettingsManager: SCSettingsManagerType = scUserContext.manager.settings;
17
+ 3. scSettingsManager.all()
18
+ ```
19
+ :::
20
+ */
21
+ function useSCSettingsManager(user) {
22
+ const [data, setData] = (0, react_1.useState)(null);
23
+ const [loading, setLoading] = (0, react_1.useState)(false);
24
+ /**
25
+ * Memoized refresh all settings data
26
+ * It makes a single request to the server and retrieves
27
+ * all the settings single solution
28
+ * It might be useful for multi-tab sync
29
+ */
30
+ const refresh = (0, react_1.useMemo)(() => () => {
31
+ if (user) {
32
+ setLoading(true);
33
+ api_services_1.http
34
+ .request({
35
+ url: api_services_1.Endpoints.UserSettings.url({ id: user.id }),
36
+ method: api_services_1.Endpoints.UserSettings.method,
37
+ })
38
+ .then((res) => {
39
+ setData(res.data);
40
+ setLoading(false);
41
+ })
42
+ .catch((e) => {
43
+ utils_1.Logger.error(Errors_1.SCOPE_SC_CORE, 'Unable to load user settings.');
44
+ utils_1.Logger.error(Errors_1.SCOPE_SC_CORE, e);
45
+ });
46
+ }
47
+ }, [user, data]);
48
+ /**
49
+ * Check if the component is loading
50
+ */
51
+ const isLoading = (0, react_1.useMemo)(() => () => {
52
+ return loading;
53
+ }, [loading]);
54
+ /**
55
+ * Get a single preference
56
+ * @param p
57
+ */
58
+ const get = (0, react_1.useMemo)(() => (p) => {
59
+ if (data && p in data) {
60
+ return data[p];
61
+ }
62
+ return null;
63
+ }, [data]);
64
+ /**
65
+ * Get all preferences
66
+ * @param p
67
+ */
68
+ const all = (0, react_1.useMemo)(() => () => {
69
+ return data;
70
+ }, [data]);
71
+ /**
72
+ * Update a single preference
73
+ * @param p
74
+ */
75
+ const update = (0, react_1.useMemo)(() => (p, v) => {
76
+ if (data && p in data) {
77
+ return api_services_1.http
78
+ .request({
79
+ url: api_services_1.Endpoints.UserSettingsPatch.url({ id: user.id }),
80
+ method: api_services_1.Endpoints.UserSettingsPatch.method,
81
+ data: { [p]: v },
82
+ })
83
+ .then((res) => {
84
+ const _data = Object.assign({}, data, { [p]: v });
85
+ setData(_data);
86
+ return Promise.resolve(_data);
87
+ })
88
+ .catch((error) => {
89
+ console.log(error);
90
+ });
91
+ }
92
+ return Promise.reject();
93
+ }, [data]);
94
+ // EFFECTS
95
+ (0, react_1.useEffect)(() => {
96
+ refresh();
97
+ }, [user]);
98
+ return { update, get, all, isLoading, refresh };
99
+ }
100
+ exports.default = useSCSettingsManager;
101
+ //# sourceMappingURL=useSCSettingsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSCSettingsManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCSettingsManager.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,16 @@ import { SCIncubatorType, SCUserType } from '@selfcommunity/types';
14
14
  :::
15
15
  */
16
16
  export default function useSCSubscribedIncubatorsManager(user?: SCUserType): {
17
+ incubators: any[];
18
+ loading: number[];
19
+ isLoading: (obj: {
20
+ id: number;
21
+ }) => boolean;
22
+ subscribe?: undefined;
23
+ isSubscribed?: undefined;
24
+ refresh?: undefined;
25
+ emptyCache?: undefined;
26
+ } | {
17
27
  incubators: any[];
18
28
  loading: number[];
19
29
  isLoading: (obj: {
@@ -1 +1 @@
1
- {"version":3,"file":"useSCSubscribedIncubatorsManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCSubscribedIncubatorsManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAKjE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gCAAgC,CAAC,IAAI,CAAC,EAAE,UAAU;;;;;;2BA8CxD,eAAe,KAAG,QAAQ,GAAG,CAAC;8BAiE9B,eAAe,KAAG,OAAO;mBArG7B,IAAI;;EAqHjB"}
1
+ {"version":3,"file":"useSCSubscribedIncubatorsManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCSubscribedIncubatorsManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAE,UAAU,EAAC,MAAM,sBAAsB,CAAC;AAKjE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gCAAgC,CAAC,IAAI,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;2BA4CxD,eAAe,KAAG,QAAQ,GAAG,CAAC;8BAiE9B,eAAe,KAAG,OAAO;mBAlG7B,IAAI;;EAuHjB"}
@@ -24,6 +24,7 @@ const useSCCachingManager_1 = __importDefault(require("./useSCCachingManager"));
24
24
  */
25
25
  function useSCSubscribedIncubatorsManager(user) {
26
26
  const { cache, updateCache, emptyCache, data, setData, loading, setLoading, isLoading } = (0, useSCCachingManager_1.default)();
27
+ const authUserId = user ? user.id : null;
27
28
  /**
28
29
  * Memoized refresh all subscribed
29
30
  * It makes a single request to the server and retrieves
@@ -43,10 +44,9 @@ function useSCSubscribedIncubatorsManager(user) {
43
44
  if (res.status >= 300) {
44
45
  return Promise.reject(res);
45
46
  }
46
- updateCache(Object.keys(res.data.results).map((id) => parseInt(id)));
47
- setData(Object.entries(res.data.results)
48
- .filter(([k, v]) => v === true)
49
- .map(([k, v]) => parseInt(k)));
47
+ const incubatorIds = res.data.results.map((i) => i.id);
48
+ updateCache(incubatorIds);
49
+ setData(incubatorIds);
50
50
  return Promise.resolve(res.data);
51
51
  })
52
52
  .catch((e) => {
@@ -100,18 +100,15 @@ function useSCSubscribedIncubatorsManager(user) {
100
100
  return Promise.resolve(res.data);
101
101
  });
102
102
  };
103
- // /**
104
- // * Bypass remote check if the incubator is subscribed
105
- // */
106
- // const getSubscriptionStatus = useMemo(
107
- // () => (incubator: SCIncubatorType) => {
108
- // const isSubscribed = incubator.subscribed === true;
109
- // updateCache([incubator.id]);
110
- // setData((prev) => (isSubscribed ? [...prev, ...[incubator.id]] : prev));
111
- // return isSubscribed;
112
- // },
113
- // [data, cache]
114
- // );
103
+ /**
104
+ * Bypass remote check if the incubator is subscribed
105
+ */
106
+ const getSubscriptionStatus = (0, react_1.useMemo)(() => (incubator) => {
107
+ const isSubscribed = incubator.subscribed || false;
108
+ updateCache([incubator.id]);
109
+ setData((prev) => (isSubscribed ? [...prev, ...[incubator.id]] : prev));
110
+ return isSubscribed;
111
+ }, [data, cache]);
115
112
  /**
116
113
  * Memoized isSubscribed
117
114
  * If incubator is already in cache -> check if the incubator is in subscribed,
@@ -121,14 +118,19 @@ function useSCSubscribedIncubatorsManager(user) {
121
118
  if (cache.includes(incubator.id)) {
122
119
  return Boolean(data.includes(incubator.id));
123
120
  }
124
- // if ('subscribed' in incubator) {
125
- // return getSubscriptionStatus(incubator);
126
- // }
127
- if (!loading.includes(incubator.id)) {
128
- checkIsIncubatorFollowed(incubator);
121
+ if (authUserId) {
122
+ if ('subscribed' in incubator) {
123
+ return getSubscriptionStatus(incubator);
124
+ }
125
+ if (!loading.includes(incubator['id'])) {
126
+ checkIsIncubatorFollowed(incubator);
127
+ }
129
128
  }
130
129
  return false;
131
- }, [data, loading, cache]);
130
+ }, [data, loading, cache, authUserId]);
131
+ if (!user) {
132
+ return { incubators: data, loading, isLoading };
133
+ }
132
134
  return { incubators: data, loading, isLoading, subscribe, isSubscribed, refresh, emptyCache };
133
135
  }
134
136
  exports.default = useSCSubscribedIncubatorsManager;
@@ -1 +1 @@
1
- {"version":3,"file":"useSCSubscribedIncubatorsManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCSubscribedIncubatorsManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSCSubscribedIncubatorsManager.js","sourceRoot":"","sources":["../../../src/hooks/useSCSubscribedIncubatorsManager.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { SnackbarKey } from 'notistack';
1
2
  /**
2
3
  :::info
3
4
  This custom hook is used to to init web push messaging.
@@ -5,5 +6,6 @@
5
6
  */
6
7
  export default function useSCWebPushMessaging(): {
7
8
  wpSubscription: any;
9
+ requestNotificationPermission: (snackbarId: SnackbarKey | null) => void;
8
10
  };
9
11
  //# sourceMappingURL=useSCWebPushMessaging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSCWebPushMessaging.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCWebPushMessaging.ts"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB;;EA4P5C"}
1
+ {"version":3,"file":"useSCWebPushMessaging.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSCWebPushMessaging.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAC,WAAW,EAAc,MAAM,WAAW,CAAC;AAMnD;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB;;gDAkNQ,WAAW,GAAG,IAAI;EAqGtE"}
@@ -22,17 +22,25 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = require("react");
29
+ const react_1 = __importStar(require("react"));
27
30
  const SCContextProvider_1 = require("../components/provider/SCContextProvider");
28
31
  const SCUserProvider_1 = require("../components/provider/SCUserProvider");
29
32
  const utils_1 = require("@selfcommunity/utils");
33
+ const Button_1 = __importDefault(require("@mui/material/Button"));
30
34
  const utils_2 = require("@selfcommunity/utils");
31
35
  const Errors_1 = require("../constants/Errors");
32
36
  const api_services_1 = require("@selfcommunity/api-services");
33
37
  const Device_1 = require("../constants/Device");
34
38
  const SCPreferencesProvider_1 = require("../components/provider/SCPreferencesProvider");
39
+ const notistack_1 = require("notistack");
35
40
  const SCPreferences = __importStar(require("../constants/Preferences"));
41
+ const Notifications_1 = require("../constants/Notifications");
42
+ const js_cookie_1 = __importDefault(require("js-cookie"));
43
+ const react_intl_1 = require("react-intl");
36
44
  /**
37
45
  :::info
38
46
  This custom hook is used to to init web push messaging.
@@ -43,6 +51,8 @@ function useSCWebPushMessaging() {
43
51
  const scContext = (0, SCContextProvider_1.useSCContext)();
44
52
  const scUserContext = (0, SCUserProvider_1.useSCUser)();
45
53
  const scPreferencesContext = (0, react_1.useContext)(SCPreferencesProvider_1.SCPreferencesContext);
54
+ const intl = (0, react_intl_1.useIntl)();
55
+ const { enqueueSnackbar, closeSnackbar } = (0, notistack_1.useSnackbar)();
46
56
  // STATE
47
57
  const [wpSubscription, setWpSubscription] = (0, react_1.useState)(null);
48
58
  // REFS
@@ -57,6 +67,33 @@ function useSCWebPushMessaging() {
57
67
  scPreferencesContext.preferences[SCPreferences.PROVIDERS_WEB_PUSH_ENABLED].value
58
68
  ? scPreferencesContext.preferences[SCPreferences.PROVIDERS_WEB_PUSH_ENABLED].value
59
69
  : false;
70
+ /**
71
+ * Show custom Snackbar dialog to request permission
72
+ * User action required for some browser (ex. Safari)
73
+ */
74
+ const showCustomRequestNotificationSnackbar = () => {
75
+ if (!js_cookie_1.default.get(Notifications_1.NOTIFICATIONS_WEB_PUSH_MESSAGING_DIALOG_COOKIE)) {
76
+ enqueueSnackbar(intl.formatMessage({ id: 'ui.webPushNotification.requestPermission', defaultMessage: 'ui.webPushNotification.requestPermission' }), {
77
+ action: (snackbarId) => (react_1.default.createElement(react_1.default.Fragment, null,
78
+ react_1.default.createElement(Button_1.default, { size: "small", onClick: () => requestNotificationPermission(snackbarId) }, intl.formatMessage({ id: 'ui.webPushNotification.allow', defaultMessage: 'ui.webPushNotification.allow' })),
79
+ react_1.default.createElement(Button_1.default, { size: "small", onClick: () => closeRequestNotificationSnackbar(snackbarId) }, intl.formatMessage({ id: 'ui.webPushNotification.block', defaultMessage: 'ui.webPushNotification.block' })))),
80
+ variant: 'default',
81
+ anchorOrigin: { horizontal: 'center', vertical: 'bottom' },
82
+ preventDuplicate: true,
83
+ });
84
+ }
85
+ };
86
+ /**
87
+ * Close the SnackBar dialog if the request notification permission
88
+ * came from the custom dialog
89
+ * @param snackbarid
90
+ */
91
+ const closeRequestNotificationSnackbar = (snackbarId) => {
92
+ if (snackbarId) {
93
+ closeSnackbar(snackbarId);
94
+ js_cookie_1.default.set(Notifications_1.NOTIFICATIONS_WEB_PUSH_MESSAGING_DIALOG_COOKIE, '1');
95
+ }
96
+ };
60
97
  /**
61
98
  * perform update the Subscription
62
99
  * @param data
@@ -111,87 +148,97 @@ function useSCWebPushMessaging() {
111
148
  */
112
149
  const unsubscribe = (callback = null) => {
113
150
  navigator.serviceWorker.ready.then(function (serviceWorkerRegistration) {
114
- // To unsubscribe from push messaging, you need get the
115
- // subcription object, which you can call unsubscribe() on.
116
- serviceWorkerRegistration.pushManager
117
- .getSubscription()
118
- .then((pushSubscription) => {
119
- // Check we have a subscription to unsubscribe
120
- if (!pushSubscription) {
121
- // No subscription object, so set the state
122
- // to allow the user to subscribe to push
123
- return;
124
- }
125
- // We have a subscription, so call unsubscribe on it
126
- pushSubscription
127
- .unsubscribe()
128
- .then(() => {
129
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Unsubscription successfully');
130
- // Request to server to remove
131
- // the users data from your data store so you
132
- // don't attempt to send them push messages anymore
133
- updateSubscriptionOnServer(pushSubscription, true).then(() => {
134
- callback && callback();
151
+ if (serviceWorkerRegistration) {
152
+ // To unsubscribe from push messaging, you need get the
153
+ // subscription object, which you can call unsubscribe() on.
154
+ serviceWorkerRegistration.pushManager
155
+ .getSubscription()
156
+ .then((pushSubscription) => {
157
+ // Check we have a subscription to unsubscribe
158
+ if (!pushSubscription) {
159
+ // No subscription object, so set the state
160
+ // to allow the user to subscribe to push
161
+ return;
162
+ }
163
+ // We have a subscription, so call unsubscribe on it
164
+ pushSubscription
165
+ .unsubscribe()
166
+ .then(() => {
167
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Unsubscription successfully');
168
+ // Request to server to remove
169
+ // the users data from your data store so you
170
+ // don't attempt to send them push messages anymore
171
+ updateSubscriptionOnServer(pushSubscription, true).then(() => {
172
+ callback && callback();
173
+ });
174
+ })
175
+ .catch(function (e) {
176
+ // We failed to unsubscribe, this can lead to
177
+ // an unusual state, so may be best to remove
178
+ // the subscription id from your data store and
179
+ // inform the user that you disabled push
180
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Unsubscription error.`);
181
+ console.log(e);
135
182
  });
136
183
  })
137
184
  .catch(function (e) {
138
- // We failed to unsubscribe, this can lead to
139
- // an unusual state, so may be best to remove
140
- // the subscription id from your data store and
141
- // inform the user that you disabled push
142
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Unsubscription error.`);
143
- console.log(e);
185
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Error thrown while unsubscribing from push messaging. ${e}`);
144
186
  });
145
- })
146
- .catch(function (e) {
147
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Error thrown while unsubscribing from push messaging. ${e}`);
148
- });
187
+ }
149
188
  });
150
189
  };
151
190
  /**
152
191
  * Get subscription
153
192
  */
154
193
  const subscribe = () => {
155
- navigator.serviceWorker.ready.then(function (serviceWorkerRegistration) {
156
- serviceWorkerRegistration.pushManager
157
- .subscribe({ userVisibleOnly: true, applicationServerKey: (0, utils_2.urlB64ToUint8Array)(applicationServerKey) })
158
- .then(function (subscription) {
159
- if (!subscription) {
160
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'We aren’t subscribed to push.');
161
- }
162
- else {
163
- updateSubscriptionOnServer(subscription, false);
164
- }
165
- })
166
- .catch(function (e) {
167
- if (Notification.permission === 'denied') {
168
- // The user denied the notification permission which
169
- // means we failed to subscribe and the user will need
170
- // to manually change the notification permission to
171
- // subscribe to push messages
172
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Permission for Notifications was denied');
173
- }
174
- else {
175
- // A problem occurred with the subscription
176
- subAttempts.current += 1;
177
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Unable to subscribe(${subAttempts.current}) to push. ${e}`);
178
- if (subAttempts.current < 3) {
179
- unsubscribe(() => subscribe());
194
+ navigator.serviceWorker.getRegistration().then(function (serviceWorkerRegistration) {
195
+ if (serviceWorkerRegistration) {
196
+ // service worker is registered
197
+ serviceWorkerRegistration.pushManager
198
+ .subscribe({ userVisibleOnly: true, applicationServerKey: (0, utils_2.urlB64ToUint8Array)(applicationServerKey) })
199
+ .then(function (subscription) {
200
+ if (!subscription) {
201
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'We aren’t subscribed to push.');
180
202
  }
181
203
  else {
182
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Unable to subscribe to push. ${e}`);
204
+ updateSubscriptionOnServer(subscription, false);
183
205
  }
184
- }
185
- });
206
+ })
207
+ .catch(function (e) {
208
+ console.log(e);
209
+ if (Notification.permission === 'denied') {
210
+ // The user denied the notification permission which
211
+ // means we failed to subscribe and the user will need
212
+ // to manually change the notification permission to
213
+ // subscribe to push messages
214
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Permission for Notifications was denied');
215
+ }
216
+ else {
217
+ // A problem occurred with the subscription
218
+ subAttempts.current += 1;
219
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Unable to subscribe(${subAttempts.current}) to push. ${e}`);
220
+ if (subAttempts.current < 3) {
221
+ unsubscribe(() => subscribe());
222
+ }
223
+ else {
224
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `Unable to subscribe to push. ${e}`);
225
+ }
226
+ }
227
+ });
228
+ }
229
+ else {
230
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, `To receive web push notifications the service worker must be registered.`);
231
+ }
186
232
  });
187
233
  };
188
234
  /**
189
235
  * Request web push notification permission
190
236
  * @type {(function(): void)|*}
191
237
  */
192
- const requestNotificationPermission = () => {
238
+ const requestNotificationPermission = (snackbarId) => {
193
239
  if (Notification.permission !== 'granted') {
194
- Notification.requestPermission().then(function (permission) {
240
+ Notification.requestPermission()
241
+ .then(function (permission) {
195
242
  if (permission === 'granted') {
196
243
  navigator.serviceWorker.ready.then((serviceWorkerRegistration) => {
197
244
  // Do we already have a push message subscription?
@@ -216,8 +263,13 @@ function useSCWebPushMessaging() {
216
263
  else {
217
264
  utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Permission for Notifications was denied');
218
265
  }
266
+ })
267
+ .catch((err) => {
268
+ console.log(err);
269
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Request web push permission by a user generated gesture');
219
270
  });
220
271
  }
272
+ closeRequestNotificationSnackbar(snackbarId);
221
273
  };
222
274
  /**
223
275
  * Initialize state
@@ -226,7 +278,7 @@ function useSCWebPushMessaging() {
226
278
  /**
227
279
  * Check if Notifications supported in the service worker
228
280
  */
229
- if (!('showNotification' in ServiceWorkerRegistration.prototype)) {
281
+ if (!(typeof ServiceWorkerRegistration !== 'undefined' && 'showNotification' in ServiceWorkerRegistration.prototype)) {
230
282
  utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, "Notifications aren't supported.");
231
283
  return;
232
284
  }
@@ -235,7 +287,7 @@ function useSCWebPushMessaging() {
235
287
  * so your development environment must serve content over HTTPS to match a production environment.
236
288
  * Check if push messaging is supported.
237
289
  */
238
- if (!('PushManager' in window && 'serviceWorker' in navigator)) {
290
+ if (!('PushManager' in window && 'serviceWorker' in navigator && 'Notification' in window)) {
239
291
  utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, "Service Worker or Push messaging aren't supported.");
240
292
  return;
241
293
  }
@@ -249,8 +301,13 @@ function useSCWebPushMessaging() {
249
301
  }
250
302
  else {
251
303
  if (Notification.permission === 'default') {
252
- utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Request permission.');
253
- requestNotificationPermission();
304
+ utils_1.Logger.info(Errors_1.SCOPE_SC_CORE, 'Request permission');
305
+ if (navigator.userAgent.includes('Safari') && !navigator.userAgent.includes('Chrome')) {
306
+ showCustomRequestNotificationSnackbar();
307
+ }
308
+ else {
309
+ requestNotificationPermission(null);
310
+ }
254
311
  }
255
312
  else if (Notification.permission === 'granted') {
256
313
  subscribe();
@@ -278,7 +335,7 @@ function useSCWebPushMessaging() {
278
335
  unsubscribe();
279
336
  }
280
337
  }, [scUserContext.user, scContext.settings.notifications.webPushMessaging, wpSubscription]);
281
- return { wpSubscription };
338
+ return { wpSubscription, requestNotificationPermission };
282
339
  }
283
340
  exports.default = useSCWebPushMessaging;
284
341
  //# sourceMappingURL=useSCWebPushMessaging.js.map