@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.
- package/lib/esm/components/c3-help-center/c3-help-center.js +7 -3
- package/lib/esm/components/c3-help-center/help-center.js +8 -1
- package/lib/esm/components/c3-user-configuration/c3-profile-provider/c3-profile-provider.d.ts +1 -0
- package/lib/esm/components/c3-user-configuration/c3-profile-provider/c3-profile-provider.js +10 -3
- package/package.json +1 -1
|
@@ -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 (
|
|
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" },
|
|
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
|
-
}, [
|
|
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 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
|
-
|
|
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);
|