Przeglądaj źródła

track project id in intercom (#3941)

Feroze Mohideen 2 lat temu
rodzic
commit
0056bf8dcd

+ 33 - 16
dashboard/src/lib/hooks/useIntercom.ts

@@ -1,19 +1,36 @@
 // useIntercom contains all the utility methods related to the Intercom chat widget
-export const useIntercom = () => {
-    const showIntercomWithMessageAfterDelay = (message: string, delaySeconds: number) => {
-        const func = () => {
-            if (typeof window.Intercom === 'function') {
-                window.Intercom('showNewMessage', message);
-            }
-        }
-        setTimeout(func, delaySeconds * 1000);
-    }
+export const useIntercom = (): {
+  showIntercomWithMessage: ({
+    message,
+    delaySeconds,
+  }: {
+    message: string;
+    delaySeconds?: number | undefined;
+  }) => void;
+} => {
+  const showIntercomWithMessageAfterDelay = (
+    message: string,
+    delaySeconds: number
+  ): void => {
+    const func = (): void => {
+      if (typeof window.Intercom === "function") {
+        window.Intercom("showNewMessage", message);
+      }
+    };
+    setTimeout(func, delaySeconds * 1000);
+  };
 
-    const showIntercomWithMessage = ({ message, delaySeconds = 3 }: { message: string, delaySeconds?: number }) => {
-        showIntercomWithMessageAfterDelay(message, delaySeconds);
-    }
+  const showIntercomWithMessage = ({
+    message,
+    delaySeconds = 3,
+  }: {
+    message: string;
+    delaySeconds?: number;
+  }): void => {
+    showIntercomWithMessageAfterDelay(message, delaySeconds);
+  };
 
-    return {
-        showIntercomWithMessage,
-    }
-}
+  return {
+    showIntercomWithMessage,
+  };
+};

+ 3 - 0
dashboard/src/shared/Context.tsx

@@ -126,6 +126,9 @@ class ContextProvider extends Component<PropsType, StateType> {
       this.setState({ currentProject }, () => {
         callback && callback();
       });
+      if (window.intercomSettings) {
+        window.intercomSettings["Project ID"] = currentProject.id;
+      }
     },
     projects: [],
     setProjects: (projects: ProjectListType[]) => {