@camunda/camunda-composite-components 0.2.16-rc.3 → 0.2.16-rc.4

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.
@@ -11,7 +11,7 @@ import { useC3HelpCenter } from "./c3-help-center-provider";
11
11
  export const C3HelpCenter = ({ autoStartSurvey, origin, flags, onRequestClose, mixpanelTrack, onRequestOpen, theme, onPersonaChange, activeTab, }) => {
12
12
  const { isHelpCenterOpen: isOpen, setIsHelpCenterOpen } = useC3HelpCenter();
13
13
  const { userToken, decodedToken, activeOrganizationId, handleTheme, decodedAudience, } = useC3UserConfiguration() || {};
14
- const { theme: themeConfig, isEnabled, activeOrg, clusters } = useC3Profile();
14
+ const { theme: themeConfig, isEnabled, activeOrg, clusters, reloadClusters, } = useC3Profile();
15
15
  const themeHandlingEnabled = isEnabled && !!handleTheme && !!themeConfig;
16
16
  const themeRef = useRef();
17
17
  const [resolvedTheme, setResolvedTheme] = useState(defaultTheme);
@@ -20,6 +20,7 @@ export const C3HelpCenter = ({ autoStartSurvey, origin, flags, onRequestClose, m
20
20
  const [helpCenterConfig, setHelpCenterConfig] = useState(defaultHelpCenterConfig);
21
21
  const [email, setEmail] = useState("");
22
22
  const [showSurvey, setShowSurvey] = useState(autoStartSurvey);
23
+ const shouldShowSurvey = showSurvey || !persona?.wasShown;
23
24
  useEffect(() => {
24
25
  const updateResolvedTheme = ({ matches }) => {
25
26
  if (themeRef.current === "system") {
@@ -63,7 +64,7 @@ export const C3HelpCenter = ({ autoStartSurvey, origin, flags, onRequestClose, m
63
64
  setEmail(meta.email);
64
65
  if (userId)
65
66
  setUserId(userId);
66
- if (autoStartSurvey && !(persona?.wasShown ?? false)) {
67
+ if (shouldShowSurvey) {
67
68
  setShowSurvey(true);
68
69
  setIsHelpCenterOpen(true);
69
70
  onRequestOpen?.();
@@ -77,11 +78,14 @@ export const C3HelpCenter = ({ autoStartSurvey, origin, flags, onRequestClose, m
77
78
  if (!userToken || !decodedAudience)
78
79
  return;
79
80
  fetchConfig();
81
+ reloadClusters();
80
82
  }, [persona?.nextStep]);
81
83
  React.useEffect(() => {
82
84
  const tabs = helpCenterConfig.tabs;
83
85
  const firstTab = tabs[0].id;
84
86
  if (isOpen) {
87
+ if (shouldShowSurvey)
88
+ setShowSurvey(true);
85
89
  mixpanelTrack?.(`helpcenter:open`, {
86
90
  to: activeTab ?? firstTab,
87
91
  from: origin,
@@ -160,5 +164,5 @@ export const C3HelpCenter = ({ autoStartSurvey, origin, flags, onRequestClose, m
160
164
  onRequestClose?.();
161
165
  };
162
166
  return (React.createElement(Layer, null,
163
- React.createElement(ComposedModal, { open: isOpen, size: "lg", onClose: closeFn, className: "help-center", "aria-label": "HelpCenter" }, showSurvey || !persona || !persona.wasShown ? (React.createElement(C3OnboardingSurvey, { personaCallback: personaCallback, persona: persona, mixpanelTrack: mixpanelTrack, onRequestClose: closeFn, onRequestSkip: onRequestSkipSurvey, theme: resolvedTheme, origin: origin, modal: true })) : (React.createElement(HelpCenter, { configuration: helpCenterConfig, persona: persona, audience: decodedAudience || "", organization: activeOrg, clusters: clusters || [], flags: flags, onRequestResumeSurvey: onRequestResumeSurvey, onRequestRetakeSurvey: onRequestRetakeSurvey, onRequestClose: closeFn, mixpanelTrack: mixpanelTrack, email: email, theme: resolvedTheme, origin: origin, initialTab: activeTab })))));
167
+ React.createElement(ComposedModal, { open: isOpen, size: "lg", onClose: closeFn, className: "help-center", "aria-label": "HelpCenter" }, shouldShowSurvey ? (React.createElement(C3OnboardingSurvey, { personaCallback: personaCallback, persona: persona, mixpanelTrack: mixpanelTrack, onRequestClose: closeFn, onRequestSkip: onRequestSkipSurvey, theme: resolvedTheme, origin: origin, modal: true })) : (React.createElement(HelpCenter, { configuration: helpCenterConfig, persona: persona, audience: decodedAudience || "", organization: activeOrg, clusters: clusters || [], flags: flags, onRequestResumeSurvey: onRequestResumeSurvey, onRequestRetakeSurvey: onRequestRetakeSurvey, onRequestClose: closeFn, mixpanelTrack: mixpanelTrack, email: email, theme: resolvedTheme, origin: origin, initialTab: activeTab })))));
164
168
  };
@@ -53,7 +53,14 @@ export const HelpCenter = ({ configuration, organization, persona, email, audien
53
53
  setTabTiles(tiles);
54
54
  setIsLoadingTiles(false);
55
55
  })();
56
- }, [token, persona, audience, organization, clusters, tabs]);
56
+ }, [
57
+ token,
58
+ JSON.stringify(persona),
59
+ audience,
60
+ JSON.stringify(organization),
61
+ JSON.stringify(clusters),
62
+ JSON.stringify(tabs),
63
+ ]);
57
64
  useEffect(() => {
58
65
  setActiveTab(initialTab ?? firstTab);
59
66
  }, [initialTab]);
@@ -9,6 +9,7 @@ export type C3ProfileContextValue = {
9
9
  orgs: Organization[] | null;
10
10
  activeOrg: Organization | null;
11
11
  clusters: Cluster[] | null;
12
+ reloadClusters: () => void;
12
13
  resolvedTheme: ResolvedTheme;
13
14
  onThemeChange: (newTheme: Theme) => void;
14
15
  };
@@ -9,6 +9,7 @@ export const C3ProfileContext = createContext({
9
9
  orgs: null,
10
10
  activeOrg: null,
11
11
  clusters: null,
12
+ reloadClusters: () => undefined,
12
13
  resolvedTheme: defaultTheme,
13
14
  onThemeChange: () => undefined,
14
15
  });
@@ -20,6 +21,13 @@ export const C3ProfileProvider = ({ children }) => {
20
21
  const [orgs, setOrgs] = useState(null);
21
22
  const [activeOrg, setActiveOrg] = useState(null);
22
23
  const [clusters, setClusters] = useState(null);
24
+ const loadClusters = () => {
25
+ if (!config.userToken || !decodedAudience || !config.activeOrganizationId)
26
+ return;
27
+ getClusters(decodedAudience, config.userToken, config.activeOrganizationId).then((res) => {
28
+ setClusters(res);
29
+ });
30
+ };
23
31
  useEffect(() => {
24
32
  if (!decodedToken || !decodedAudience || !config.activeOrganizationId) {
25
33
  return;
@@ -28,9 +36,7 @@ export const C3ProfileProvider = ({ children }) => {
28
36
  setOrgs(res);
29
37
  setActiveOrg(res?.find((org) => org.uuid === config.activeOrganizationId) || null);
30
38
  });
31
- getClusters(decodedAudience, config.userToken, config.activeOrganizationId).then((res) => {
32
- setClusters(res);
33
- });
39
+ loadClusters();
34
40
  }, [config?.activeOrganizationId, decodedToken, decodedAudience]);
35
41
  useEffect(() => {
36
42
  const updateSystemTheme = ({ matches }) => {
@@ -71,6 +77,7 @@ export const C3ProfileProvider = ({ children }) => {
71
77
  orgs,
72
78
  activeOrg,
73
79
  clusters,
80
+ reloadClusters: loadClusters,
74
81
  onThemeChange,
75
82
  } },
76
83
  React.createElement(CarbonThemeProvider, null, children))) : (children);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/camunda-composite-components",
3
- "version": "0.2.16-rc.3",
3
+ "version": "0.2.16-rc.4",
4
4
  "scripts": {
5
5
  "clean": "rimraf lib/",
6
6
  "build": "yarn clean && tsc",