@selfcommunity/react-ui 0.9.0-alpha.12 → 0.9.0-alpha.14

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.
@@ -79,6 +79,7 @@ function NavigationSettingsIconButton(inProps) {
79
79
  const scUserContext = (0, react_core_1.useSCUser)();
80
80
  // MEMO
81
81
  const isAdmin = (0, react_1.useMemo)(() => react_core_1.UserUtils.isAdmin(scUserContext.user), [scUserContext.user]);
82
+ const isCommunityCreator = (0, react_1.useMemo)(() => react_core_1.UserUtils.isCommunityCreator(scUserContext.user), [scUserContext.user]);
82
83
  const isModerator = (0, react_1.useMemo)(() => react_core_1.UserUtils.isModerator(scUserContext.user), [scUserContext.user]);
83
84
  // HOOKS
84
85
  const theme = (0, material_1.useTheme)();
@@ -108,11 +109,24 @@ function NavigationSettingsIconButton(inProps) {
108
109
  window.open(platformUrl, '_blank').focus();
109
110
  });
110
111
  };
112
+ /**
113
+ * Handles preferences update
114
+ */
115
+ const handlePreferencesUpdate = () => {
116
+ api_services_1.PreferenceService.getAllPreferences().then((preferences) => {
117
+ const prefs = preferences['results'].reduce((obj, p) => (Object.assign(Object.assign({}, obj), { [`${p.section}.${p.name}`]: p })), {});
118
+ scPreferences.setPreferences(prefs);
119
+ });
120
+ };
111
121
  /**
112
122
  * Updates onBoarding dynamic preference
113
123
  */
114
124
  const showOnBoarding = () => {
115
- api_services_1.PreferenceService.updatePreferences({ [`${types_1.SCPreferenceName.ONBOARDING_HIDDEN}`]: false }).catch((e) => {
125
+ api_services_1.PreferenceService.updatePreferences({ [`${types_1.SCPreferenceName.ONBOARDING_HIDDEN}`]: false })
126
+ .then(() => {
127
+ handlePreferencesUpdate();
128
+ })
129
+ .catch((e) => {
116
130
  utils_1.Logger.error(Errors_1.SCOPE_SC_UI, e);
117
131
  });
118
132
  };
@@ -134,7 +148,9 @@ function NavigationSettingsIconButton(inProps) {
134
148
  ...(isAdmin
135
149
  ? [
136
150
  (0, jsx_runtime_1.jsx)(material_1.Divider, {}, "admin_divider"),
137
- preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] && preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && ((0, jsx_runtime_1.jsx)(material_1.ListItem, Object.assign({ className: classes.item }, { children: (0, jsx_runtime_1.jsxs)(material_1.ListItemButton, Object.assign({ onClick: showOnBoarding }, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), (0, jsx_runtime_1.jsx)(material_1.ListItemIcon, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "magic_wand" }) })] })) }), "onboarding")),
151
+ isCommunityCreator &&
152
+ preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] &&
153
+ preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && ((0, jsx_runtime_1.jsx)(material_1.ListItem, Object.assign({ className: classes.item }, { children: (0, jsx_runtime_1.jsxs)(material_1.ListItemButton, Object.assign({ onClick: showOnBoarding }, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), (0, jsx_runtime_1.jsx)(material_1.ListItemIcon, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "magic_wand" }) })] })) }), "onboarding")),
138
154
  (0, jsx_runtime_1.jsx)(material_1.ListItem, Object.assign({ className: classes.item }, { children: (0, jsx_runtime_1.jsx)(material_1.ListItemButton, Object.assign({ onClick: () => fetchPlatform('') }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.navigationSettingsIconButton.platform", defaultMessage: "ui.navigationSettingsIconButton.platform" }) })) }), "platform")
139
155
  ]
140
156
  : []),
@@ -163,7 +179,9 @@ function NavigationSettingsIconButton(inProps) {
163
179
  ...(isAdmin
164
180
  ? [
165
181
  (0, jsx_runtime_1.jsx)(material_1.Divider, {}, "platform_divider"),
166
- preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] && preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && ((0, jsx_runtime_1.jsxs)(material_1.MenuItem, Object.assign({ className: classes.item, onClick: showOnBoarding }, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), (0, jsx_runtime_1.jsx)(material_1.ListItemIcon, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "magic_wand" }) })] }), "onboarding")),
182
+ isCommunityCreator &&
183
+ preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] &&
184
+ preferences[react_core_1.SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && ((0, jsx_runtime_1.jsxs)(material_1.MenuItem, Object.assign({ className: classes.item, onClick: showOnBoarding }, { children: [(0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), (0, jsx_runtime_1.jsx)(material_1.ListItemIcon, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "magic_wand" }) })] }), "onboarding")),
167
185
  (0, jsx_runtime_1.jsx)(material_1.MenuItem, Object.assign({ className: classes.item, onClick: () => fetchPlatform('') }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.navigationSettingsIconButton.platform", defaultMessage: "ui.navigationSettingsIconButton.platform" }) }), "platform")
168
186
  ]
169
187
  : []),
@@ -77,6 +77,7 @@ export default function NavigationSettingsIconButton(inProps) {
77
77
  const scUserContext = useSCUser();
78
78
  // MEMO
79
79
  const isAdmin = useMemo(() => UserUtils.isAdmin(scUserContext.user), [scUserContext.user]);
80
+ const isCommunityCreator = useMemo(() => UserUtils.isCommunityCreator(scUserContext.user), [scUserContext.user]);
80
81
  const isModerator = useMemo(() => UserUtils.isModerator(scUserContext.user), [scUserContext.user]);
81
82
  // HOOKS
82
83
  const theme = useTheme();
@@ -106,11 +107,24 @@ export default function NavigationSettingsIconButton(inProps) {
106
107
  window.open(platformUrl, '_blank').focus();
107
108
  });
108
109
  };
110
+ /**
111
+ * Handles preferences update
112
+ */
113
+ const handlePreferencesUpdate = () => {
114
+ PreferenceService.getAllPreferences().then((preferences) => {
115
+ const prefs = preferences['results'].reduce((obj, p) => (Object.assign(Object.assign({}, obj), { [`${p.section}.${p.name}`]: p })), {});
116
+ scPreferences.setPreferences(prefs);
117
+ });
118
+ };
109
119
  /**
110
120
  * Updates onBoarding dynamic preference
111
121
  */
112
122
  const showOnBoarding = () => {
113
- PreferenceService.updatePreferences({ [`${SCPreferenceName.ONBOARDING_HIDDEN}`]: false }).catch((e) => {
123
+ PreferenceService.updatePreferences({ [`${SCPreferenceName.ONBOARDING_HIDDEN}`]: false })
124
+ .then(() => {
125
+ handlePreferencesUpdate();
126
+ })
127
+ .catch((e) => {
114
128
  Logger.error(SCOPE_SC_UI, e);
115
129
  });
116
130
  };
@@ -132,7 +146,9 @@ export default function NavigationSettingsIconButton(inProps) {
132
146
  ...(isAdmin
133
147
  ? [
134
148
  _jsx(Divider, {}, "admin_divider"),
135
- preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] && preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && (_jsx(ListItem, Object.assign({ className: classes.item }, { children: _jsxs(ListItemButton, Object.assign({ onClick: showOnBoarding }, { children: [_jsx(FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), _jsx(ListItemIcon, { children: _jsx(Icon, { children: "magic_wand" }) })] })) }), "onboarding")),
149
+ isCommunityCreator &&
150
+ preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] &&
151
+ preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && (_jsx(ListItem, Object.assign({ className: classes.item }, { children: _jsxs(ListItemButton, Object.assign({ onClick: showOnBoarding }, { children: [_jsx(FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), _jsx(ListItemIcon, { children: _jsx(Icon, { children: "magic_wand" }) })] })) }), "onboarding")),
136
152
  _jsx(ListItem, Object.assign({ className: classes.item }, { children: _jsx(ListItemButton, Object.assign({ onClick: () => fetchPlatform('') }, { children: _jsx(FormattedMessage, { id: "ui.navigationSettingsIconButton.platform", defaultMessage: "ui.navigationSettingsIconButton.platform" }) })) }), "platform")
137
153
  ]
138
154
  : []),
@@ -161,7 +177,9 @@ export default function NavigationSettingsIconButton(inProps) {
161
177
  ...(isAdmin
162
178
  ? [
163
179
  _jsx(Divider, {}, "platform_divider"),
164
- preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] && preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && (_jsxs(MenuItem, Object.assign({ className: classes.item, onClick: showOnBoarding }, { children: [_jsx(FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), _jsx(ListItemIcon, { children: _jsx(Icon, { children: "magic_wand" }) })] }), "onboarding")),
180
+ isCommunityCreator &&
181
+ preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_ENABLED] &&
182
+ preferences[SCPreferences.CONFIGURATIONS_ONBOARDING_HIDDEN] && (_jsxs(MenuItem, Object.assign({ className: classes.item, onClick: showOnBoarding }, { children: [_jsx(FormattedMessage, { id: "ui.navigationSettingsIconButton.onboarding", defaultMessage: "ui.navigationSettingsIconButton.onboarding" }), _jsx(ListItemIcon, { children: _jsx(Icon, { children: "magic_wand" }) })] }), "onboarding")),
165
183
  _jsx(MenuItem, Object.assign({ className: classes.item, onClick: () => fetchPlatform('') }, { children: _jsx(FormattedMessage, { id: "ui.navigationSettingsIconButton.platform", defaultMessage: "ui.navigationSettingsIconButton.platform" }) }), "platform")
166
184
  ]
167
185
  : []),