@selfcommunity/react-core 0.1.2-alpha.0

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 (285) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +13 -0
  3. package/lib/cjs/components/provider/SCAlertMessagesProvider/index.js +67 -0
  4. package/lib/cjs/components/provider/SCContextProvider/index.js +117 -0
  5. package/lib/cjs/components/provider/SCLocaleProvider/index.js +158 -0
  6. package/lib/cjs/components/provider/SCNotificationProvider/index.js +73 -0
  7. package/lib/cjs/components/provider/SCPreferencesProvider/index.js +93 -0
  8. package/lib/cjs/components/provider/SCRoutingProvider/index.js +146 -0
  9. package/lib/cjs/components/provider/SCThemeProvider/index.js +123 -0
  10. package/lib/cjs/components/provider/SCUserProvider/index.js +310 -0
  11. package/lib/cjs/components/router/index.js +91 -0
  12. package/lib/cjs/constants/Actions.js +6 -0
  13. package/lib/cjs/constants/ContextProviders.js +29 -0
  14. package/lib/cjs/constants/Device.js +11 -0
  15. package/lib/cjs/constants/Errors.js +10 -0
  16. package/lib/cjs/constants/Features.js +84 -0
  17. package/lib/cjs/constants/Locale.js +19 -0
  18. package/lib/cjs/constants/Notification.js +67 -0
  19. package/lib/cjs/constants/Notifications.js +27 -0
  20. package/lib/cjs/constants/Preferences.js +344 -0
  21. package/lib/cjs/constants/Routes.js +68 -0
  22. package/lib/cjs/constants/Session.js +22 -0
  23. package/lib/cjs/constants/Theme.js +6 -0
  24. package/lib/cjs/constants/WebSocket.js +10 -0
  25. package/lib/cjs/hooks/useSCAuth.js +340 -0
  26. package/lib/cjs/hooks/useSCCachingManager.js +58 -0
  27. package/lib/cjs/hooks/useSCConnectionsManager.js +285 -0
  28. package/lib/cjs/hooks/useSCFetchCategories.js +71 -0
  29. package/lib/cjs/hooks/useSCFetchCategory.js +68 -0
  30. package/lib/cjs/hooks/useSCFetchCommentObject.js +68 -0
  31. package/lib/cjs/hooks/useSCFetchCommentObjects.js +296 -0
  32. package/lib/cjs/hooks/useSCFetchCustomAdv.js +84 -0
  33. package/lib/cjs/hooks/useSCFetchFeedObject.js +79 -0
  34. package/lib/cjs/hooks/useSCFetchIncubator.js +68 -0
  35. package/lib/cjs/hooks/useSCFetchTag.js +68 -0
  36. package/lib/cjs/hooks/useSCFetchUser.js +68 -0
  37. package/lib/cjs/hooks/useSCFollowedCategoriesManager.js +162 -0
  38. package/lib/cjs/hooks/useSCFollowersManager.js +232 -0
  39. package/lib/cjs/hooks/useSCMediaClick.js +27 -0
  40. package/lib/cjs/hooks/useSCSubscribedIncubatorsManager.js +165 -0
  41. package/lib/cjs/hooks/useSCWebPushMessaging.js +286 -0
  42. package/lib/cjs/hooks/useSCWebSocket.js +120 -0
  43. package/lib/cjs/index.js +169 -0
  44. package/lib/cjs/scss/styles.scss +1 -0
  45. package/lib/cjs/themes/theme.js +165 -0
  46. package/lib/cjs/types/context.js +3 -0
  47. package/lib/cjs/types/index.js +22 -0
  48. package/lib/cjs/utils/errors.js +196 -0
  49. package/lib/cjs/utils/locale.js +56 -0
  50. package/lib/cjs/utils/logger.js +32 -0
  51. package/lib/cjs/utils/object.js +44 -0
  52. package/lib/cjs/utils/session.js +17 -0
  53. package/lib/cjs/utils/string.js +57 -0
  54. package/lib/cjs/utils/url.js +70 -0
  55. package/lib/cjs/utils/user.js +83 -0
  56. package/lib/cjs/utils/validator.js +771 -0
  57. package/lib/cjs/utils/webPushMessaging.js +110 -0
  58. package/lib/cjs/utils/websocket.js +307 -0
  59. package/lib/esm/api-services/src/client/index.d.ts +115 -0
  60. package/lib/esm/api-services/src/client/index.d.ts.map +1 -0
  61. package/lib/esm/api-services/src/constants/Endpoints.d.ts +10 -0
  62. package/lib/esm/api-services/src/constants/Endpoints.d.ts.map +1 -0
  63. package/lib/esm/api-services/src/index.d.ts +24 -0
  64. package/lib/esm/api-services/src/index.d.ts.map +1 -0
  65. package/lib/esm/api-services/src/services/category/index.d.ts +13 -0
  66. package/lib/esm/api-services/src/services/category/index.d.ts.map +1 -0
  67. package/lib/esm/api-services/src/services/feature/index.d.ts +10 -0
  68. package/lib/esm/api-services/src/services/feature/index.d.ts.map +1 -0
  69. package/lib/esm/api-services/src/services/preference/index.d.ts +16 -0
  70. package/lib/esm/api-services/src/services/preference/index.d.ts.map +1 -0
  71. package/lib/esm/api-services/src/services/user/index.d.ts +16 -0
  72. package/lib/esm/api-services/src/services/user/index.d.ts.map +1 -0
  73. package/lib/esm/api-services/src/utils/http.d.ts +6 -0
  74. package/lib/esm/api-services/src/utils/http.d.ts.map +1 -0
  75. package/lib/esm/api-services/src/utils/token.d.ts +16 -0
  76. package/lib/esm/api-services/src/utils/token.d.ts.map +1 -0
  77. package/lib/esm/components/provider/SCAlertMessagesProvider/index.js +67 -0
  78. package/lib/esm/components/provider/SCContextProvider/index.js +117 -0
  79. package/lib/esm/components/provider/SCLocaleProvider/index.js +158 -0
  80. package/lib/esm/components/provider/SCNotificationProvider/index.js +73 -0
  81. package/lib/esm/components/provider/SCPreferencesProvider/index.js +93 -0
  82. package/lib/esm/components/provider/SCRoutingProvider/index.js +146 -0
  83. package/lib/esm/components/provider/SCThemeProvider/index.js +123 -0
  84. package/lib/esm/components/provider/SCUserProvider/index.js +310 -0
  85. package/lib/esm/components/router/index.js +91 -0
  86. package/lib/esm/constants/Actions.js +6 -0
  87. package/lib/esm/constants/ContextProviders.js +29 -0
  88. package/lib/esm/constants/Device.js +11 -0
  89. package/lib/esm/constants/Errors.js +10 -0
  90. package/lib/esm/constants/Features.js +84 -0
  91. package/lib/esm/constants/Locale.js +19 -0
  92. package/lib/esm/constants/Notification.js +67 -0
  93. package/lib/esm/constants/Notifications.js +27 -0
  94. package/lib/esm/constants/Preferences.js +344 -0
  95. package/lib/esm/constants/Routes.js +68 -0
  96. package/lib/esm/constants/Session.js +22 -0
  97. package/lib/esm/constants/Theme.js +6 -0
  98. package/lib/esm/constants/WebSocket.js +10 -0
  99. package/lib/esm/hooks/useSCAuth.js +340 -0
  100. package/lib/esm/hooks/useSCCachingManager.js +58 -0
  101. package/lib/esm/hooks/useSCConnectionsManager.js +285 -0
  102. package/lib/esm/hooks/useSCFetchCategories.js +71 -0
  103. package/lib/esm/hooks/useSCFetchCategory.js +68 -0
  104. package/lib/esm/hooks/useSCFetchCommentObject.js +68 -0
  105. package/lib/esm/hooks/useSCFetchCommentObjects.js +296 -0
  106. package/lib/esm/hooks/useSCFetchCustomAdv.js +84 -0
  107. package/lib/esm/hooks/useSCFetchFeedObject.js +79 -0
  108. package/lib/esm/hooks/useSCFetchIncubator.js +68 -0
  109. package/lib/esm/hooks/useSCFetchTag.js +68 -0
  110. package/lib/esm/hooks/useSCFetchUser.js +68 -0
  111. package/lib/esm/hooks/useSCFollowedCategoriesManager.js +162 -0
  112. package/lib/esm/hooks/useSCFollowersManager.js +232 -0
  113. package/lib/esm/hooks/useSCMediaClick.js +27 -0
  114. package/lib/esm/hooks/useSCSubscribedIncubatorsManager.js +165 -0
  115. package/lib/esm/hooks/useSCWebPushMessaging.js +286 -0
  116. package/lib/esm/hooks/useSCWebSocket.js +120 -0
  117. package/lib/esm/index.js +169 -0
  118. package/lib/esm/react-core/src/components/provider/SCAlertMessagesProvider/index.d.ts +37 -0
  119. package/lib/esm/react-core/src/components/provider/SCAlertMessagesProvider/index.d.ts.map +1 -0
  120. package/lib/esm/react-core/src/components/provider/SCContextProvider/index.d.ts +35 -0
  121. package/lib/esm/react-core/src/components/provider/SCContextProvider/index.d.ts.map +1 -0
  122. package/lib/esm/react-core/src/components/provider/SCLocaleProvider/index.d.ts +42 -0
  123. package/lib/esm/react-core/src/components/provider/SCLocaleProvider/index.d.ts.map +1 -0
  124. package/lib/esm/react-core/src/components/provider/SCNotificationProvider/index.d.ts +37 -0
  125. package/lib/esm/react-core/src/components/provider/SCNotificationProvider/index.d.ts.map +1 -0
  126. package/lib/esm/react-core/src/components/provider/SCPreferencesProvider/index.d.ts +38 -0
  127. package/lib/esm/react-core/src/components/provider/SCPreferencesProvider/index.d.ts.map +1 -0
  128. package/lib/esm/react-core/src/components/provider/SCRoutingProvider/index.d.ts +39 -0
  129. package/lib/esm/react-core/src/components/provider/SCRoutingProvider/index.d.ts.map +1 -0
  130. package/lib/esm/react-core/src/components/provider/SCThemeProvider/index.d.ts +49 -0
  131. package/lib/esm/react-core/src/components/provider/SCThemeProvider/index.d.ts.map +1 -0
  132. package/lib/esm/react-core/src/components/provider/SCUserProvider/index.d.ts +38 -0
  133. package/lib/esm/react-core/src/components/provider/SCUserProvider/index.d.ts.map +1 -0
  134. package/lib/esm/react-core/src/components/router/index.d.ts +34 -0
  135. package/lib/esm/react-core/src/components/router/index.d.ts.map +1 -0
  136. package/lib/esm/react-core/src/constants/Actions.d.ts +2 -0
  137. package/lib/esm/react-core/src/constants/Actions.d.ts.map +1 -0
  138. package/lib/esm/react-core/src/constants/ContextProviders.d.ts +6 -0
  139. package/lib/esm/react-core/src/constants/ContextProviders.d.ts.map +1 -0
  140. package/lib/esm/react-core/src/constants/Device.d.ts +6 -0
  141. package/lib/esm/react-core/src/constants/Device.d.ts.map +1 -0
  142. package/lib/esm/react-core/src/constants/Errors.d.ts +5 -0
  143. package/lib/esm/react-core/src/constants/Errors.d.ts.map +1 -0
  144. package/lib/esm/react-core/src/constants/Features.d.ts +41 -0
  145. package/lib/esm/react-core/src/constants/Features.d.ts.map +1 -0
  146. package/lib/esm/react-core/src/constants/Locale.d.ts +8 -0
  147. package/lib/esm/react-core/src/constants/Locale.d.ts.map +1 -0
  148. package/lib/esm/react-core/src/constants/Notification.d.ts +55 -0
  149. package/lib/esm/react-core/src/constants/Notification.d.ts.map +1 -0
  150. package/lib/esm/react-core/src/constants/Notifications.d.ts +11 -0
  151. package/lib/esm/react-core/src/constants/Notifications.d.ts.map +1 -0
  152. package/lib/esm/react-core/src/constants/Routes.d.ts +29 -0
  153. package/lib/esm/react-core/src/constants/Routes.d.ts.map +1 -0
  154. package/lib/esm/react-core/src/constants/Session.d.ts +10 -0
  155. package/lib/esm/react-core/src/constants/Session.d.ts.map +1 -0
  156. package/lib/esm/react-core/src/constants/Theme.d.ts +2 -0
  157. package/lib/esm/react-core/src/constants/Theme.d.ts.map +1 -0
  158. package/lib/esm/react-core/src/hooks/useSCAuth.d.ts +56 -0
  159. package/lib/esm/react-core/src/hooks/useSCAuth.d.ts.map +1 -0
  160. package/lib/esm/react-core/src/hooks/useSCCachingManager.d.ts +19 -0
  161. package/lib/esm/react-core/src/hooks/useSCCachingManager.d.ts.map +1 -0
  162. package/lib/esm/react-core/src/hooks/useSCConnectionsManager.d.ts +40 -0
  163. package/lib/esm/react-core/src/hooks/useSCConnectionsManager.d.ts.map +1 -0
  164. package/lib/esm/react-core/src/hooks/useSCFetchCategories.d.ts +17 -0
  165. package/lib/esm/react-core/src/hooks/useSCFetchCategories.d.ts.map +1 -0
  166. package/lib/esm/react-core/src/hooks/useSCFetchCategory.d.ts +19 -0
  167. package/lib/esm/react-core/src/hooks/useSCFetchCategory.d.ts.map +1 -0
  168. package/lib/esm/react-core/src/hooks/useSCFetchCommentObject.d.ts +19 -0
  169. package/lib/esm/react-core/src/hooks/useSCFetchCommentObject.d.ts.map +1 -0
  170. package/lib/esm/react-core/src/hooks/useSCFetchCommentObjects.d.ts +54 -0
  171. package/lib/esm/react-core/src/hooks/useSCFetchCommentObjects.d.ts.map +1 -0
  172. package/lib/esm/react-core/src/hooks/useSCFetchCustomAdv.d.ts +19 -0
  173. package/lib/esm/react-core/src/hooks/useSCFetchCustomAdv.d.ts.map +1 -0
  174. package/lib/esm/react-core/src/hooks/useSCFetchFeedObject.d.ts +21 -0
  175. package/lib/esm/react-core/src/hooks/useSCFetchFeedObject.d.ts.map +1 -0
  176. package/lib/esm/react-core/src/hooks/useSCFetchIncubator.d.ts +19 -0
  177. package/lib/esm/react-core/src/hooks/useSCFetchIncubator.d.ts.map +1 -0
  178. package/lib/esm/react-core/src/hooks/useSCFetchTag.d.ts +19 -0
  179. package/lib/esm/react-core/src/hooks/useSCFetchTag.d.ts.map +1 -0
  180. package/lib/esm/react-core/src/hooks/useSCFetchUser.d.ts +19 -0
  181. package/lib/esm/react-core/src/hooks/useSCFetchUser.d.ts.map +1 -0
  182. package/lib/esm/react-core/src/hooks/useSCFollowedCategoriesManager.d.ts +37 -0
  183. package/lib/esm/react-core/src/hooks/useSCFollowedCategoriesManager.d.ts.map +1 -0
  184. package/lib/esm/react-core/src/hooks/useSCFollowersManager.d.ts +37 -0
  185. package/lib/esm/react-core/src/hooks/useSCFollowersManager.d.ts.map +1 -0
  186. package/lib/esm/react-core/src/hooks/useSCMediaClick.d.ts +4 -0
  187. package/lib/esm/react-core/src/hooks/useSCMediaClick.d.ts.map +1 -0
  188. package/lib/esm/react-core/src/hooks/useSCSubscribedIncubatorsManager.d.ts +27 -0
  189. package/lib/esm/react-core/src/hooks/useSCSubscribedIncubatorsManager.d.ts.map +1 -0
  190. package/lib/esm/react-core/src/hooks/useSCWebPushMessaging.d.ts +9 -0
  191. package/lib/esm/react-core/src/hooks/useSCWebPushMessaging.d.ts.map +1 -0
  192. package/lib/esm/react-core/src/hooks/useSCWebSocket.d.ts +12 -0
  193. package/lib/esm/react-core/src/hooks/useSCWebSocket.d.ts.map +1 -0
  194. package/lib/esm/react-core/src/index.d.ts +77 -0
  195. package/lib/esm/react-core/src/index.d.ts.map +1 -0
  196. package/lib/esm/react-core/src/types/context.d.ts +428 -0
  197. package/lib/esm/react-core/src/types/context.d.ts.map +1 -0
  198. package/lib/esm/react-core/src/types/index.d.ts +3 -0
  199. package/lib/esm/react-core/src/types/index.d.ts.map +1 -0
  200. package/lib/esm/react-core/src/utils/errors.d.ts +98 -0
  201. package/lib/esm/react-core/src/utils/errors.d.ts.map +1 -0
  202. package/lib/esm/react-core/src/utils/locale.d.ts +10 -0
  203. package/lib/esm/react-core/src/utils/locale.d.ts.map +1 -0
  204. package/lib/esm/react-core/src/utils/logger.d.ts +11 -0
  205. package/lib/esm/react-core/src/utils/logger.d.ts.map +1 -0
  206. package/lib/esm/react-core/src/utils/object.d.ts +13 -0
  207. package/lib/esm/react-core/src/utils/object.d.ts.map +1 -0
  208. package/lib/esm/react-core/src/utils/session.d.ts +6 -0
  209. package/lib/esm/react-core/src/utils/session.d.ts.map +1 -0
  210. package/lib/esm/react-core/src/utils/string.d.ts +21 -0
  211. package/lib/esm/react-core/src/utils/string.d.ts.map +1 -0
  212. package/lib/esm/react-core/src/utils/url.d.ts +22 -0
  213. package/lib/esm/react-core/src/utils/url.d.ts.map +1 -0
  214. package/lib/esm/react-core/src/utils/user.d.ts +41 -0
  215. package/lib/esm/react-core/src/utils/user.d.ts.map +1 -0
  216. package/lib/esm/react-core/src/utils/validator.d.ts +239 -0
  217. package/lib/esm/react-core/src/utils/validator.d.ts.map +1 -0
  218. package/lib/esm/react-core/src/utils/webPushMessaging.d.ts +14 -0
  219. package/lib/esm/react-core/src/utils/webPushMessaging.d.ts.map +1 -0
  220. package/lib/esm/react-core/src/utils/websocket.d.ts +177 -0
  221. package/lib/esm/react-core/src/utils/websocket.d.ts.map +1 -0
  222. package/lib/esm/react-i18n/src/index.d.ts +815 -0
  223. package/lib/esm/react-i18n/src/index.d.ts.map +1 -0
  224. package/lib/esm/scss/styles.scss +1 -0
  225. package/lib/esm/themes/theme.js +165 -0
  226. package/lib/esm/types/context.js +3 -0
  227. package/lib/esm/types/index.js +22 -0
  228. package/lib/esm/types/src/index.d.ts +9 -0
  229. package/lib/esm/types/src/index.d.ts.map +1 -0
  230. package/lib/esm/types/src/types/auth.d.ts +26 -0
  231. package/lib/esm/types/src/types/auth.d.ts.map +1 -0
  232. package/lib/esm/types/src/types/broadcastMessage.d.ts +73 -0
  233. package/lib/esm/types/src/types/broadcastMessage.d.ts.map +1 -0
  234. package/lib/esm/types/src/types/category.d.ts +100 -0
  235. package/lib/esm/types/src/types/category.d.ts.map +1 -0
  236. package/lib/esm/types/src/types/comment.d.ts +97 -0
  237. package/lib/esm/types/src/types/comment.d.ts.map +1 -0
  238. package/lib/esm/types/src/types/customAdv.d.ts +53 -0
  239. package/lib/esm/types/src/types/customAdv.d.ts.map +1 -0
  240. package/lib/esm/types/src/types/customNotification.d.ts +28 -0
  241. package/lib/esm/types/src/types/customNotification.d.ts.map +1 -0
  242. package/lib/esm/types/src/types/embed.d.ts +33 -0
  243. package/lib/esm/types/src/types/embed.d.ts.map +1 -0
  244. package/lib/esm/types/src/types/feed.d.ts +208 -0
  245. package/lib/esm/types/src/types/feed.d.ts.map +1 -0
  246. package/lib/esm/types/src/types/incubator.d.ts +53 -0
  247. package/lib/esm/types/src/types/incubator.d.ts.map +1 -0
  248. package/lib/esm/types/src/types/index.d.ts +22 -0
  249. package/lib/esm/types/src/types/index.d.ts.map +1 -0
  250. package/lib/esm/types/src/types/location.d.ts +61 -0
  251. package/lib/esm/types/src/types/location.d.ts.map +1 -0
  252. package/lib/esm/types/src/types/media.d.ts +52 -0
  253. package/lib/esm/types/src/types/media.d.ts.map +1 -0
  254. package/lib/esm/types/src/types/notification.d.ts +416 -0
  255. package/lib/esm/types/src/types/notification.d.ts.map +1 -0
  256. package/lib/esm/types/src/types/poll.d.ts +77 -0
  257. package/lib/esm/types/src/types/poll.d.ts.map +1 -0
  258. package/lib/esm/types/src/types/privateMessage.d.ts +109 -0
  259. package/lib/esm/types/src/types/privateMessage.d.ts.map +1 -0
  260. package/lib/esm/types/src/types/prize.d.ts +48 -0
  261. package/lib/esm/types/src/types/prize.d.ts.map +1 -0
  262. package/lib/esm/types/src/types/tag.d.ts +47 -0
  263. package/lib/esm/types/src/types/tag.d.ts.map +1 -0
  264. package/lib/esm/types/src/types/user.d.ts +227 -0
  265. package/lib/esm/types/src/types/user.d.ts.map +1 -0
  266. package/lib/esm/utils/errors.js +196 -0
  267. package/lib/esm/utils/locale.js +56 -0
  268. package/lib/esm/utils/logger.js +32 -0
  269. package/lib/esm/utils/object.js +44 -0
  270. package/lib/esm/utils/session.js +17 -0
  271. package/lib/esm/utils/src/index.d.ts +7 -0
  272. package/lib/esm/utils/src/index.d.ts.map +1 -0
  273. package/lib/esm/utils/src/utils/string.d.ts +21 -0
  274. package/lib/esm/utils/src/utils/string.d.ts.map +1 -0
  275. package/lib/esm/utils/src/utils/url.d.ts +22 -0
  276. package/lib/esm/utils/src/utils/url.d.ts.map +1 -0
  277. package/lib/esm/utils/string.js +57 -0
  278. package/lib/esm/utils/url.js +70 -0
  279. package/lib/esm/utils/user.js +83 -0
  280. package/lib/esm/utils/validator.js +771 -0
  281. package/lib/esm/utils/webPushMessaging.js +110 -0
  282. package/lib/esm/utils/websocket.js +307 -0
  283. package/lib/umd/react-core.js +2 -0
  284. package/lib/umd/react-core.js.LICENSE.txt +1 -0
  285. package/package.json +128 -0
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.SCRoutingContext = void 0;
5
+ exports.default = SCRoutingProvider;
6
+ exports.useSCRouting = useSCRouting;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _SCContextProvider = require("../SCContextProvider");
11
+
12
+ var _SCPreferencesProvider = require("../SCPreferencesProvider");
13
+
14
+ var SCPreferences = _interopRequireWildcard(require("../../../constants/Preferences"));
15
+
16
+ var _Routes = require("../../../constants/Routes");
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ /**
23
+ * Creates Global Context
24
+ *
25
+ :::tipContext can be consumed in one of the following ways:
26
+
27
+
28
+ ```jsx
29
+ 1. <SCRoutingContext.Consumer>{(routerLink, routes, url) => (...)}</SCRoutingContext.Consumer>
30
+ ```
31
+ ```jsx
32
+ 2. const scRoutingContext: SCRoutingContextType = useContext(SCRoutingContext);
33
+ ```
34
+ ```jsx
35
+ 3. const scRoutingContext: SCRoutingContextType = useSCRouting();
36
+ ````
37
+
38
+ :::
39
+ */
40
+ const SCRoutingContext = /*#__PURE__*/(0, _react.createContext)({});
41
+ /**
42
+ * #### Description:
43
+ * This component provides routing context.
44
+ * @param children
45
+ * @return
46
+ * ```jsx
47
+ * <SCRoutingContext.Provider value={contextValue}>{children}</SCRoutingContext.Provider>
48
+ * ```
49
+ */
50
+
51
+ exports.SCRoutingContext = SCRoutingContext;
52
+
53
+ function SCRoutingProvider({
54
+ children = null
55
+ }) {
56
+ const scPreferencesContext = (0, _react.useContext)(_SCPreferencesProvider.SCPreferencesContext);
57
+ const scContext = (0, _SCContextProvider.useSCContext)();
58
+ const router = scContext.settings.router ? scContext.settings.router : {};
59
+ const routerLink = router.routerLink ? router.routerLink : null;
60
+
61
+ const _routes = Object.assign(getPreferencesRoutes(), _Routes.defaultRoutes);
62
+
63
+ const routes = router.routes ? Object.assign({}, _routes, router.routes) : _Routes.defaultRoutes;
64
+ /**
65
+ * Normalize template url (preferences)
66
+ */
67
+
68
+ function normalizeUrl(url) {
69
+ let tpl = url;
70
+ const re = /\{([^/]+)?\}/g;
71
+ let match = re.exec(url);
72
+
73
+ while (match) {
74
+ tpl = tpl.replace(match[0], `:${match[1]}`);
75
+ re.lastIndex = 0;
76
+ match = re.exec(tpl);
77
+ }
78
+
79
+ return tpl;
80
+ }
81
+ /**
82
+ * Get override routes from community preferences
83
+ */
84
+
85
+
86
+ function getPreferencesRoutes() {
87
+ return {
88
+ [_Routes.POST_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_POST].value),
89
+ [_Routes.DISCUSSION_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_DISCUSSION].value),
90
+ [_Routes.STATUS_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_STATUS].value),
91
+ [_Routes.COMMENT_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_COMMENT].value),
92
+ [_Routes.CATEGORY_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_CATEGORY].value),
93
+ [_Routes.CATEGORIES_LIST_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_CATEGORIES_LIST].value),
94
+ [_Routes.USER_PROFILE_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_USER_PROFILE].value),
95
+ [_Routes.USER_PROFILE_SETTINGS_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_USER_PROFILE_SETTINGS].value),
96
+ [_Routes.USER_NOTIFICATIONS_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_USER_NOTIFICATIONS].value),
97
+ [_Routes.USER_PRIVATE_MESSAGES_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_USER_PRIVATE_MESSAGES].value),
98
+ [_Routes.INCUBATOR_ROUTE_NAME]: normalizeUrl(scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_URL_TEMPLATE_INCUBATOR].value)
99
+ };
100
+ }
101
+ /**
102
+ * Generate path
103
+ */
104
+
105
+
106
+ function url(name = '', params = {}) {
107
+ const replacer = (tpl, data) => {
108
+ const re = /:([^/|^?|^#]+)?/g;
109
+ let _tpl = tpl;
110
+ let match = re.exec(tpl);
111
+
112
+ while (match) {
113
+ _tpl = _tpl.replace(match[0], data[match[1]]);
114
+ re.lastIndex = 0;
115
+ match = re.exec(_tpl);
116
+ }
117
+
118
+ if (router.handleRoute) {
119
+ // Handle override url
120
+ return router.handleRoute(name, _tpl, params, tpl);
121
+ }
122
+
123
+ return _tpl;
124
+ };
125
+
126
+ return replacer(routes[name], params);
127
+ }
128
+
129
+ const contextValue = (0, _react.useMemo)(() => ({
130
+ routerLink,
131
+ routes,
132
+ url
133
+ }), [routerLink, routes]);
134
+ return /*#__PURE__*/_react.default.createElement(SCRoutingContext.Provider, {
135
+ value: contextValue
136
+ }, children);
137
+ }
138
+ /**
139
+ * Let's only export the `useSCTheme` hook instead of the context.
140
+ * We only want to use the hook directly and never the context component.
141
+ */
142
+
143
+
144
+ function useSCRouting() {
145
+ return (0, _react.useContext)(SCRoutingContext);
146
+ }
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.SCThemeContext = void 0;
5
+ exports.default = SCThemeProvider;
6
+ exports.useSCTheme = useSCTheme;
7
+ exports.withSCTheme = void 0;
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _styles = require("@mui/material/styles");
12
+
13
+ var _theme = _interopRequireDefault(require("../../../themes/theme"));
14
+
15
+ var _SCContextProvider = require("../SCContextProvider");
16
+
17
+ var _SCPreferencesProvider = require("../SCPreferencesProvider");
18
+
19
+ var _useDeepCompareEffect = require("use-deep-compare-effect");
20
+
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+
23
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
+
25
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
+
27
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
28
+
29
+ /**
30
+ * Creates Global Context
31
+ *
32
+ :::tipContext can be consumed in one of the following ways:
33
+
34
+ ```jsx
35
+ 1. <SCThemeContext.Consumer>{(theme,) => (...)}</SCThemeContext.Consumer>
36
+ ```
37
+ ```jsx
38
+ 2. const scThemeContext: SCThemeContextType = useContext(SCThemeContext);
39
+ ```
40
+ ```jsx
41
+ 3. const scThemeContext: SCThemeContextType = useSCTheme();
42
+ ````
43
+
44
+ :::
45
+
46
+ */
47
+ const SCThemeContext = /*#__PURE__*/(0, _react.createContext)({});
48
+ /**
49
+ * #### Description:
50
+ * This component makes the `theme` available down the React tree.
51
+ * It should preferably be used at **the root of your component tree**.
52
+ * See: https://mui.com/system/styled/
53
+ *
54
+ * @param children
55
+ * @return
56
+ * ```jsx
57
+ * <SCThemeContext.Provider value={{theme, setTheme: setCustomTheme}}>
58
+ * <ThemeProvider theme={theme}>{children}</ThemeProvider>
59
+ * </SCThemeContext.Provider>
60
+ * ```
61
+ */
62
+
63
+ exports.SCThemeContext = SCThemeContext;
64
+
65
+ function SCThemeProvider({
66
+ children = null
67
+ }) {
68
+ const scContext = (0, _SCContextProvider.useSCContext)();
69
+ const scPreferencesContext = (0, _SCPreferencesProvider.useSCPreferences)();
70
+ const [theme, setTheme] = (0, _react.useState)((0, _theme.default)(scContext.settings.theme, scPreferencesContext.preferences));
71
+ /**
72
+ * Set custom theme
73
+ * Merge with scPreferencesContext.preferences
74
+ * @param theme
75
+ */
76
+
77
+ const setCustomTheme = theme => {
78
+ setTheme((0, _theme.default)(theme, scPreferencesContext.preferences));
79
+ };
80
+ /**
81
+ * Update theme if initial conf changes
82
+ */
83
+
84
+
85
+ (0, _useDeepCompareEffect.useDeepCompareEffectNoCheck)(() => {
86
+ setCustomTheme(theme);
87
+ }, [scContext.settings.theme]);
88
+ return /*#__PURE__*/_react.default.createElement(_styles.StyledEngineProvider, {
89
+ injectFirst: true
90
+ }, /*#__PURE__*/_react.default.createElement(SCThemeContext.Provider, {
91
+ value: {
92
+ theme,
93
+ setTheme: setCustomTheme
94
+ }
95
+ }, /*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
96
+ theme: theme
97
+ }, children)));
98
+ }
99
+ /**
100
+ * Export hoc to inject the base theme to components
101
+ * @param Component
102
+ */
103
+
104
+
105
+ const withSCTheme = Component => props => {
106
+ const scThemeContext = (0, _react.useContext)(SCThemeContext);
107
+ return /*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
108
+ theme: scThemeContext.theme
109
+ }, /*#__PURE__*/_react.default.createElement(Component, _extends({
110
+ setTheme: scThemeContext.setTheme
111
+ }, props)));
112
+ };
113
+ /**
114
+ * Let's only export the `useSCTheme` hook instead of the context.
115
+ * We only want to use the hook directly and never the context component.
116
+ */
117
+
118
+
119
+ exports.withSCTheme = withSCTheme;
120
+
121
+ function useSCTheme() {
122
+ return (0, _react.useContext)(SCThemeContext);
123
+ }
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.SCUserContext = void 0;
5
+ exports.default = SCUserProvider;
6
+ exports.useSCUser = useSCUser;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _apiServices = require("@selfcommunity/api-services");
11
+
12
+ var _SCContextProvider = require("../SCContextProvider");
13
+
14
+ var _useSCAuth = _interopRequireWildcard(require("../../../hooks/useSCAuth"));
15
+
16
+ var _logger = require("../../../utils/logger");
17
+
18
+ var _pubsubJs = _interopRequireDefault(require("pubsub-js"));
19
+
20
+ var _Errors = require("../../../constants/Errors");
21
+
22
+ var _useDeepCompareEffect = _interopRequireDefault(require("use-deep-compare-effect"));
23
+
24
+ var _useSCFollowedCategoriesManager = _interopRequireDefault(require("../../../hooks/useSCFollowedCategoriesManager"));
25
+
26
+ var _useSCFollowersManager = _interopRequireDefault(require("../../../hooks/useSCFollowersManager"));
27
+
28
+ var _useSCConnectionsManager = _interopRequireDefault(require("../../../hooks/useSCConnectionsManager"));
29
+
30
+ var _types = require("@selfcommunity/types");
31
+
32
+ var _useSCSubscribedIncubatorsManager = _interopRequireDefault(require("../../../hooks/useSCSubscribedIncubatorsManager"));
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ /**
41
+ * SCUserContext (Authentication Context)
42
+ *
43
+ :::tipContext can be consumed in one of the following ways:
44
+
45
+
46
+ ```jsx
47
+ 1. <SCUserContext.Consumer>{(user, session, error, loading, logout) => (...)}</SCUserContext.Consumer>
48
+ ```
49
+ ```jsx
50
+ 2. const scUserContext: SCUserContextType = useContext(SCUserContext);
51
+ ```
52
+ ```jsx
53
+ 3. const scUserContext: SCUserContextType = useSCUser();
54
+ ````
55
+ :::
56
+ */
57
+ const SCUserContext = /*#__PURE__*/(0, _react.createContext)({});
58
+ /**
59
+ * #### Description:
60
+ * This component keeps current user logged and session; it is exported as we need to wrap the entire app with it
61
+ * @param children
62
+ * @return
63
+ * ```jsx
64
+ * <SCUserContext.Provider value={contextValue}>{!state.loading && children}</SCUserContext.Provider>
65
+ * ```
66
+ */
67
+
68
+ exports.SCUserContext = SCUserContext;
69
+
70
+ function SCUserProvider({
71
+ children
72
+ }) {
73
+ const scContext = (0, _react.useContext)(_SCContextProvider.SCContext);
74
+ /**
75
+ * Manage user session
76
+ * Refresh token if necessary
77
+ */
78
+
79
+ const initialSession = scContext.settings.session;
80
+ const {
81
+ state,
82
+ dispatch,
83
+ helpers
84
+ } = (0, _useSCAuth.default)(initialSession);
85
+ /**
86
+ * Managers followed, categories
87
+ */
88
+
89
+ const followedManager = (0, _useSCFollowersManager.default)(state.user);
90
+ const subscribedIncubatorsManager = (0, _useSCSubscribedIncubatorsManager.default)(state.user);
91
+ const connectionsManager = (0, _useSCConnectionsManager.default)(state.user);
92
+ const categoriesManager = (0, _useSCFollowedCategoriesManager.default)(state.user);
93
+ /**
94
+ * Ref notifications subscribers: BLOCKED_USER, UNBLOCKED_USER
95
+ */
96
+
97
+ const notificationUserBlockedSubscription = (0, _react.useRef)(null);
98
+ const notificationUserUnBlockedSubscription = (0, _react.useRef)(null);
99
+ /**
100
+ * Check if there is a currently active session
101
+ * when the provider is mounted for the first time.
102
+ * If there is an error, it means there is no session.
103
+ */
104
+
105
+ (0, _useDeepCompareEffect.default)(() => {
106
+ if (state.session.authToken && state.session.authToken.accessToken) {
107
+ dispatch({
108
+ type: _useSCAuth.userActionTypes.LOGIN_LOADING
109
+ });
110
+
111
+ _apiServices.UserService.getCurrentUser().then(user => {
112
+ dispatch({
113
+ type: _useSCAuth.userActionTypes.LOGIN_SUCCESS,
114
+ payload: {
115
+ user
116
+ }
117
+ });
118
+ }).catch(error => {
119
+ _logger.Logger.error(_Errors.SCOPE_SC_CORE, 'Unable to retrieve the authenticated user.');
120
+
121
+ dispatch({
122
+ type: _useSCAuth.userActionTypes.LOGIN_FAILURE,
123
+ payload: {
124
+ error
125
+ }
126
+ });
127
+ });
128
+ }
129
+ }, [state.session]);
130
+ /**
131
+ * Controls caching of follow categories, users, etc...
132
+ * To avoid multi-tab problems (only for client side), on visibility change
133
+ * and document is in foreground refresh the cache
134
+ */
135
+
136
+ (0, _react.useEffect)(() => {
137
+ typeof window !== 'undefined' && document.addEventListener('visibilitychange', handleVisibilityChange);
138
+ return () => {
139
+ typeof window !== 'undefined' && document.removeEventListener('visibilitychange', handleVisibilityChange);
140
+ };
141
+ });
142
+ /**
143
+ * handler handleVisibilityChange for this provider
144
+ * Refresh followed categories, users, etc..
145
+ */
146
+
147
+ function handleVisibilityChange() {
148
+ if (typeof window !== 'undefined' && !window.document.hidden && state.user) {
149
+ categoriesManager.refresh && categoriesManager.refresh();
150
+ followedManager.refresh && followedManager.refresh();
151
+ connectionsManager.refresh && connectionsManager.refresh();
152
+ subscribedIncubatorsManager.refresh && subscribedIncubatorsManager.refresh();
153
+ }
154
+ }
155
+ /**
156
+ * Subscribes to handle notifications of type BLOCKED_USER, UNBLOCKED_USER.
157
+ * When receive this type of notifications, the user.status must be update.
158
+ */
159
+
160
+
161
+ (0, _react.useEffect)(() => {
162
+ notificationUserBlockedSubscription.current = _pubsubJs.default.subscribe(`${_types.SCNotificationTopicType.INTERACTION}.${_types.SCNotificationTypologyType.BLOCKED_USER}`, () => {
163
+ dispatch({
164
+ type: _useSCAuth.userActionTypes.UPDATE_USER,
165
+ payload: {
166
+ status: _types.SCUserStatus.BLOCKED
167
+ }
168
+ });
169
+ });
170
+ notificationUserUnBlockedSubscription.current = _pubsubJs.default.subscribe(`${_types.SCNotificationTopicType.INTERACTION}.${_types.SCNotificationTypologyType.UNBLOCKED_USER}`, () => {
171
+ dispatch({
172
+ type: _useSCAuth.userActionTypes.UPDATE_USER,
173
+ payload: {
174
+ status: _types.SCUserStatus.APPROVED
175
+ }
176
+ });
177
+ });
178
+ return () => {
179
+ _pubsubJs.default.unsubscribe(notificationUserBlockedSubscription.current);
180
+
181
+ _pubsubJs.default.unsubscribe(notificationUserUnBlockedSubscription.current);
182
+ };
183
+ }, []);
184
+ /**
185
+ * Handle change user
186
+ */
187
+
188
+ function updateUser(info) {
189
+ dispatch({
190
+ type: _useSCAuth.userActionTypes.UPDATE_USER,
191
+ payload: info
192
+ });
193
+ }
194
+ /**
195
+ * Handle change unseen interactions counter
196
+ */
197
+
198
+
199
+ function setUnseenInteractionsCounter(counter) {
200
+ dispatch({
201
+ type: _useSCAuth.userActionTypes.UPDATE_USER,
202
+ payload: {
203
+ unseen_interactions_counter: counter
204
+ }
205
+ });
206
+ }
207
+ /**
208
+ * Handle change unseen notification banners counter
209
+ */
210
+
211
+
212
+ function setUnseenNotificationBannersCounter(counter) {
213
+ dispatch({
214
+ type: _useSCAuth.userActionTypes.UPDATE_USER,
215
+ payload: {
216
+ unseen_notification_banners_counter: counter
217
+ }
218
+ });
219
+ }
220
+ /**
221
+ * Helper to refresh the session
222
+ */
223
+
224
+
225
+ function refreshSession() {
226
+ return helpers.refreshSession();
227
+ }
228
+ /**
229
+ * Helper to refresh the notification counter
230
+ * Use getCurrentUser service since the notification counters
231
+ * have been inserted into the serialized user object
232
+ */
233
+
234
+
235
+ const refreshNotificationCounters = (0, _react.useMemo)(() => () => {
236
+ if (state.user) {
237
+ return _apiServices.UserService.getCurrentUser().then(user => {
238
+ dispatch({
239
+ type: _useSCAuth.userActionTypes.UPDATE_USER,
240
+ payload: {
241
+ unseen_interactions_counter: user.unseen_interactions_counter,
242
+ unseen_notification_banners_counter: user.unseen_notification_banners_counter
243
+ }
244
+ });
245
+ }).catch(error => {
246
+ _logger.Logger.error(_Errors.SCOPE_SC_CORE, `Unable to refresh notification counters. Error: ${error.response.toString()}`);
247
+ });
248
+ }
249
+
250
+ return Promise.reject();
251
+ }, [state.user]);
252
+ /**
253
+ * Call the logout endpoint and then remove the user
254
+ * from the state.
255
+ */
256
+
257
+ function logout() {
258
+ dispatch({
259
+ type: _useSCAuth.userActionTypes.LOGOUT
260
+ });
261
+ }
262
+ /**
263
+ * Make the provider update only when it should.
264
+ * We only want to force re-renders if the user, session,
265
+ * loading or error states change.
266
+ *
267
+ * Whenever the `value` passed into a provider changes,
268
+ * the whole tree under the provider re-renders, and
269
+ * that can be very costly! Even in this case, where
270
+ * you only get re-renders when logging in and out
271
+ * we want to keep things very performant.
272
+ */
273
+
274
+
275
+ const contextValue = (0, _react.useMemo)(() => ({
276
+ user: state.user,
277
+ session: state.session,
278
+ loading: state.loading,
279
+ error: state.error,
280
+ updateUser,
281
+ setUnseenInteractionsCounter,
282
+ setUnseenNotificationBannersCounter,
283
+ refreshNotificationCounters,
284
+ logout,
285
+ refreshSession,
286
+ managers: {
287
+ categories: categoriesManager,
288
+ followed: followedManager,
289
+ connections: connectionsManager,
290
+ incubators: subscribedIncubatorsManager
291
+ }
292
+ }), [state, categoriesManager.loading, categoriesManager.categories, followedManager.loading, followedManager.followed, connectionsManager.loading, connectionsManager.connections, subscribedIncubatorsManager.loading, subscribedIncubatorsManager.incubators]);
293
+ /**
294
+ * We only want to render the underlying app after we
295
+ * assert for the presence of a current user.
296
+ */
297
+
298
+ return /*#__PURE__*/_react.default.createElement(SCUserContext.Provider, {
299
+ value: contextValue
300
+ }, children);
301
+ }
302
+ /**
303
+ * Let's only export the `useSCUser` hook instead of the context.
304
+ * We only want to use the hook directly and never the context component.
305
+ */
306
+
307
+
308
+ function useSCUser() {
309
+ return (0, _react.useContext)(SCUserContext);
310
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _react = _interopRequireWildcard(require("react"));
7
+
8
+ var _SCRoutingProvider = require("../provider/SCRoutingProvider");
9
+
10
+ const _excluded = ["children"],
11
+ _excluded2 = ["to"];
12
+
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+
17
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
+
19
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
20
+
21
+ /**
22
+ *
23
+ * Import this components:
24
+ * import {SCRoutingContextType, useSCRouting, Link, SCRoutes} from '@selfcommunity/react-core';
25
+ *
26
+ * Example:
27
+ * const scRoutingContext: SCRoutingContextType = useSCRouting();
28
+ * `<Button component={Link} to={scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, {id: user.id})}>Go to profile</Button>`
29
+ * or
30
+ * const scRoutingContext: SCRoutingContextType = useSCRouting();
31
+ * `<Link to={scRoutingContext.url('profile', {id: user.id})}>Go to profile</Link>`
32
+ *
33
+ */
34
+ const Link = (_ref, ref) => {
35
+ let {
36
+ children
37
+ } = _ref,
38
+ other = _objectWithoutPropertiesLoose(_ref, _excluded);
39
+
40
+ const scRoutingContext = (0, _react.useContext)(_SCRoutingProvider.SCRoutingContext);
41
+
42
+ if (scRoutingContext.routerLink) {
43
+ const ComponentLink = scRoutingContext.routerLink;
44
+ return /*#__PURE__*/_react.default.createElement(ComponentLink, _extends({}, other, {
45
+ ref: ref
46
+ }), children);
47
+ }
48
+
49
+ const {
50
+ to
51
+ } = other,
52
+ rest = _objectWithoutPropertiesLoose(other, _excluded2);
53
+
54
+ return /*#__PURE__*/_react.default.createElement("a", _extends({
55
+ href: to
56
+ }, rest, {
57
+ ref: ref
58
+ }), children);
59
+ };
60
+ /**
61
+ :::info
62
+ This component is used to navigate through the application.
63
+ :::
64
+
65
+ ## Usage
66
+
67
+ In order to use router you need to import this components first:
68
+
69
+ ```jsx
70
+ import {SCRoutingContextType, useSCRouting, Link, SCRoutes} from '@selfcommunity/react-core';
71
+ ````
72
+ :::tipUsage Example:
73
+
74
+ ```jsx
75
+ const scRoutingContext: SCRoutingContextType = useSCRouting();
76
+ <Button component={Link} to={scRoutingContext.url(SCRoutes.USER_PROFILE_ROUTE_NAME, {id: user.id})>Go to profile</Button>
77
+ ````
78
+ **or**
79
+
80
+ ```jsx
81
+ const scRoutingContext: SCRoutingContextType = useSCRouting();
82
+ <Link to={scRoutingContext.url('profile', {id: user.id})}>Go to profile</Link>
83
+ ````
84
+
85
+ :::
86
+ */
87
+
88
+
89
+ var _default = /*#__PURE__*/_react.default.forwardRef(Link);
90
+
91
+ exports.default = _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.HANDLE_ANONYMOUS_ACTION_OPTION = void 0;
5
+ const HANDLE_ANONYMOUS_ACTION_OPTION = 'handleAnonymousAction';
6
+ exports.HANDLE_ANONYMOUS_ACTION_OPTION = HANDLE_ANONYMOUS_ACTION_OPTION;