import React, { useEffect, useState } from 'react'; import { ScrollView, StyleSheet, Text, View } from 'react-native'; import { Marquee } from '@animatereactnative/marquee'; import { ElevationObject } from '../../../components/Button'; import TextView from '../../../components/TextView'; const PinMessage = ({ visible=false, messageList=[] }) => { if (visible) return ( { messageList.map((item, index) => )} ); else return <> } const Message = ({item}) => { const [expand, setExpand] = useState(false) const max = ($width-32)/8; return ( { item.pinTitle?.length>max ? {item.pinTitle} : {item.pinTitle} } setExpand(!expand)}/> { expand && {item.pinContent} } ) } export default PinMessage; const styles = StyleSheet.create({ pinMessageView: { top: 180, left: 16, right: 16, zIndex: 10, maxHeight: $vh(60), overflow: "hidden", position: 'absolute', }, messageCard: { marginBottom: 16, maxHeight: $vw(50), overflow: "hidden", borderRadius: 6, backgroundColor: colorLight, ...ElevationObject(3) }, marquee: { flex: 1, overflow: "hidden", ...$padding(12, 16) }, textTitle: { color: textPrimary, fontSize: 16, fontWeight: "bold" }, fixedTitle: { flex: 1, color: textPrimary, fontSize: 16, fontWeight: "bold", ...$padding(12, 16) }, textMessage: { color: textSecondary, paddingLeft: 16, paddingRight: 16, paddingBottom: 16, fontSize: 14 } })