import React from 'react' import {observer} from 'mobx-react-lite' import {Text, Image, ImageSourcePropType, StyleSheet, View} from 'react-native' import {bsky} from '@adxp/mock-api' import moment from 'moment' import {FeedViewItemModel} from '../../state/models/feed-view' const IMAGES: Record = { 'alice.com': require('../../assets/alice.jpg'), 'bob.com': require('../../assets/bob.jpg'), 'carla.com': require('../../assets/carla.jpg'), } export const FeedItem = observer(function FeedItem({ item, }: { item: FeedViewItemModel }) { const record = item.record as unknown as bsky.Post.Record return ( {item.repostedBy && ( Reposted by {item.repostedBy.displayName} )} {item.author.displayName} @{item.author.name} · {moment(item.indexedAt).fromNow(true)} {record.text} ) }) const styles = StyleSheet.create({ outer: { borderTopWidth: 1, borderTopColor: '#e8e8e8', backgroundColor: '#fff', padding: 10, }, repostedBy: { paddingLeft: 70, color: 'gray', fontWeight: 'bold', fontSize: 13, }, layout: { flexDirection: 'row', }, layoutAvi: { width: 70, }, avi: { width: 60, height: 60, borderRadius: 30, resizeMode: 'cover', }, layoutContent: { flex: 1, }, meta: { flexDirection: 'row', paddingTop: 2, paddingBottom: 4, }, metaItem: { paddingRight: 5, }, metaDisplayName: { fontSize: 15, fontWeight: 'bold', }, metaName: { fontSize: 14, color: 'gray', }, metaDate: { fontSize: 14, color: 'gray', }, postText: { fontSize: 15, }, })