import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; import { StyleSheet, Text, View, ScrollView } from 'react-native'; import { useSelector } from 'react-redux'; import I18n from '../i18n'; import SafeAreaView from '../containers/SafeAreaView'; import StatusBar from '../containers/StatusBar'; import Button from '../containers/Button'; import { useTheme } from '../theme'; import RocketChat from '../lib/rocketchat'; import Navigation from '../lib/Navigation'; import { goRoom } from '../utils/goRoom'; import { themes } from '../constants/colors'; import Markdown from '../containers/markdown'; import sharedStyles from './Styles'; const styles = StyleSheet.create({ scroll: { flex: 1 }, container: { flex: 1, marginTop: 12, marginHorizontal: 15 }, cannedText: { marginTop: 8, marginBottom: 16, fontSize: 14, paddingTop: 0, paddingBottom: 0, ...sharedStyles.textRegular }, cannedTagWrap: { borderRadius: 4, marginRight: 4, marginTop: 8, height: 16 }, cannedTagContainer: { flexDirection: 'row', flexWrap: 'wrap' }, cannedTag: { fontSize: 12, paddingTop: 0, paddingBottom: 0, paddingHorizontal: 4, ...sharedStyles.textRegular }, button: { margin: 24, marginBottom: 24 }, item: { paddingVertical: 10, justifyContent: 'center' }, itemLabel: { marginBottom: 10, fontSize: 14, ...sharedStyles.textMedium }, itemContent: { fontSize: 14, ...sharedStyles.textRegular } }); const Item = ({ label, content, theme, testID }) => content ? ( {label} ) : null; Item.propTypes = { label: PropTypes.string, content: PropTypes.string, theme: PropTypes.string, testID: PropTypes.string }; const CannedResponseDetail = ({ navigation, route }) => { const { cannedResponse } = route?.params; const { theme } = useTheme(); const { isMasterDetail } = useSelector(state => state.app); const { rooms } = useSelector(state => state.room); useEffect(() => { navigation.setOptions({ title: `!${cannedResponse?.shortcut}` }); }, []); const navigateToRoom = item => { const { room } = route.params; const { name, username } = room; const params = { rid: room.rid, name: RocketChat.getRoomTitle({ t: room.t, fname: name, name: username }), t: room.t, roomUserId: RocketChat.getUidDirectMessage(room), usedCannedResponse: item.text }; if (room.rid) { // if it's on master detail layout, we close the modal and replace RoomView if (isMasterDetail) { Navigation.navigate('DrawerNavigator'); goRoom({ item: params, isMasterDetail, usedCannedResponse: item.text }); } else { let navigate = navigation.push; // if this is a room focused if (rooms.includes(room.rid)) { ({ navigate } = navigation); } navigate('RoomView', params); } } }; return ( {I18n.t('Tags')} {cannedResponse?.tags?.length > 0 ? ( cannedResponse.tags.map(t => ( {t} )) ) : ( - )}