@camunda/camunda-composite-components 0.2.11-rc.1 → 0.2.11-rc.3

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,10 +1,10 @@
1
- import React, { ComponentType, FC, PropsWithChildren } from "react";
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>;
9
- export declare function withHelpCenter<P>(Component: ComponentType<P>): ComponentType<P>;
10
10
  export declare const useC3HelpCenter: () => C3HelpCenterContextValue;
@@ -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,20 +6,23 @@ export const C3HelpCenterContext = React.createContext({
6
6
  });
7
7
  export const C3HelpCenterProvider = ({ children }) => {
8
8
  const [isHelpCenterOpen, setIsHelpCenterOpen] = useState(false);
9
- const openHelpCenter = () => {
10
- if (!isHelpCenterOpen)
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
- export function withHelpCenter(Component) {
20
- return function WithNamespace(props) {
21
- return (React.createElement(C3HelpCenterProvider, null,
22
- React.createElement(Component, { ...props })));
23
- };
24
- }
25
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
- React.useEffect(() => {
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) => {
@@ -1,4 +1,3 @@
1
1
  import { C3Navigation } from "./c3-navigation";
2
2
  import { withNotifications } from "./c3-notification-provider/c3-notification-provider";
3
- import { withHelpCenter } from "../c3-help-center/c3-help-center-provider";
4
- export default withNotifications(withHelpCenter(C3Navigation));
3
+ export default withNotifications(C3Navigation);
@@ -1,6 +1,7 @@
1
1
  import React, { useContext, useEffect, useState } from "react";
2
2
  import { C3ProfileProvider } from "./c3-profile-provider/c3-profile-provider";
3
3
  import { decodeJWT } from "./authToken";
4
+ import { C3HelpCenterProvider } from "../c3-help-center/c3-help-center-provider";
4
5
  export const C3UserConfigurationContext = React.createContext({
5
6
  stage: "dev",
6
7
  activeOrganizationId: "",
@@ -15,7 +16,8 @@ const C3UserConfigurationProvider = ({ children, ...config }) => {
15
16
  setDecodedToken(decodeJWT(config.userToken));
16
17
  }, [config.userToken]);
17
18
  return (React.createElement(C3UserConfigurationContext.Provider, { value: { ...config, decodedToken } },
18
- React.createElement(C3ProfileProvider, null, children)));
19
+ React.createElement(C3ProfileProvider, null,
20
+ React.createElement(C3HelpCenterProvider, null, children))));
19
21
  };
20
22
  export const useC3UserConfiguration = () => useContext(C3UserConfigurationContext);
21
23
  export default C3UserConfigurationProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/camunda-composite-components",
3
- "version": "0.2.11-rc.1",
3
+ "version": "0.2.11-rc.3",
4
4
  "scripts": {
5
5
  "clean": "rimraf lib/",
6
6
  "build": "yarn clean && tsc",