| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /**
- * 文章渲染项目组件
- * @邠心vbe on 2023/10/24
- */
- import React from 'react';
- import { Image, Pressable, StyleSheet, View } from 'react-native';
- import TextView from '../../components/TextView';
- import utils from '../../utils/utils';
- export default ItemArticle = ({item, index, separators, onPress}) => {
- return (
- <Pressable
- style={item.readStatus ? styles.notyItemView : styles.unotyItemView}
- onPress={onPress}
- android_ripple={ripple}>
- <View style={ui.center}>
- <Image
- source={{uri: utils.getImageUrl(item.articleImages[0].articleImagePath)}}
- resizeMode="cover"
- style={styles.articleImage}/>
- <View style={ui.flexc}>
- <MaterialCommunityIcons
- name="eye-check-outline"
- size={13}
- color={textPrimary}/>
- <TextView
- style={styles.textView}
- numberOfLines={1}>
- {item.articleViews}
- </TextView>
- </View>
- </View>
- <View style={styles.itemContent}>
- <TextView
- style={styles.textTitle}
- numberOfLines={1}
- ellipsizeMode="tail">
- {item.articleTitle}
- </TextView>
- <TextView
- style={styles.textDate}
- numberOfLines={1}>
- <MaterialCommunityIcons
- name="clock-time-four-outline"
- size={10}
- style={styles.textDate}/>
- {" " + item.createTime}
- </TextView>
- <View style={ui.flex}>
- <TextView
- style={styles.labelTypeText}
- numberOfLines={1}>
- {item.articleTypeName}
- </TextView>
- </View>
- <TextView
- style={styles.textMessage}
- numberOfLines={4}>
- {item.articleContent}
- </TextView>
- </View>
- </Pressable>
- )
- }
- const styles = StyleSheet.create({
- notyItemView: {
- padding: 16,
- flexDirection: 'row'
- },
- unotyItemView: {
- padding: 16,
- flexDirection: 'row',
- backgroundColor: "#F0F0F0"
- },
- articleImage: {
- width: 85,
- height: 85,
- borderRadius: 6,
- marginRight: 16,
- marginBottom: 8
- },
- readIcon: {
- top: 2,
- left: -5,
- width: 7,
- height: 6,
- position: 'absolute'
- },
- itemContent: {
- flex: 1
- },
- textTitle: {
- color: textPrimary,
- fontSize: 15,
- fontWeight: 'bold',
- paddingBottom: 4
- },
- textDate: {
- color: textSecondary,
- fontSize: 10,
- lineHeight: 10,
- paddingBottom: 4
- },
- textView: {
- color: textPrimary,
- fontSize: 11,
- lineHeight: 12,
- paddingLeft: 4,
- paddingRight: 16
- },
- labelTypeText: {
- fontSize: 10,
- borderWidth: 1,
- borderRadius: 4,
- borderColor: colorPrimary,
- ...$padding(2, 6)
- },
- unread: {
- fontWeight: 'bold'
- },
- textMessage: {
- color: textPrimary,
- fontSize: 12,
- paddingTop: 2
- }
- })
|