Skip to main content
Glama
lallen30
by lallen30
EventDetails.tsx3.2 kB
import React from 'react'; import { View, Text, ScrollView, StyleSheet, useWindowDimensions } from 'react-native'; import { useNavigation, useRoute } from '@react-navigation/native'; import RenderHtml, { defaultSystemFonts } from 'react-native-render-html'; import { styles } from './EventDetailsStyles'; import { colors } from '../../../theme/colors'; const EventDetails = () => { const navigation = useNavigation(); const route = useRoute(); const event = route.params?.event; const { width } = useWindowDimensions(); const formatTime = (timeStr: string) => { const [hours, minutes] = timeStr.split(':'); const date = new Date(); date.setHours(parseInt(hours, 10)); date.setMinutes(parseInt(minutes, 10)); return date.toLocaleTimeString('en-US', { hour: 'numeric', minute: '2-digit', hour12: true }); }; const formatDate = (dateString: string) => { const [year, month, day] = dateString.split('-').map(num => parseInt(num, 10)); const date = new Date(year, month - 1, day); return date.toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }); }; // Define default rendering options const renderersProps = { img: { enableExperimentalPercentWidth: true } }; const tagsStyles = { body: { color: colors.black, fontSize: 16, lineHeight: 24, }, a: { color: colors.primary, textDecorationLine: 'underline', } }; return ( <View style={styles.container}> <ScrollView style={styles.content}> <Text style={styles.title}>{event.event_title}</Text> <Text style={styles.date}>{formatDate(event.event_date)}</Text> <Text style={styles.time}> {formatTime(event.event_from_time)} - {formatTime(event.event_to_time)} </Text> <View style={styles.section}> <Text style={styles.sectionTitle}>Location</Text> <Text style={styles.location}> {event.event_street_address} {event.event_apt_suite ? `\n${event.event_apt_suite}` : ''} {'\n'} {[ event.event_city, event.event_state, event.event_zip ].filter(Boolean).join(', ')} </Text> </View> {event.event_content && ( <View style={styles.section}> <Text style={styles.sectionTitle}>Description</Text> <RenderHtml contentWidth={width - 40} source={{ html: event.event_content }} renderersProps={renderersProps} tagsStyles={tagsStyles} systemFonts={defaultSystemFonts} baseStyle={styles.description} defaultTextProps={{ selectable: true }} /> </View> )} {event.event_price && ( <View style={styles.section}> <Text style={styles.sectionTitle}>Price</Text> <Text style={styles.price}>${event.event_price}</Text> </View> )} </ScrollView> </View> ); }; export default EventDetails;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lallen30/mcp-remote-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server