feat: 对话样式

This commit is contained in:
jinyaqiu 2025-07-17 10:21:10 +08:00
parent 125da0e660
commit 153838aec0

View File

@ -40,6 +40,7 @@ const renderMessage = ({ insets, item, sessionId, setModalVisible, modalVisible,
const isVideo = (data: Video | MaterialItem): data is Video => {
return 'video' in data;
};
// 创建一个新的 VideoPlayer 组件
const VideoPlayer = ({
videoUrl,
@ -100,18 +101,18 @@ const renderMessage = ({ insets, item, sessionId, setModalVisible, modalVisible,
{(mergeArrays(item.content.image_material_infos || [], item.content.video_material_infos || [])?.length || 0 > 0) && (
<View className="relative">
<View style={styles.imageGridContainer}>
{mergeArrays(item.content.image_material_infos || [], item.content.video_material_infos || [])?.slice(0, 3)?.map((image, index, array) => (
<View style={[styles.imageGridContainer, { flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'space-between' }]}>
{mergeArrays(item.content.image_material_infos || [], item.content.video_material_infos || [])?.slice(0, 3)?.map((image) => (
<Pressable
key={`${image.role}-${image.timestamp}`}
key={image?.id || image?.video?.id}
onPress={() => {
setModalVisible({ visible: true, data: image });
}}
style={({ pressed }) => ({
style={{
width: '32%',
aspectRatio: 1,
opacity: pressed ? 0.8 : 1
})}
marginBottom: 8,
}}
>
<Image
source={{ uri: image?.preview_file_info?.url || image.video?.preview_file_info?.url }}
@ -307,8 +308,7 @@ export default renderMessage;
const styles = StyleSheet.create({
imageGridContainer: {
flexDirection: 'row',
flexWrap: 'wrap',
justifyContent: 'space-between',
flexWrap: 'nowrap',
width: '100%',
marginTop: 8,
},