diff --git a/frontend/src/app-components/widget/ChatWidget.tsx b/frontend/src/app-components/widget/ChatWidget.tsx new file mode 100644 index 00000000..f5c541dd --- /dev/null +++ b/frontend/src/app-components/widget/ChatWidget.tsx @@ -0,0 +1,48 @@ +/* + * Copyright © 2024 Hexastack. All rights reserved. + * + * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: + * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. + * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). + */ + +import { Avatar, Box } from "@mui/material"; +import UiChatWidget from "hexabot-widget/src/UiChatWidget"; +import { usePathname } from "next/navigation"; + +import { getAvatarSrc } from "@/components/inbox/helpers/mapMessages"; +import { useConfig } from "@/hooks/useConfig"; +import i18n from "@/i18n/config"; +import { EntityType, RouterType } from "@/services/types"; + +import { ChatWidgetHeader } from "./ChatWidgetHeader"; + +export const ChatWidget = () => { + const pathname = usePathname(); + const { apiUrl } = useConfig(); + const isVisualEditor = pathname === `/${RouterType.VISUAL_EDITOR}`; + + return ( + + ( + + )} + /> + + ); +}; diff --git a/frontend/src/app-components/widget/ChatWidgetHeader.tsx b/frontend/src/app-components/widget/ChatWidgetHeader.tsx new file mode 100644 index 00000000..347a93cd --- /dev/null +++ b/frontend/src/app-components/widget/ChatWidgetHeader.tsx @@ -0,0 +1,25 @@ +/* + * Copyright © 2024 Hexastack. All rights reserved. + * + * Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms: + * 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission. + * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). + */ + +import ChatIcon from "@mui/icons-material/Chat"; +import { Box, Typography } from "@mui/material"; + +import { useTranslate } from "@/hooks/useTranslate"; + +export const ChatWidgetHeader = () => { + const { t } = useTranslate(); + + return ( + + + + {t("title.live_chat_tester")} + + + ); +}; diff --git a/frontend/src/layout/index.tsx b/frontend/src/layout/index.tsx index d3737016..2619bc34 100644 --- a/frontend/src/layout/index.tsx +++ b/frontend/src/layout/index.tsx @@ -9,6 +9,8 @@ import { BoxProps, Grid } from "@mui/material"; import { useState } from "react"; +import { ChatWidget } from "@/app-components/widget/ChatWidget"; + import { Content } from "./content"; import { Header } from "./Header"; import { VerticalMenu } from "./VerticalMenu"; @@ -42,6 +44,7 @@ export const Layout: React.FC = ({ {children} + ); }; diff --git a/frontend/src/pages/visual-editor.tsx b/frontend/src/pages/visual-editor.tsx index 107959b9..45fd4194 100644 --- a/frontend/src/pages/visual-editor.tsx +++ b/frontend/src/pages/visual-editor.tsx @@ -6,52 +6,15 @@ * 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file). */ -import ChatIcon from "@mui/icons-material/Chat"; -import { Avatar, Box, Typography } from "@mui/material"; -import UiChatWidget from "hexabot-widget/src/UiChatWidget"; import { ReactElement } from "react"; -import { getAvatarSrc } from "@/components/inbox/helpers/mapMessages"; import { VisualEditor } from "@/components/visual-editor"; -import { useConfig } from "@/hooks/useConfig"; -import { useTranslate } from "@/hooks/useTranslate"; -import i18n from "@/i18n/config"; import { Layout } from "@/layout"; -import { EntityType } from "@/services/types"; -const CustomWidgetHeader = () => { - const { t } = useTranslate(); - - return ( - - - - {t("title.live_chat_tester")} - - - ); -}; const VisualEditorPage = () => { - const { apiUrl } = useConfig(); - return ( <> - ( - - )} - /> ); };