react-native-gifted-chat-video-support
Version:
The most complete chat UI for React Native , now support send video thanks to react-native-video-player
92 lines (81 loc) • 1.95 kB
JavaScript
/* eslint no-use-before-define: ["error", { "variables": false }] */
import PropTypes from 'prop-types';
import React from 'react';
import { StyleSheet, Text, View, ViewPropTypes } from 'react-native';
import moment from 'moment';
import Color from './Color';
import { TIME_FORMAT } from './Constant';
export default function Time(
{ position, containerStyle, currentMessage, timeFormat, textStyle, timeTextStyle },
context,
) {
return (
<View style={[styles[position].container, containerStyle[position]]}>
<Text style={[styles[position].text, textStyle[position], timeTextStyle[position]]}>
{moment(currentMessage.createdAt)
.locale(context.getLocale())
.format(timeFormat)}
</Text>
</View>
);
}
const containerStyle = {
marginLeft: 10,
marginRight: 10,
marginBottom: 5,
};
const textStyle = {
fontSize: 10,
backgroundColor: 'transparent',
textAlign: 'right',
};
const styles = {
left: StyleSheet.create({
container: {
...containerStyle,
},
text: {
color: Color.timeTextColor,
...textStyle,
},
}),
right: StyleSheet.create({
container: {
...containerStyle,
},
text: {
color: Color.white,
...textStyle,
},
}),
};
Time.contextTypes = {
getLocale: PropTypes.func,
};
Time.defaultProps = {
position: 'left',
currentMessage: {
createdAt: null,
},
containerStyle: {},
textStyle: {},
timeFormat: TIME_FORMAT,
timeTextStyle: {},
};
Time.propTypes = {
position: PropTypes.oneOf(['left', 'right']),
currentMessage: PropTypes.object,
containerStyle: PropTypes.shape({
left: ViewPropTypes.style,
right: ViewPropTypes.style,
}),
textStyle: PropTypes.shape({
left: Text.propTypes.style,
right: Text.propTypes.style,
}),
timeFormat: PropTypes.string,
timeTextStyle: PropTypes.shape({
left: Text.propTypes.style,
right: Text.propTypes.style,
}),
};