From 240601b97b827a560c57074ed3ee4e6d0f4ddf6f Mon Sep 17 00:00:00 2001 From: jinyaqiu Date: Mon, 4 Aug 2025 15:49:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=80=89=E6=8B=A9=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ask/selectModel.tsx | 41 ++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/components/ask/selectModel.tsx b/components/ask/selectModel.tsx index 5ae244a..d9c34c7 100644 --- a/components/ask/selectModel.tsx +++ b/components/ask/selectModel.tsx @@ -3,12 +3,14 @@ import DownloadSvg from '@/assets/icons/svg/download.svg'; import FolderSvg from "@/assets/icons/svg/folder.svg"; import ReturnArrow from "@/assets/icons/svg/returnArrow.svg"; import YesSvg from "@/assets/icons/svg/yes.svg"; +import { ContentPart } from '@/types/ask'; import { TFunction } from "i18next"; import React from "react"; import { FlatList, Image, Modal, StyleSheet, TouchableOpacity, View } from "react-native"; import ContextMenu from "../gusture/contextMenu"; import { ThemedText } from "../ThemedText"; import { mergeArrays, saveMediaToGallery } from "./utils"; +import VideoPlayer from './VideoPlayer'; interface SelectModelProps { modalDetailsVisible: { visible: boolean, content: any }; @@ -21,6 +23,7 @@ interface SelectModelProps { setCancel: React.Dispatch>; } const SelectModel = ({ modalDetailsVisible, setModalDetailsVisible, insets, setSelectedImages, selectedImages, t, cancel, setCancel }: SelectModelProps) => { + const items = modalDetailsVisible?.content?.filter((media: ContentPart) => media.type !== 'text'); return ( item.id} showsVerticalScrollIndicator={false} @@ -56,14 +59,6 @@ const SelectModel = ({ modalDetailsVisible, setModalDetailsVisible, insets, setS const itemId = item?.id || item?.video?.id; const isSelected = selectedImages.includes(itemId); - const toggleSelection = () => { - setSelectedImages(prev => - isSelected - ? prev.filter(id => id !== itemId) - : [...prev, itemId] - ); - }; - return ( @@ -79,7 +74,7 @@ const SelectModel = ({ modalDetailsVisible, setModalDetailsVisible, insets, setS svg: , label: t("ask:ask.save"), onPress: () => { - const imageUrl = item?.file_info?.url || item.video?.file_info?.url; + const imageUrl = item?.url; if (imageUrl) { saveMediaToGallery(imageUrl, t); } @@ -106,13 +101,25 @@ const SelectModel = ({ modalDetailsVisible, setModalDetailsVisible, insets, setS elevation: 5, }} > - console.log('Image load error:', error.nativeEvent.error)} - onLoad={() => console.log('Image loaded successfully')} - loadingIndicatorSource={require('@/assets/images/png/placeholder.png')} - /> + {item?.type === 'image' ? ( + console.log('Image load error:', error.nativeEvent.error)} + onLoad={() => console.log('Image loaded successfully')} + loadingIndicatorSource={require('@/assets/images/png/placeholder.png')} + /> + ) : ( + + )}