@selfcommunity/react-core 0.7.0-alpha.2 → 0.7.0-alpha.21

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 (90) hide show
  1. package/lib/cjs/constants/Cache.d.ts +12 -0
  2. package/lib/cjs/constants/Cache.js +17 -1
  3. package/lib/cjs/constants/Preferences.d.ts +18 -0
  4. package/lib/cjs/constants/Preferences.js +36 -2
  5. package/lib/cjs/constants/Routes.d.ts +6 -0
  6. package/lib/cjs/constants/Routes.js +14 -1
  7. package/lib/cjs/hooks/useFetchMenuFooter.d.ts +5 -0
  8. package/lib/cjs/hooks/useFetchMenuFooter.js +36 -0
  9. package/lib/cjs/hooks/useSCFeature.d.ts +22 -0
  10. package/lib/cjs/hooks/useSCFeature.js +38 -0
  11. package/lib/cjs/hooks/useSCFetchCategory.d.ts +1 -0
  12. package/lib/cjs/hooks/useSCFetchCategory.js +18 -1
  13. package/lib/cjs/hooks/useSCFetchCourse.js +15 -15
  14. package/lib/cjs/hooks/useSCFetchEvent.d.ts +1 -0
  15. package/lib/cjs/hooks/useSCFetchEvent.js +16 -1
  16. package/lib/cjs/hooks/useSCFetchGroup.d.ts +1 -0
  17. package/lib/cjs/hooks/useSCFetchGroup.js +16 -1
  18. package/lib/cjs/hooks/useSCFetchPaymentOrder.d.ts +20 -0
  19. package/lib/cjs/hooks/useSCFetchPaymentOrder.js +70 -0
  20. package/lib/cjs/hooks/useSCFetchPaymentProduct.d.ts +20 -0
  21. package/lib/cjs/hooks/useSCFetchPaymentProduct.js +70 -0
  22. package/lib/cjs/hooks/useSCFetchUsers.d.ts +21 -0
  23. package/lib/cjs/hooks/useSCFetchUsers.js +50 -0
  24. package/lib/cjs/hooks/useSCJoinedCoursesManager.d.ts +1 -1
  25. package/lib/cjs/hooks/useSCJoinedCoursesManager.js +36 -67
  26. package/lib/cjs/hooks/useSCPaymentsEnabled.d.ts +18 -0
  27. package/lib/cjs/hooks/useSCPaymentsEnabled.js +35 -0
  28. package/lib/cjs/hooks/useSCPreference.d.ts +36 -0
  29. package/lib/cjs/hooks/useSCPreference.js +69 -0
  30. package/lib/cjs/hooks/useSCPreferencesAndFeaturesEnabled.d.ts +17 -0
  31. package/lib/cjs/hooks/useSCPreferencesAndFeaturesEnabled.js +35 -0
  32. package/lib/cjs/hooks/useSCSubscribedEventsManager.js +4 -14
  33. package/lib/cjs/hooks/useSCSubscribedGroupsManager.d.ts +1 -1
  34. package/lib/cjs/hooks/useSCSubscribedGroupsManager.js +29 -54
  35. package/lib/cjs/index.d.ts +10 -2
  36. package/lib/cjs/index.js +22 -2
  37. package/lib/cjs/themes/theme.js +12 -0
  38. package/lib/cjs/types/theme.d.ts +52 -0
  39. package/lib/cjs/utils/hooks/index.d.ts +2 -1
  40. package/lib/cjs/utils/hooks/index.js +3 -1
  41. package/lib/cjs/utils/hooks/useResizeObserver.d.ts +1 -0
  42. package/lib/cjs/utils/hooks/useResizeObserver.js +16 -0
  43. package/lib/cjs/utils/user.d.ts +8 -1
  44. package/lib/cjs/utils/user.js +15 -2
  45. package/lib/esm/constants/Cache.d.ts +12 -0
  46. package/lib/esm/constants/Cache.js +12 -0
  47. package/lib/esm/constants/Preferences.d.ts +18 -0
  48. package/lib/esm/constants/Preferences.js +33 -0
  49. package/lib/esm/constants/Routes.d.ts +6 -0
  50. package/lib/esm/constants/Routes.js +12 -0
  51. package/lib/esm/hooks/useFetchMenuFooter.d.ts +5 -0
  52. package/lib/esm/hooks/useFetchMenuFooter.js +33 -0
  53. package/lib/esm/hooks/useSCFeature.d.ts +22 -0
  54. package/lib/esm/hooks/useSCFeature.js +33 -0
  55. package/lib/esm/hooks/useSCFetchCategory.d.ts +1 -0
  56. package/lib/esm/hooks/useSCFetchCategory.js +18 -1
  57. package/lib/esm/hooks/useSCFetchCourse.js +15 -15
  58. package/lib/esm/hooks/useSCFetchEvent.d.ts +1 -0
  59. package/lib/esm/hooks/useSCFetchEvent.js +16 -1
  60. package/lib/esm/hooks/useSCFetchGroup.d.ts +1 -0
  61. package/lib/esm/hooks/useSCFetchGroup.js +16 -1
  62. package/lib/esm/hooks/useSCFetchPaymentOrder.d.ts +20 -0
  63. package/lib/esm/hooks/useSCFetchPaymentOrder.js +67 -0
  64. package/lib/esm/hooks/useSCFetchPaymentProduct.d.ts +20 -0
  65. package/lib/esm/hooks/useSCFetchPaymentProduct.js +67 -0
  66. package/lib/esm/hooks/useSCFetchUsers.d.ts +21 -0
  67. package/lib/esm/hooks/useSCFetchUsers.js +48 -0
  68. package/lib/esm/hooks/useSCJoinedCoursesManager.d.ts +1 -1
  69. package/lib/esm/hooks/useSCJoinedCoursesManager.js +37 -67
  70. package/lib/esm/hooks/useSCPaymentsEnabled.d.ts +18 -0
  71. package/lib/esm/hooks/useSCPaymentsEnabled.js +31 -0
  72. package/lib/esm/hooks/useSCPreference.d.ts +36 -0
  73. package/lib/esm/hooks/useSCPreference.js +65 -0
  74. package/lib/esm/hooks/useSCPreferencesAndFeaturesEnabled.d.ts +17 -0
  75. package/lib/esm/hooks/useSCPreferencesAndFeaturesEnabled.js +32 -0
  76. package/lib/esm/hooks/useSCSubscribedEventsManager.js +4 -14
  77. package/lib/esm/hooks/useSCSubscribedGroupsManager.d.ts +1 -1
  78. package/lib/esm/hooks/useSCSubscribedGroupsManager.js +29 -54
  79. package/lib/esm/index.d.ts +10 -2
  80. package/lib/esm/index.js +10 -2
  81. package/lib/esm/themes/theme.js +12 -0
  82. package/lib/esm/types/theme.d.ts +52 -0
  83. package/lib/esm/utils/hooks/index.d.ts +2 -1
  84. package/lib/esm/utils/hooks/index.js +2 -1
  85. package/lib/esm/utils/hooks/useResizeObserver.d.ts +1 -0
  86. package/lib/esm/utils/hooks/useResizeObserver.js +13 -0
  87. package/lib/esm/utils/user.d.ts +8 -1
  88. package/lib/esm/utils/user.js +13 -1
  89. package/lib/umd/react-core.js +1 -1
  90. package/package.json +6 -6
package/lib/esm/index.js CHANGED
@@ -38,6 +38,7 @@ import * as SCCache from './constants/Cache';
38
38
  * Custom Hooks
39
39
  */
40
40
  import useSCFetchUser from './hooks/useSCFetchUser';
41
+ import useSCFetchUsers from './hooks/useSCFetchUsers';
41
42
  import useSCFetchUserProviders from './hooks/useSCFetchUserProviders';
42
43
  import useSCFetchVote from './hooks/useSCFetchVote';
43
44
  import useSCFetchFeedObject from './hooks/useSCFetchFeedObject';
@@ -67,6 +68,13 @@ import useSCGoogleApiLoader from './hooks/useSCGoogleApiLoader';
67
68
  import useSCFetchCourse from './hooks/useSCFetchCourse';
68
69
  import useSCFetchCourses from './hooks/useSCFetchCourses';
69
70
  import useSCFetchLesson from './hooks/useSCFetchLesson';
71
+ import useSCPaymentsEnabled from './hooks/useSCPaymentsEnabled';
72
+ import useSCFetchPaymentProduct from './hooks/useSCFetchPaymentProduct';
73
+ import useSCFetchPaymentOrder from './hooks/useSCFetchPaymentOrder';
74
+ import useFetchMenuFooter from './hooks/useFetchMenuFooter';
75
+ import useSCPreference, { useSCPreferenceEnabled, useSCPreferencesEnabled } from './hooks/useSCPreference';
76
+ import { useSCFeatureEnabled, useSCFeaturesEnabled } from './hooks/useSCFeature';
77
+ import useSCPreferencesAndFeaturesEnabled from './hooks/useSCPreferencesAndFeaturesEnabled';
70
78
  /**
71
79
  * Routing component
72
80
  */
@@ -78,7 +86,7 @@ import * as SCRoutes from './constants/Routes';
78
86
  */
79
87
  import * as UserUtils from './utils/user';
80
88
  import getTheme from './themes/theme';
81
- import { useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility, } from './utils/hooks';
89
+ import { useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility, useResizeObserver, } from './utils/hooks';
82
90
  import { getEventStatus } from './utils/event';
83
91
  /**
84
92
  * Constants:
@@ -89,4 +97,4 @@ import * as Preferences from './constants/Preferences';
89
97
  /**
90
98
  * List all exports
91
99
  */
92
- export { SCContext, SCUserContext, SCThemeContext, SCRoutingContext, SCLocaleContext, SCPreferencesContext, useSCContext, SCContextProvider, SCUserProvider, useSCUser, useSCPreferences, SCThemeProvider, useSCTheme, withSCTheme, getTheme, SCRoutingProvider, useSCRouting, SCLocaleProvider, useSCLocale, withSCLocale, SCPreferencesProvider, SCPreferences, SCFeatures, SCNotification, SCNotificationProvider, SCNotificationContext, useSCNotification, SCAlertMessagesProvider, SCAlertMessagesContext, useSCAlertMessages, Link, SCRoutes, SCCache, UserUtils, getEventStatus, Locale, Preferences, useSCFetchUser, useSCFetchUserProviders, useSCFetchVote, useSCFetchFeedObject, useSCFetchCommentObject, useSCFetchCommentObjects, useSCFetchLessonCommentObject, useSCFetchLessonCommentObjects, useSCFetchCustomAdv, useSCFetchTag, useSCFetchAddressingTagList, useSCFetchCategory, useSCFetchCategories, useSCFetchIncubator, useSCMediaClick, useSCFetchContributors, useSCFetchFeed, useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility, useSCFetchPrivateMessageSnippets, useSCFetchBroadcastMessages, useSCFetchUserBlockedBy, useSCUserIsBlocked, useSCFetchGroup, useSCFetchGroups, useSCFetchEvent, useSCFetchEvents, useSCFetchLiveStream, useSCGoogleApiLoader, useSCFetchCourse, useSCFetchCourses, useSCFetchLesson, };
100
+ export { SCContext, SCUserContext, SCThemeContext, SCRoutingContext, SCLocaleContext, SCPreferencesContext, useSCContext, SCContextProvider, SCUserProvider, useSCUser, useSCPreferences, SCThemeProvider, useSCTheme, withSCTheme, getTheme, SCRoutingProvider, useSCRouting, SCLocaleProvider, useSCLocale, withSCLocale, SCPreferencesProvider, SCPreferences, SCFeatures, SCNotification, SCNotificationProvider, SCNotificationContext, useSCNotification, SCAlertMessagesProvider, SCAlertMessagesContext, useSCAlertMessages, Link, SCRoutes, SCCache, UserUtils, getEventStatus, Locale, Preferences, useSCFetchUser, useSCFetchUsers, useSCFetchUserProviders, useSCFetchVote, useSCFetchFeedObject, useSCFetchCommentObject, useSCFetchCommentObjects, useSCFetchLessonCommentObject, useSCFetchLessonCommentObjects, useSCFetchCustomAdv, useSCFetchTag, useSCFetchAddressingTagList, useSCFetchCategory, useSCFetchCategories, useSCFetchIncubator, useSCMediaClick, useSCFetchContributors, useSCFetchFeed, useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility, useResizeObserver, useSCFetchPrivateMessageSnippets, useSCFetchBroadcastMessages, useSCFetchUserBlockedBy, useSCUserIsBlocked, useSCFetchGroup, useSCFetchGroups, useSCFetchEvent, useSCFetchEvents, useSCFetchLiveStream, useSCGoogleApiLoader, useSCFetchCourse, useSCFetchCourses, useSCFetchLesson, useSCPaymentsEnabled, useSCFetchPaymentProduct, useSCFetchPaymentOrder, useFetchMenuFooter, useSCPreference, useSCPreferenceEnabled, useSCPreferencesEnabled, useSCFeatureEnabled, useSCFeaturesEnabled, useSCPreferencesAndFeaturesEnabled, };
@@ -48,6 +48,18 @@ const getTheme = (options, preferences) => {
48
48
  sizeXLarge: 120,
49
49
  },
50
50
  },
51
+ contentProduct: {
52
+ icon: {
53
+ sizeSmall: 24,
54
+ sizeMedium: 40,
55
+ },
56
+ },
57
+ contentProductPrice: {
58
+ icon: {
59
+ sizeSmall: 24,
60
+ sizeMedium: 40,
61
+ },
62
+ },
51
63
  };
52
64
  const defaultOptions = preferences
53
65
  ? {
@@ -55,6 +55,32 @@ export interface SCThemeCategoryIconVariableType {
55
55
  */
56
56
  sizeLarge: number;
57
57
  }
58
+ /**
59
+ * Interface SCThemeContentProductIconVariableType
60
+ */
61
+ export interface SCThemeContentProductIconVariableType {
62
+ /**
63
+ * ContentProduct size small
64
+ */
65
+ sizeSmall: number;
66
+ /**
67
+ * ContentProduct size medium
68
+ */
69
+ sizeMedium: number;
70
+ }
71
+ /**
72
+ * Interface SCThemeContentProductPriceIconVariableType
73
+ */
74
+ export interface SCThemeContentProductPriceIconVariableType {
75
+ /**
76
+ * ContentProductPrice size small
77
+ */
78
+ sizeSmall: number;
79
+ /**
80
+ * ContentProductPrice size medium
81
+ */
82
+ sizeMedium: number;
83
+ }
58
84
  /**
59
85
  * Interface SCThemeCategoryVariableType
60
86
  */
@@ -64,6 +90,24 @@ export interface SCThemeCategoryVariableType {
64
90
  */
65
91
  icon: SCThemeCategoryIconVariableType;
66
92
  }
93
+ /**
94
+ * Interface SCThemeContentProductVariableType
95
+ */
96
+ export interface SCThemeContentProductVariableType {
97
+ /**
98
+ * ContentProduct icon size
99
+ */
100
+ icon: SCThemeContentProductIconVariableType;
101
+ }
102
+ /**
103
+ * Interface SCThemeContentProductPriceVariableType
104
+ */
105
+ export interface SCThemeContentProductPriceVariableType {
106
+ /**
107
+ * ContentProductPrice icon size
108
+ */
109
+ icon: SCThemeContentProductPriceIconVariableType;
110
+ }
67
111
  /**
68
112
  * Interface SCThemeVariablesType
69
113
  */
@@ -80,6 +124,14 @@ export interface SCThemeVariablesType {
80
124
  * Group
81
125
  */
82
126
  group: SCThemeGroupVariableType;
127
+ /**
128
+ * ContentProduct
129
+ */
130
+ contentProduct: SCThemeContentProductVariableType;
131
+ /**
132
+ * ContentProductPrice
133
+ */
134
+ contentProductPrice: SCThemeContentProductPriceVariableType;
83
135
  }
84
136
  export interface SCThemeType extends MuiTheme {
85
137
  /**
@@ -4,4 +4,5 @@ import useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';
4
4
  import useEffectOnce from './useEffectOnce';
5
5
  import useNoInitialEffect from './useNoInitialEffect';
6
6
  import usePageVisibility from './usePageVisibility';
7
- export { useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility };
7
+ import useResizeObserver from './useResizeObserver';
8
+ export { useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility, useResizeObserver, };
@@ -4,4 +4,5 @@ import useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';
4
4
  import useEffectOnce from './useEffectOnce';
5
5
  import useNoInitialEffect from './useNoInitialEffect';
6
6
  import usePageVisibility from './usePageVisibility';
7
- export { useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility };
7
+ import useResizeObserver from './useResizeObserver';
8
+ export { useIsComponentMountedRef, usePreviousValue, useIsomorphicLayoutEffect, useEffectOnce, useNoInitialEffect, usePageVisibility, useResizeObserver, };
@@ -0,0 +1 @@
1
+ export default function useResizeObserver(element: Element | null, options: ResizeObserverOptions | undefined, observerCallback: ResizeObserverCallback): void;
@@ -0,0 +1,13 @@
1
+ import { useEffect } from 'react';
2
+ export default function useResizeObserver(element, options, observerCallback) {
3
+ useEffect(() => {
4
+ if (!element || !('ResizeObserver' in window)) {
5
+ return undefined;
6
+ }
7
+ const observer = new ResizeObserver(observerCallback);
8
+ observer.observe(element, options);
9
+ return () => {
10
+ observer.disconnect();
11
+ };
12
+ }, [element, options, observerCallback]);
13
+ }
@@ -6,6 +6,7 @@ import { SCUserType } from '@selfcommunity/types';
6
6
  export declare const ADMIN_ROLE = "admin";
7
7
  export declare const MODERATOR_ROLE = "moderator";
8
8
  export declare const EDITOR_ROLE = "editor";
9
+ export declare const PUBLISHER_ROLE = "publisher";
9
10
  export declare const COMMUNITY_CREATOR = 1;
10
11
  /**
11
12
  * Get user role from roles(set)
@@ -38,7 +39,13 @@ export declare function isModerator(user: SCUserType): boolean;
38
39
  */
39
40
  export declare function isEditor(user: SCUserType): boolean;
40
41
  /**
41
- * Check if user is admin or moderator
42
+ * Check if user is publisher
43
+ * @param user
44
+ * @returns boolean
45
+ */
46
+ export declare function isPublisher(user: SCUserType): boolean;
47
+ /**
48
+ * Check if user is admin, moderator, editor or publisher
42
49
  * @param user
43
50
  * @returns boolean
44
51
  */
@@ -6,6 +6,7 @@ import { SCUserStatus } from '@selfcommunity/types';
6
6
  export const ADMIN_ROLE = 'admin';
7
7
  export const MODERATOR_ROLE = 'moderator';
8
8
  export const EDITOR_ROLE = 'editor';
9
+ export const PUBLISHER_ROLE = 'publisher';
9
10
  export const COMMUNITY_CREATOR = 1;
10
11
  /**
11
12
  * Get user role from roles(set)
@@ -24,6 +25,9 @@ export function getUserRole(user) {
24
25
  else if (role === EDITOR_ROLE) {
25
26
  return EDITOR_ROLE;
26
27
  }
28
+ else if (role === PUBLISHER_ROLE) {
29
+ return PUBLISHER_ROLE;
30
+ }
27
31
  }
28
32
  return null;
29
33
  }
@@ -60,7 +64,15 @@ export function isEditor(user) {
60
64
  return getUserRole(user) === EDITOR_ROLE;
61
65
  }
62
66
  /**
63
- * Check if user is admin or moderator
67
+ * Check if user is publisher
68
+ * @param user
69
+ * @returns boolean
70
+ */
71
+ export function isPublisher(user) {
72
+ return getUserRole(user) === PUBLISHER_ROLE;
73
+ }
74
+ /**
75
+ * Check if user is admin, moderator, editor or publisher
64
76
  * @param user
65
77
  * @returns boolean
66
78
  */