Skip to content

Commit 2bf7e96

Browse files
authored
feat: Add customizable chat input and file upload components (#8237)
✨ (custom-chat-input.tsx): introduce a new component CustomChatInput to customize chat input functionality ✨ (use-custom-post-upload-file.ts): introduce a custom hook customPostUploadFileV2 to handle file uploads with customization ✨ (use-custom-use-file-handler.ts): introduce a custom hook customUseFileHandler to handle file operations with customization ♻️ (use-upload-file.ts): refactor useUploadFile to use customPostUploadFileV2 for file uploads with customization ♻️ (chat-view.tsx): refactor ChatView component to use CustomChatInput instead of ChatInput for customization ♻️ (fileRendererComponent/index.tsx): refactor FileRendererComponent to use customPostUploadFileV2 for file uploads with customization ♻️ (index.tsx): refactor MainPage filesPage to use customPostUploadFileV2 for file uploads with customization
1 parent e7e186a commit 2bf7e96

File tree

7 files changed

+55
-12
lines changed

7 files changed

+55
-12
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import ChatInput from "@/modals/IOModal/components/chatView/chatInput/chat-input";
2+
import { ChatInputType } from "@/types/components";
3+
4+
export const CustomChatInput = ({
5+
sendMessage,
6+
inputRef,
7+
noInput,
8+
files,
9+
setFiles,
10+
isDragging,
11+
playgroundPage,
12+
}: ChatInputType) => {
13+
return (
14+
<ChatInput
15+
sendMessage={sendMessage}
16+
inputRef={inputRef}
17+
noInput={noInput}
18+
files={files}
19+
setFiles={setFiles}
20+
isDragging={isDragging}
21+
playgroundPage={playgroundPage}
22+
/>
23+
);
24+
};
25+
26+
export default CustomChatInput;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { usePostUploadFileV2 } from "@/controllers/API/queries/file-management";
2+
import { useMutationFunctionType } from "@/types/api";
3+
4+
interface IPostUploadFile {
5+
file: File;
6+
}
7+
8+
export const customPostUploadFileV2: useMutationFunctionType<
9+
undefined,
10+
IPostUploadFile
11+
> = (options?) => {
12+
return usePostUploadFileV2(options);
13+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { useFileHandler } from "@/modals/IOModal/components/chatView/chatInput/hooks/use-file-handler";
2+
3+
export const customUseFileHandler = (currentFlowId: string) => {
4+
return useFileHandler(currentFlowId);
5+
};
6+
7+
export default customUseFileHandler;

src/frontend/src/hooks/files/use-upload-file.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { usePostUploadFileV2 } from "@/controllers/API/queries/file-management/use-post-upload-file";
1+
import { customPostUploadFileV2 } from "@/customization/hooks/use-custom-post-upload-file";
22
import { createFileUpload } from "@/helpers/create-file-upload";
33
import useFileSizeValidator from "@/shared/hooks/use-file-size-validator";
44

@@ -9,7 +9,7 @@ const useUploadFile = ({
99
types?: string[];
1010
multiple?: boolean;
1111
}) => {
12-
const { mutateAsync: uploadFileMutation } = usePostUploadFileV2();
12+
const { mutateAsync: uploadFileMutation } = customPostUploadFileV2();
1313
const { validateFileSize } = useFileSizeValidator();
1414

1515
const getFilesToUpload = async ({

src/frontend/src/modals/IOModal/components/chatView/components/chat-view.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import LangflowLogo from "@/assets/LangflowLogo.svg?react";
22
import { TextEffectPerChar } from "@/components/ui/textAnimation";
3+
import CustomChatInput from "@/customization/components/custom-chat-input";
34
import { ENABLE_IMAGE_ON_PLAYGROUND } from "@/customization/feature-flags";
45
import { track } from "@/customization/utils/analytics";
56
import { useMessagesStore } from "@/stores/messagesStore";
@@ -18,7 +19,6 @@ import useFlowStore from "../../../../../stores/flowStore";
1819
import { ChatMessageType } from "../../../../../types/chat";
1920
import { chatViewProps } from "../../../../../types/components";
2021
import FlowRunningSqueleton from "../../flow-running-squeleton";
21-
import ChatInput from "../chatInput/chat-input";
2222
import useDragAndDrop from "../chatInput/hooks/use-drag-and-drop";
2323
import { useFileHandler } from "../chatInput/hooks/use-file-handler";
2424
import ChatMessage from "../chatMessage/chat-message";
@@ -287,7 +287,7 @@ export default function ChatView({
287287
</div>
288288

289289
<div className="m-auto w-full max-w-[768px] md:w-5/6">
290-
<ChatInput
290+
<CustomChatInput
291291
playgroundPage={!!playgroundPage}
292292
noInput={!inputTypes.includes("ChatInput")}
293293
sendMessage={({ repeat, files }) => {

src/frontend/src/modals/fileManagerModal/components/filesRendererComponent/components/fileRendererComponent/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import ShadTooltip from "@/components/common/shadTooltipComponent";
33
import { Button } from "@/components/ui/button";
44
import { Checkbox } from "@/components/ui/checkbox";
55
import { Input } from "@/components/ui/input";
6-
import { usePostUploadFileV2 } from "@/controllers/API/queries/file-management";
6+
import { customPostUploadFileV2 } from "@/customization/hooks/use-custom-post-upload-file";
77
import { FileType } from "@/types/file_management";
88
import { formatFileSize } from "@/utils/stringManipulation";
99
import { FILE_ICONS } from "@/utils/styleUtils";
@@ -37,7 +37,7 @@ export default function FileRendererComponent({
3737
handleRename && setOpenRename(true);
3838
};
3939

40-
const { mutate: uploadFile } = usePostUploadFileV2();
40+
const { mutate: uploadFile } = customPostUploadFileV2();
4141

4242
useEffect(() => {
4343
setNewName(file.name);

src/frontend/src/pages/MainPage/pages/filesPage/index.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@ import { Button } from "@/components/ui/button";
66
import { Input } from "@/components/ui/input";
77
import Loading from "@/components/ui/loading";
88
import { SidebarTrigger } from "@/components/ui/sidebar";
9-
import {
10-
useGetDownloadFileV2,
11-
useGetFilesV2,
12-
usePostUploadFileV2,
13-
} from "@/controllers/API/queries/file-management";
9+
import { useGetFilesV2 } from "@/controllers/API/queries/file-management";
1410
import { useDeleteFilesV2 } from "@/controllers/API/queries/file-management/use-delete-files";
1511
import { useGetDownloadFilesV2 } from "@/controllers/API/queries/file-management/use-get-download-files";
1612
import { usePostRenameFileV2 } from "@/controllers/API/queries/file-management/use-put-rename-file";
13+
import { customPostUploadFileV2 } from "@/customization/hooks/use-custom-post-upload-file";
1714
import useUploadFile from "@/hooks/files/use-upload-file";
1815
import DeleteConfirmationModal from "@/modals/deleteConfirmationModal";
1916
import FilesContextMenuComponent from "@/modals/fileManagerModal/components/filesContextMenuComponent";
@@ -115,7 +112,7 @@ export const FilesPage = () => {
115112
}
116113
};
117114

118-
const { mutate: uploadFileDirect } = usePostUploadFileV2();
115+
const { mutate: uploadFileDirect } = customPostUploadFileV2();
119116

120117
const colDefs: ColDef[] = [
121118
{

0 commit comments

Comments
 (0)