-
-
- {query}
+
+
+
+
+
{
- !isMultipleLine && operation
+ showVoiceInput && (
+
setShowVoiceInput(false)}
+ onConverted={text => setQuery(text)}
+ />
+ )
}
{
- showVoiceInput && (
-
setShowVoiceInput(false)}
- onConverted={text => setQuery(text)}
- />
+ isMultipleLine && (
+ {operation}
)
}
- {
- isMultipleLine && (
- {operation}
- )
- }
-
+
)
}
diff --git a/web/app/components/base/file-uploader/file-list-flex/file-list-item.tsx b/web/app/components/base/file-uploader/file-list-flex/file-list-flex-item.tsx
similarity index 95%
rename from web/app/components/base/file-uploader/file-list-flex/file-list-item.tsx
rename to web/app/components/base/file-uploader/file-list-flex/file-list-flex-item.tsx
index 5177a2f528..4a91ba6489 100644
--- a/web/app/components/base/file-uploader/file-list-flex/file-list-item.tsx
+++ b/web/app/components/base/file-uploader/file-list-flex/file-list-flex-item.tsx
@@ -8,7 +8,7 @@ type FileListItemProps = {
isFile?: boolean
className?: string
}
-const FileListItem = ({
+const FileListFlexItem = ({
isFile,
className,
}: FileListItemProps) => {
@@ -48,4 +48,4 @@ const FileListItem = ({
)
}
-export default memo(FileListItem)
+export default memo(FileListFlexItem)
diff --git a/web/app/components/base/file-uploader/file-list-flex/file-list-flex-operation.tsx b/web/app/components/base/file-uploader/file-list-flex/file-list-flex-operation.tsx
index 37ed31dec2..c1e55de7f2 100644
--- a/web/app/components/base/file-uploader/file-list-flex/file-list-flex-operation.tsx
+++ b/web/app/components/base/file-uploader/file-list-flex/file-list-flex-operation.tsx
@@ -3,33 +3,31 @@ import {
memo,
} from 'react'
import { RiCloseLine } from '@remixicon/react'
-import FileListItem from './file-list-item'
+import { useStore } from '../store'
+import FileListItem from './file-list-flex-item'
import Button from '@/app/components/base/button'
const FileListFlexOperation = forwardRef
((_, ref) => {
+ const files = useStore(s => s.files)
+
return (
-
-
-
-
-
-
-
-
-
-
-
-
+ {
+ files.map(file => (
+
+
+
+
+ ))
+ }
)
})
diff --git a/web/app/components/base/file-uploader/file-list-flex/file-list-flex-preview.tsx b/web/app/components/base/file-uploader/file-list-flex/file-list-flex-preview.tsx
index 6d6afb0eb3..ca22f67dfd 100644
--- a/web/app/components/base/file-uploader/file-list-flex/file-list-flex-preview.tsx
+++ b/web/app/components/base/file-uploader/file-list-flex/file-list-flex-preview.tsx
@@ -2,7 +2,7 @@ import {
forwardRef,
memo,
} from 'react'
-import FileListItem from './file-list-item'
+import FileListFlexItem from './file-list-flex-item'
const FileListFlexPreview = forwardRef((_, ref) => {
return (
@@ -10,10 +10,10 @@ const FileListFlexPreview = forwardRef((_, ref) => {
ref={ref}
className='flex flex-wrap gap-2'
>
-
-
-
-
+
+
+
+
)
})
diff --git a/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx b/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx
index ebac040ec2..c87dbab237 100644
--- a/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx
+++ b/web/app/components/base/file-uploader/file-uploader-in-attachment/index.tsx
@@ -1,5 +1,4 @@
import {
- memo,
useCallback,
} from 'react'
import {
@@ -8,6 +7,10 @@ import {
} from '@remixicon/react'
import { useTranslation } from 'react-i18next'
import FileFromLinkOrLocal from '../file-from-link-or-local'
+import {
+ FileContextProvider,
+ useStore,
+} from '../store'
import FileInAttachmentItem from './file-in-attachment-item'
import Button from '@/app/components/base/button'
import cn from '@/utils/classnames'
@@ -19,6 +22,7 @@ type Option = {
}
const FileUploaderInAttachment = () => {
const { t } = useTranslation()
+ const files = useStore(s => s.files)
const options = [
{
value: 'local',
@@ -68,11 +72,24 @@ const FileUploaderInAttachment = () => {
{options.map(renderOption)}