@camunda/camunda-composite-components 0.2.11-rc.2 → 0.2.11
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.
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React, { FC, PropsWithChildren } from "react";
|
|
2
2
|
export type C3HelpCenterContextValue = {
|
|
3
|
-
openHelpCenter: () => void;
|
|
3
|
+
openHelpCenter: (showTabId?: string) => void;
|
|
4
4
|
setIsHelpCenterOpen: (isOpen: boolean) => void;
|
|
5
5
|
isHelpCenterOpen: boolean;
|
|
6
|
+
showTabId?: string | null;
|
|
6
7
|
};
|
|
7
8
|
export declare const C3HelpCenterContext: React.Context<C3HelpCenterContextValue>;
|
|
8
9
|
export declare const C3HelpCenterProvider: FC<PropsWithChildren>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
2
|
export const C3HelpCenterContext = React.createContext({
|
|
3
3
|
openHelpCenter: () => undefined,
|
|
4
4
|
setIsHelpCenterOpen: () => undefined,
|
|
@@ -6,14 +6,23 @@ export const C3HelpCenterContext = React.createContext({
|
|
|
6
6
|
});
|
|
7
7
|
export const C3HelpCenterProvider = ({ children }) => {
|
|
8
8
|
const [isHelpCenterOpen, setIsHelpCenterOpen] = useState(false);
|
|
9
|
-
const
|
|
10
|
-
|
|
9
|
+
const [activeTabId, setActiveTabId] = useState(null);
|
|
10
|
+
const openHelpCenter = (showTabId) => {
|
|
11
|
+
if (!isHelpCenterOpen) {
|
|
11
12
|
setIsHelpCenterOpen(true);
|
|
13
|
+
}
|
|
14
|
+
if (showTabId)
|
|
15
|
+
setActiveTabId(showTabId);
|
|
12
16
|
};
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (!isHelpCenterOpen)
|
|
19
|
+
setActiveTabId(null);
|
|
20
|
+
}, [isHelpCenterOpen]);
|
|
13
21
|
return (React.createElement(C3HelpCenterContext.Provider, { value: {
|
|
14
22
|
openHelpCenter,
|
|
15
23
|
setIsHelpCenterOpen,
|
|
16
24
|
isHelpCenterOpen,
|
|
25
|
+
showTabId: activeTabId,
|
|
17
26
|
} }, children));
|
|
18
27
|
};
|
|
19
28
|
export const useC3HelpCenter = () => React.useContext(C3HelpCenterContext);
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Button, Link, Loading, ModalBody, ModalFooter, ModalHeader, SideNav, SideNavItems, SideNavMenuItem, Stack, } from "@carbon/react";
|
|
2
2
|
import { Undo } from "@carbon/react/icons";
|
|
3
|
-
import React, { useState } from "react";
|
|
3
|
+
import React, { useEffect, useState } from "react";
|
|
4
4
|
import { Feedback } from "./tabs/feedback";
|
|
5
5
|
import { TabContent } from "./tabs/tabContent";
|
|
6
6
|
import { getTiles } from "../../api/help-center";
|
|
7
7
|
import { useC3UserConfiguration } from "../c3-user-configuration/c3-user-configuration-provider";
|
|
8
8
|
import { body01, headings } from "../styles";
|
|
9
9
|
import styled from "styled-components";
|
|
10
|
+
import { useC3HelpCenter } from "./c3-help-center-provider";
|
|
10
11
|
export const StyledModalHeader = styled(ModalHeader) `
|
|
11
12
|
${headings}
|
|
12
13
|
`;
|
|
@@ -23,6 +24,7 @@ export const HelpCenter = ({ configuration, organization, persona, email, audien
|
|
|
23
24
|
const { tabs } = configuration;
|
|
24
25
|
const firstTab = tabs[0].id;
|
|
25
26
|
const { userToken: token } = useC3UserConfiguration() || {};
|
|
27
|
+
const { showTabId } = useC3HelpCenter();
|
|
26
28
|
const [activeTab, setActiveTab] = useState(firstTab);
|
|
27
29
|
const [tabTiles, setTabTiles] = useState({});
|
|
28
30
|
const [isLoadingTiles, setIsLoadingTiles] = useState(false);
|
|
@@ -52,9 +54,14 @@ export const HelpCenter = ({ configuration, organization, persona, email, audien
|
|
|
52
54
|
setIsLoadingTiles(false);
|
|
53
55
|
})();
|
|
54
56
|
}, [token, persona, audience, organization, clusters, tabs]);
|
|
55
|
-
|
|
57
|
+
useEffect(() => {
|
|
56
58
|
setActiveTab(initialTab ?? firstTab);
|
|
57
59
|
}, [initialTab]);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (showTabId) {
|
|
62
|
+
setActiveTab(showTabId);
|
|
63
|
+
}
|
|
64
|
+
}, [showTabId]);
|
|
58
65
|
if (activeTab === "feedback") {
|
|
59
66
|
header = "Share your feedback";
|
|
60
67
|
content = (React.createElement(Feedback, { audience: audience, theme: theme, mixpanelTrack: mixpanelTrack, setHeader: (head) => {
|