|
1 | 1 | import axios from "axios"; |
2 | | -import { useState, type ChangeEvent } from "react"; |
| 2 | +import { useEffect, useState, type ChangeEvent } from "react"; |
3 | 3 | import { useDropzone } from "react-dropzone"; |
4 | 4 | import { useFormDataRequest } from "../../../../../hooks/useFormDataRequest"; |
5 | 5 | import type { MCPServerIcon } from "../../../../../redux/services/types"; |
@@ -35,7 +35,7 @@ export const ToolsStep = ({ |
35 | 35 | const [selectedTools, setSelectedTools] = useState(initialSelectedTools); |
36 | 36 | const [searchInputValue, setSearchInputValue] = useState(""); |
37 | 37 | const [dropzoneError, setDropzoneError] = useState<string>(); |
38 | | - const [iconId, setIconId] = useState<string | null>(null); |
| 38 | + const [iconId, setIconId] = useState<string | null>(icon?.id ?? null); |
39 | 39 | const [fileToUpload, setFileToUpload] = useState<File | null>(null); |
40 | 40 | const { |
41 | 41 | send: upload, |
@@ -65,19 +65,20 @@ export const ToolsStep = ({ |
65 | 65 | } |
66 | 66 | }); |
67 | 67 |
|
68 | | - const fileDetails = icon |
69 | | - ? { |
70 | | - name: icon.fileName, |
71 | | - size: icon.fileSize, |
72 | | - type: icon.fileName.split(".")[1] ?? "" |
73 | | - } |
74 | | - : fileToUpload |
75 | | - ? { |
76 | | - name: fileToUpload.name, |
77 | | - size: fileToUpload.size, |
78 | | - type: fileToUpload.type.split("/")[1] |
79 | | - } |
80 | | - : null; |
| 68 | + const fileDetails = |
| 69 | + iconId && icon?.id === iconId |
| 70 | + ? { |
| 71 | + name: icon.fileName, |
| 72 | + size: icon.fileSize, |
| 73 | + type: icon.fileName.split(".")[1] ?? "" |
| 74 | + } |
| 75 | + : fileToUpload |
| 76 | + ? { |
| 77 | + name: fileToUpload.name, |
| 78 | + size: fileToUpload.size, |
| 79 | + type: fileToUpload.type.split("/")[1] |
| 80 | + } |
| 81 | + : null; |
81 | 82 |
|
82 | 83 | const { getRootProps, getInputProps, isDragActive } = useDropzone({ |
83 | 84 | accept: { |
@@ -177,6 +178,15 @@ export const ToolsStep = ({ |
177 | 178 | setDropzoneError(undefined); |
178 | 179 | }; |
179 | 180 |
|
| 181 | + useEffect(() => { |
| 182 | + if (icon?.id) { |
| 183 | + setFileToUpload(null); |
| 184 | + setIconId(icon.id); |
| 185 | + } else { |
| 186 | + setIconId(null); |
| 187 | + } |
| 188 | + }, [icon?.id]); |
| 189 | + |
180 | 190 | const formattedFileSize = fileDetails |
181 | 191 | ? fileDetails.size >= MAX_ICON_FILE_SIZE |
182 | 192 | ? `${roundTo(fileDetails.size / 1024 / 1024, 0)} MB` |
|
0 commit comments