From f17e22ca490e81a577ac28e21ccbe38e98261cbb Mon Sep 17 00:00:00 2001
From: Antoine Dewez <44063631+Zewed@users.noreply.github.com>
Date: Sun, 21 Jan 2024 22:36:06 -0800
Subject: [PATCH 01/14] fix(frontend): remove actions modal (#2054)
# Description
Please include a summary of the changes and the related issue. Please
also include relevant motivation and context.
## Checklist before requesting a review
Please delete options that are not relevant.
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged
## Screenshots (if appropriate):
---
.../components/ActionsModal/ActionsModal.tsx | 48 -------
.../ChatHistoryButton/ChatHistoryButton.tsx | 34 -----
.../ChatsList/__tests__/ChatsList.test.tsx | 123 ------------------
.../components/WelcomeChat/WelcomeChat.tsx | 19 ---
.../WelcomeChat/hooks/useWelcomeChat.ts | 28 ----
.../ChatsList/components/WelcomeChat/index.ts | 1 -
.../components/ChatsList/index.tsx | 21 ---
.../components/ConfigModal/ConfigModal.tsx | 83 ------------
.../ConfigModal/hooks/useConfigModal.ts | 78 -----------
.../components/ConfigModal/index.ts | 1 -
.../FeedCardTrigger/FeedCardTrigger.tsx | 21 ---
.../hooks/useFeedCardTrigger.ts | 27 ----
.../hooks/useFeedCardTriggerUtils.ts | 27 ----
.../components/FeedCardTrigger/index.ts | 1 -
.../components/SelectedBrainTag.tsx | 18 ---
.../ActionsBar/components/ChatInput/index.tsx | 3 -
.../components/BrainsManagementButton.tsx | 4 +-
.../Menu/components/DiscussionButton.tsx | 4 +-
.../Menu/components/ExplorerButton.tsx | 4 +-
.../Menu/components/MenuButton.tsx} | 4 +-
.../Menu/components/ParametersButton.tsx | 4 +-
.../Menu/components/ProfileButton.tsx | 4 +-
.../Menu/components/UpgradeToPlus.tsx | 4 +-
23 files changed, 14 insertions(+), 547 deletions(-)
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/ActionsModal.tsx
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/ChatHistoryButton.tsx
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/__tests__/ChatsList.test.tsx
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/WelcomeChat.tsx
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/hooks/useWelcomeChat.ts
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/index.ts
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/index.tsx
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/ConfigModal.tsx
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/hooks/useConfigModal.ts
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/index.ts
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/FeedCardTrigger.tsx
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTrigger.ts
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTriggerUtils.ts
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/index.ts
delete mode 100644 frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/SelectedBrainTag.tsx
rename frontend/{app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button.tsx => lib/components/Menu/components/MenuButton.tsx} (91%)
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/ActionsModal.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/ActionsModal.tsx
deleted file mode 100644
index db9bed1de..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/ActionsModal.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { PopoverAnchor } from "@radix-ui/react-popover";
-import { useState } from "react";
-import { LuPlusCircle, LuXCircle } from "react-icons/lu";
-
-import Button from "@/lib/components/ui/Button";
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/lib/components/ui/Popover";
-
-import { ChatHistoryButton } from "./components/ChatHistoryButton/ChatHistoryButton";
-import { ConfigModal } from "./components/ConfigModal";
-import { FeedCardTrigger } from "./components/FeedCardTrigger";
-import { SelectedBrainTag } from "./components/SelectedBrainTag";
-
-export const ActionsModal = (): JSX.Element => {
- const [isActionsModalOpened, setIsActionsModalOpened] = useState(false);
-
- const Icon = isActionsModalOpened ? LuXCircle : LuPlusCircle;
-
- return (
-
-
setIsActionsModalOpened(isOpened)}
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/ChatHistoryButton.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/ChatHistoryButton.tsx
deleted file mode 100644
index 8a0f54fbb..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/ChatHistoryButton.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { useTranslation } from "react-i18next";
-import { LuChevronRight, LuHistory } from "react-icons/lu";
-
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/lib/components/ui/Popover";
-
-import { ChatsList } from "./components/ChatsList";
-import { Button } from "../Button";
-
-export const ChatHistoryButton = (): JSX.Element => {
- const { t } = useTranslation("chat");
-
- return (
-
-
- }
- endIcon={}
- />
-
-
-
-
-
- );
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/__tests__/ChatsList.test.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/__tests__/ChatsList.test.tsx
deleted file mode 100644
index 6f8792908..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/__tests__/ChatsList.test.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-/* eslint-disable max-lines */
-import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
-import { render, screen } from "@testing-library/react";
-import { afterEach, describe, expect, it, vi } from "vitest";
-
-import {
- BrainContextMock,
- BrainProviderMock,
-} from "@/lib/context/BrainProvider/mocks/BrainProviderMock";
-import {
- ChatContextMock,
- ChatProviderMock,
-} from "@/lib/context/ChatProvider/mocks/ChatProviderMock";
-import { KnowledgeToFeedProvider } from "@/lib/context/KnowledgeToFeedProvider";
-import { MenuProvider } from "@/lib/context/MenuProvider/Menu-provider";
-import { SupabaseContextMock } from "@/lib/context/SupabaseProvider/mocks/SupabaseProviderMock";
-
-vi.mock("@/lib/context/SupabaseProvider/supabase-provider", () => ({
- SupabaseContext: SupabaseContextMock,
-}));
-
-import { ChatsList } from "../index";
-
-const queryClient = new QueryClient();
-
-vi.mock("next/navigation", async () => {
- const actual = await vi.importActual(
- "next/navigation"
- );
-
- return { ...actual, useRouter: () => ({ replace: vi.fn() }) };
-});
-
-vi.mock("@/lib/context/ChatsProvider/hooks/useChatsContext", () => ({
- useChatsContext: () => ({
- allChats: [
- {
- chat_id: 1,
- name: "Chat 1",
- creation_time: new Date().toISOString(),
- },
- {
- chat_id: 2,
- name: "Chat 2",
- creation_time: new Date().toISOString(),
- },
- ],
-
- deleteChat: vi.fn(),
- setAllChats: vi.fn(),
- }),
-}));
-
-vi.mock("@/lib/hooks", async () => {
- const actual = await vi.importActual(
- "@/lib/hooks"
- );
-
- return {
- ...actual,
- useAxios: () => ({
- axiosInstance: vi.fn(),
- }),
- };
-});
-vi.mock("@/lib/context/ChatProvider/ChatProvider", () => ({
- ChatContext: ChatContextMock,
-}));
-vi.mock("@/lib/context/BrainProvider/brain-provider", () => ({
- BrainContext: BrainContextMock,
-}));
-
-const mockUseSupabase = vi.fn(() => ({
- session: {
- user: { email: "email@domain.com" },
- },
-}));
-
-vi.mock("@/lib/context/SupabaseProvider", () => ({
- useSupabase: () => mockUseSupabase(),
-}));
-
-describe("ChatsList", () => {
- afterEach(() => {
- vi.restoreAllMocks();
- });
-
- it("should render correctly", () => {
- const { getByTestId } = render(
-
-
-
-
-
-
-
-
-
-
-
- );
- const chatsList = getByTestId("chats-list");
- expect(chatsList).toBeDefined();
- });
-
- it("renders the chats list with correct number of items", () => {
- render(
-
-
-
-
-
-
-
-
-
-
-
- );
- const chatItems = screen.getAllByTestId("chats-list-item");
- expect(chatItems).toHaveLength(2);
- });
-});
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/WelcomeChat.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/WelcomeChat.tsx
deleted file mode 100644
index 31fe942a9..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/WelcomeChat.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { ChatsListItem } from "@/lib/components/ChatsListItem";
-import { useOnboardingTracker } from "@/lib/hooks/useOnboardingTracker";
-
-import { useWelcomeChat } from "./hooks/useWelcomeChat";
-
-export const WelcomeChat = (): JSX.Element => {
- const { chat, handleWelcomeChatDelete } = useWelcomeChat();
- const { trackOnboardingEvent } = useOnboardingTracker();
-
- return (
- trackOnboardingEvent("WELCOME_CHAT_CLICKED")}>
- void handleWelcomeChatDelete()}
- editable={false}
- chat={chat}
- />
-
- );
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/hooks/useWelcomeChat.ts b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/hooks/useWelcomeChat.ts
deleted file mode 100644
index d879a8d4d..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/hooks/useWelcomeChat.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { useTranslation } from "react-i18next";
-
-import { ChatEntity } from "@/app/chat/[chatId]/types";
-import { useOnboarding } from "@/lib/hooks/useOnboarding";
-import { useOnboardingTracker } from "@/lib/hooks/useOnboardingTracker";
-
-// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
-export const useWelcomeChat = () => {
- const { t } = useTranslation("chat");
- const { updateOnboarding } = useOnboarding();
- const { trackOnboardingEvent } = useOnboardingTracker();
-
- const chat: ChatEntity = {
- chat_name: t("welcome"),
- // @ts-expect-error because we don't need to pass all the props
- chat_id: "",
- };
-
- const handleWelcomeChatDelete = () => {
- trackOnboardingEvent("WELCOME_CHAT_DELETED");
- void updateOnboarding({ onboarding_a: false });
- };
-
- return {
- chat,
- handleWelcomeChatDelete,
- };
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/index.ts b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/index.ts
deleted file mode 100644
index 35b1f6995..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/components/WelcomeChat/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./WelcomeChat";
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/index.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/index.tsx
deleted file mode 100644
index 286fc67e5..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ChatHistoryButton/components/ChatsList/index.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-"use client";
-
-import { ChatHistory } from "@/lib/components/ChatHistory/ChatHistory";
-import { useOnboarding } from "@/lib/hooks/useOnboarding";
-
-import { WelcomeChat } from "./components/WelcomeChat";
-
-export const ChatsList = (): JSX.Element => {
- const { shouldDisplayWelcomeChat } = useOnboarding();
-
- return (
-
- {shouldDisplayWelcomeChat && (
-
-
-
- )}
-
-
- );
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/ConfigModal.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/ConfigModal.tsx
deleted file mode 100644
index a78b29dd5..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/ConfigModal.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-import { useTranslation } from "react-i18next";
-import { LuChevronRight, LuSettings } from "react-icons/lu";
-import { MdCheck } from "react-icons/md";
-
-import { Modal } from "@/lib/components/ui/Modal";
-import { defineMaxTokens } from "@/lib/helpers/defineMaxTokens";
-
-import { useConfigModal } from "./hooks/useConfigModal";
-import { Button } from "../Button";
-
-export const ConfigModal = (): JSX.Element => {
- const {
- handleSubmit,
- isConfigModalOpen,
- setIsConfigModalOpen,
- register,
- maxTokens,
- model,
- accessibleModels,
- } = useConfigModal();
- const { t } = useTranslation(["config", "chat"]);
-
- return (
- }
- endIcon={}
- className="w-full"
- />
- }
- title="Chat configuration"
- desc="Adjust your chat settings"
- isOpen={isConfigModalOpen}
- setOpen={setIsConfigModalOpen}
- CloseTrigger={}
- >
-
-
- );
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/hooks/useConfigModal.ts b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/hooks/useConfigModal.ts
deleted file mode 100644
index 176bcef2c..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/hooks/useConfigModal.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-/* eslint-disable max-lines */
-import { useCallback, useEffect, useState } from "react";
-import { useForm } from "react-hook-form";
-
-import { useLocalStorageChatConfig } from "@/app/chat/[chatId]/hooks/useLocalStorageChatConfig";
-import { saveChatsConfigInLocalStorage } from "@/lib/api/chat/chat.local";
-import { ChatConfig } from "@/lib/context/ChatProvider/types";
-import { getAccessibleModels } from "@/lib/helpers/getAccessibleModels";
-import { useToast } from "@/lib/hooks";
-import { useUserData } from "@/lib/hooks/useUserData";
-
-// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
-export const useConfigModal = () => {
- const { publish } = useToast();
- const [isConfigModalOpen, setIsConfigModalOpen] = useState(false);
- const { chatConfig } = useLocalStorageChatConfig();
- const { userData } = useUserData();
-
- const { register, watch, setValue } = useForm({
- defaultValues: {
- model: chatConfig.model,
- temperature: chatConfig.temperature ?? 0,
- maxTokens: chatConfig.maxTokens ?? 3000,
- },
- });
-
- const model = watch("model");
-
- const temperature = watch("temperature");
- const maxTokens = watch("maxTokens");
-
- const accessibleModels = getAccessibleModels({
- userData,
- });
-
- useEffect(() => {
- if (chatConfig.model !== undefined) {
- setValue("model", chatConfig.model);
- }
- if (chatConfig.temperature !== undefined) {
- setValue("temperature", chatConfig.temperature);
- }
- if (chatConfig.maxTokens !== undefined) {
- setValue("maxTokens", chatConfig.maxTokens);
- }
- }, [chatConfig.maxTokens, chatConfig.model, chatConfig.temperature]);
-
- const handleSubmit = useCallback(() => {
- try {
- saveChatsConfigInLocalStorage({
- maxTokens,
- model: model.length > 0 ? model : undefined,
- temperature,
- });
-
- publish({
- variant: "success",
- text: "Chat config successfully updated",
- });
- } catch (err) {
- publish({
- variant: "danger",
- text: "An error occurred while updating chat config",
- });
- }
- }, [maxTokens, model, publish, temperature]);
-
- return {
- isConfigModalOpen,
- setIsConfigModalOpen,
- handleSubmit,
- register,
- model,
- temperature,
- maxTokens,
- accessibleModels,
- };
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/index.ts b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/index.ts
deleted file mode 100644
index 4c07388b5..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/ConfigModal/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./ConfigModal";
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/FeedCardTrigger.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/FeedCardTrigger.tsx
deleted file mode 100644
index a7935761c..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/FeedCardTrigger.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { LuChevronRight } from "react-icons/lu";
-
-import { useKnowledgeToFeedContext } from "@/lib/context/KnowledgeToFeedProvider/hooks/useKnowledgeToFeedContext";
-
-import { useFeedCardTrigger } from "./hooks/useFeedCardTrigger";
-import { Button } from "../Button";
-
-export const FeedCardTrigger = (): JSX.Element => {
- const { setShouldDisplayFeedCard } = useKnowledgeToFeedContext();
- const { label, Icon } = useFeedCardTrigger();
-
- return (
- }
- endIcon={}
- className="w-full"
- onClick={() => setShouldDisplayFeedCard(true)}
- />
- );
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTrigger.ts b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTrigger.ts
deleted file mode 100644
index 0c27a468d..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTrigger.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { useTranslation } from "react-i18next";
-import { LuFilePlus } from "react-icons/lu";
-
-import { useBrainContext } from "@/lib/context/BrainProvider/hooks/useBrainContext";
-
-import { useFeedCardTriggerUtils } from "./useFeedCardTriggerUtils";
-
-// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
-export const useFeedCardTrigger = () => {
- const { t } = useTranslation(["chat", "brain"]);
-
- const feedCardButtonDefaultLabel = t("chat:add_document");
- const feedCardButtonDefaultIcon = LuFilePlus;
- const { brainTypeToIcon, brainTypeToLabel } = useFeedCardTriggerUtils();
- const { currentBrain } = useBrainContext();
-
- const isBrainTypeDefined = currentBrain?.brain_type !== undefined;
-
- return {
- label: isBrainTypeDefined
- ? brainTypeToLabel[currentBrain.brain_type]
- : feedCardButtonDefaultLabel,
- Icon: isBrainTypeDefined
- ? brainTypeToIcon[currentBrain.brain_type]
- : feedCardButtonDefaultIcon,
- };
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTriggerUtils.ts b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTriggerUtils.ts
deleted file mode 100644
index 82d0a129d..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/hooks/useFeedCardTriggerUtils.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { useTranslation } from "react-i18next";
-import { IconType } from "react-icons/lib";
-import { LuBot, LuFilePlus, LuUnlock } from "react-icons/lu";
-
-import { BrainType } from "@/lib/types/brainConfig";
-
-// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
-export const useFeedCardTriggerUtils = () => {
- const { t } = useTranslation(["chat", "brain"]);
-
- const brainTypeToLabel: Record = {
- doc: t("chat:add_document"),
- api: t("brain:update_secrets_button"),
- composite: t("brain:manage_brain"),
- };
-
- const brainTypeToIcon: Record = {
- doc: LuFilePlus,
- api: LuUnlock,
- composite: LuBot,
- };
-
- return {
- brainTypeToIcon,
- brainTypeToLabel,
- };
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/index.ts b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/index.ts
deleted file mode 100644
index f8603fb0b..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/FeedCardTrigger/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from "./FeedCardTrigger";
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/SelectedBrainTag.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/SelectedBrainTag.tsx
deleted file mode 100644
index 1499edb7b..000000000
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/SelectedBrainTag.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Fragment } from "react";
-
-import { useBrainContext } from "@/lib/context/BrainProvider/hooks/useBrainContext";
-
-export const SelectedBrainTag = (): JSX.Element => {
- const { currentBrain } = useBrainContext();
- if (currentBrain === undefined) {
- return ;
- }
-
- return (
-
-
- #{currentBrain.name}
-
-
- );
-};
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/index.tsx b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/index.tsx
index ca7547aed..55fb7d5e8 100644
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/index.tsx
+++ b/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/index.tsx
@@ -4,7 +4,6 @@ import { useTranslation } from "react-i18next";
import Button from "@/lib/components/ui/Button";
import { OnboardingQuestions } from "./components";
-import { ActionsModal } from "./components/ActionsModal/ActionsModal";
import { ChatEditor } from "./components/ChatEditor/ChatEditor";
import { useChatInput } from "./hooks/useChatInput";
@@ -26,7 +25,6 @@ export const ChatInput = (): JSX.Element => {
}}
className="sticky bottom-0 bg-white dark:bg-black w-full flex items-center gap-2 z-20 p-2"
>
-
{
? t("thinking", { ns: "chat" })
: t("chat", { ns: "chat" })}
-
diff --git a/frontend/lib/components/Menu/components/BrainsManagementButton.tsx b/frontend/lib/components/Menu/components/BrainsManagementButton.tsx
index 8e6ee4df5..6c444ce38 100644
--- a/frontend/lib/components/Menu/components/BrainsManagementButton.tsx
+++ b/frontend/lib/components/Menu/components/BrainsManagementButton.tsx
@@ -3,7 +3,7 @@ import { usePathname } from "next/navigation";
import { useTranslation } from "react-i18next";
import { LuBrain, LuChevronRight } from "react-icons/lu";
-import { Button } from "@/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button";
+import { MenuButton } from "@/lib/components/Menu/components/MenuButton";
import { cn } from "@/lib/utils";
export const BrainsManagementButton = (): JSX.Element => {
@@ -14,7 +14,7 @@ export const BrainsManagementButton = (): JSX.Element => {
return (
- }
endIcon={}
diff --git a/frontend/lib/components/Menu/components/DiscussionButton.tsx b/frontend/lib/components/Menu/components/DiscussionButton.tsx
index adb7aed26..378de38b2 100644
--- a/frontend/lib/components/Menu/components/DiscussionButton.tsx
+++ b/frontend/lib/components/Menu/components/DiscussionButton.tsx
@@ -3,7 +3,7 @@ import { usePathname } from "next/navigation";
import { useTranslation } from "react-i18next";
import { LuChevronRight, LuSearch } from "react-icons/lu";
-import { Button } from "@/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button";
+import { MenuButton } from "@/lib/components/Menu/components/MenuButton";
import { cn } from "@/lib/utils";
export const DiscussionButton = (): JSX.Element => {
@@ -13,7 +13,7 @@ export const DiscussionButton = (): JSX.Element => {
return (
- }
endIcon={}
diff --git a/frontend/lib/components/Menu/components/ExplorerButton.tsx b/frontend/lib/components/Menu/components/ExplorerButton.tsx
index 2f1b53b0d..c2893a8dc 100644
--- a/frontend/lib/components/Menu/components/ExplorerButton.tsx
+++ b/frontend/lib/components/Menu/components/ExplorerButton.tsx
@@ -3,7 +3,7 @@ import { usePathname } from "next/navigation";
import { useTranslation } from "react-i18next";
import { LuChevronRight, LuGlobe } from "react-icons/lu";
-import { Button } from "@/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button";
+import { MenuButton } from "@/lib/components/Menu/components/MenuButton";
import { cn } from "@/lib/utils";
export const ExplorerButton = (): JSX.Element => {
@@ -13,7 +13,7 @@ export const ExplorerButton = (): JSX.Element => {
return (
- }
endIcon={}
diff --git a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button.tsx b/frontend/lib/components/Menu/components/MenuButton.tsx
similarity index 91%
rename from frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button.tsx
rename to frontend/lib/components/Menu/components/MenuButton.tsx
index 91702705d..28ccba3de 100644
--- a/frontend/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button.tsx
+++ b/frontend/lib/components/Menu/components/MenuButton.tsx
@@ -13,7 +13,7 @@ type ButtonProps = CoreButtonProps & {
endIcon?: JSX.Element;
};
-export const Button = forwardRef(
+export const MenuButton = forwardRef(
(
{ onClick, className, label, startIcon, endIcon, ...props }: ButtonProps,
forwardedRef
@@ -39,4 +39,4 @@ export const Button = forwardRef(
}
);
-Button.displayName = CoreButton.displayName;
+MenuButton.displayName = CoreButton.displayName;
diff --git a/frontend/lib/components/Menu/components/ParametersButton.tsx b/frontend/lib/components/Menu/components/ParametersButton.tsx
index b7bbc3af1..6c149f08c 100644
--- a/frontend/lib/components/Menu/components/ParametersButton.tsx
+++ b/frontend/lib/components/Menu/components/ParametersButton.tsx
@@ -3,7 +3,7 @@ import { usePathname } from "next/navigation";
import { useTranslation } from "react-i18next";
import { LuChevronRight, LuSettings } from "react-icons/lu";
-import { Button } from "@/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button";
+import { MenuButton } from "@/lib/components/Menu/components/MenuButton";
import { cn } from "@/lib/utils";
export const ParametersButton = (): JSX.Element => {
@@ -13,7 +13,7 @@ export const ParametersButton = (): JSX.Element => {
return (
- }
endIcon={}
diff --git a/frontend/lib/components/Menu/components/ProfileButton.tsx b/frontend/lib/components/Menu/components/ProfileButton.tsx
index 395ee553f..3e1b70e58 100644
--- a/frontend/lib/components/Menu/components/ProfileButton.tsx
+++ b/frontend/lib/components/Menu/components/ProfileButton.tsx
@@ -1,12 +1,12 @@
import Link from "next/link";
import { LuChevronRight, LuUser } from "react-icons/lu";
-import { Button } from "@/app/chat/[chatId]/components/ActionsBar/components/ChatInput/components/ActionsModal/components/Button";
+import { MenuButton } from "@/lib/components/Menu/components/MenuButton";
export const ProfileButton = (): JSX.Element => {
return (
-