From dd3be3a81921cf3305f67ee8594da066047bbe0f Mon Sep 17 00:00:00 2001
From: ayangweb <75017711+ayangweb@users.noreply.github.com>
Date: Thu, 10 Jul 2025 18:10:39 +0800
Subject: [PATCH] refactor: refactored file icon retrieval logic (#757)
* refactor: refactored file icon retrieval logic
* update
* update
* update
---
package.json | 1 -
pnpm-lock.yaml | 59 -------
src/components/Assistant/FileList.tsx | 5 +-
src/components/Assistant/SessionFile.tsx | 12 +-
src/components/Common/Icons/FileIcon.tsx | 24 +++
.../Common/Icons/FileIcon/AudioIcon.tsx | 21 ---
.../Common/Icons/FileIcon/VideoIcon.tsx | 21 ---
.../Common/Icons/FileIcon/index.tsx | 154 ------------------
src/components/Search/InputUpload.tsx | 2 -
src/stores/chatStore.ts | 1 -
10 files changed, 32 insertions(+), 268 deletions(-)
create mode 100644 src/components/Common/Icons/FileIcon.tsx
delete mode 100644 src/components/Common/Icons/FileIcon/AudioIcon.tsx
delete mode 100644 src/components/Common/Icons/FileIcon/VideoIcon.tsx
delete mode 100644 src/components/Common/Icons/FileIcon/index.tsx
diff --git a/package.json b/package.json
index cf369ee8..033004f1 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,6 @@
"release-beta": "release-it --preRelease=beta --preReleaseBase=1"
},
"dependencies": {
- "@ant-design/icons": "^6.0.0",
"@headlessui/react": "^2.2.2",
"@tauri-apps/api": "^2.5.0",
"@tauri-apps/plugin-autostart": "~2.2.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c5fe7499..6e1ddd5b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,9 +8,6 @@ importers:
.:
dependencies:
- '@ant-design/icons':
- specifier: ^6.0.0
- version: 6.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@headlessui/react':
specifier: ^2.2.2
version: 2.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -239,23 +236,6 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
- '@ant-design/colors@8.0.0':
- resolution: {integrity: sha512-6YzkKCw30EI/E9kHOIXsQDHmMvTllT8STzjMb4K2qzit33RW2pqCJP0sk+hidBntXxE+Vz4n1+RvCTfBw6OErw==}
-
- '@ant-design/fast-color@3.0.0':
- resolution: {integrity: sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA==}
- engines: {node: '>=8.x'}
-
- '@ant-design/icons-svg@4.4.2':
- resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
-
- '@ant-design/icons@6.0.0':
- resolution: {integrity: sha512-o0aCCAlHc1o4CQcapAwWzHeaW2x9F49g7P3IDtvtNXgHowtRWYb7kiubt8sQPFvfVIVU/jLw2hzeSlNt0FU+Uw==}
- engines: {node: '>=8'}
- peerDependencies:
- react: '>=16.0.0'
- react-dom: '>=16.0.0'
-
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
@@ -1005,12 +985,6 @@ packages:
resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==}
engines: {node: '>=12'}
- '@rc-component/util@1.2.1':
- resolution: {integrity: sha512-AUVu6jO+lWjQnUOOECwu8iR0EdElQgWW5NBv5vP/Uf9dWbAX3udhMutRlkVXjuac2E40ghkFy+ve00mc/3Fymg==}
- peerDependencies:
- react: '>=18.0.0'
- react-dom: '>=18.0.0'
-
'@react-aria/focus@3.20.2':
resolution: {integrity: sha512-Q3rouk/rzoF/3TuH6FzoAIKrl+kzZi9LHmr8S5EqLAOyP9TXIKG34x2j42dZsAhrw7TbF9gA8tBKwnCNH4ZV+Q==}
peerDependencies:
@@ -1679,9 +1653,6 @@ packages:
resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==}
engines: {node: '>=8'}
- classnames@2.5.1:
- resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
-
cli-boxes@3.0.0:
resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
engines: {node: '>=10'}
@@ -3161,9 +3132,6 @@ packages:
typescript:
optional: true
- react-is@18.3.1:
- resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
-
react-markdown@9.1.0:
resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==}
peerDependencies:
@@ -3809,23 +3777,6 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
- '@ant-design/colors@8.0.0':
- dependencies:
- '@ant-design/fast-color': 3.0.0
-
- '@ant-design/fast-color@3.0.0': {}
-
- '@ant-design/icons-svg@4.4.2': {}
-
- '@ant-design/icons@6.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@ant-design/colors': 8.0.0
- '@ant-design/icons-svg': 4.4.2
- '@rc-component/util': 1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- classnames: 2.5.1
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 1.3.0
@@ -4468,12 +4419,6 @@ snapshots:
'@pnpm/network.ca-file': 1.0.2
config-chain: 1.1.13
- '@rc-component/util@1.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-is: 18.3.1
-
'@react-aria/focus@3.20.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@react-aria/interactions': 3.25.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -5132,8 +5077,6 @@ snapshots:
ci-info@4.2.0: {}
- classnames@2.5.1: {}
-
cli-boxes@3.0.0: {}
cli-cursor@5.0.0:
@@ -6881,8 +6824,6 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
typescript: 5.8.3
- react-is@18.3.1: {}
-
react-markdown@9.1.0(@types/react@18.3.21)(react@18.3.1):
dependencies:
'@types/hast': 3.0.4
diff --git a/src/components/Assistant/FileList.tsx b/src/components/Assistant/FileList.tsx
index b89596ae..4be3c741 100644
--- a/src/components/Assistant/FileList.tsx
+++ b/src/components/Assistant/FileList.tsx
@@ -6,9 +6,9 @@ import { useTranslation } from "react-i18next";
import { useChatStore, UploadFile } from "@/stores/chatStore";
import { useConnectStore } from "@/stores/connectStore";
-import FileIcon from "../Common/Icons/FileIcon";
import platformAdapter from "@/utils/platformAdapter";
import Tooltip2 from "../Common/Tooltip2";
+import FileIcon from "../Common/Icons/FileIcon";
interface FileListProps {
sessionId: string;
@@ -87,6 +87,7 @@ const FileList = (props: FileListProps) => {
const {
id,
name,
+ path,
extname,
size,
uploaded,
@@ -109,7 +110,7 @@ const FileList = (props: FileListProps) => {
)}
-