diff options
| author | Ivan Chen <ivan@thetaggid.com> | 2020-10-26 20:23:43 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-26 20:23:43 -0400 | 
| commit | 67a3aa389a8b761c9fdf4129265d488a77db1ea9 (patch) | |
| tree | 93bb706dd27808485b0f2db9c12ef79ac39df04f /src/components/taggs | |
| parent | d48119be38e1dd3f0abc8a4b61c11aa4d0635810 (diff) | |
[TMA-305] Made things clickable (#67)
* made links clickable
* made handles clickable
* made more links clickable
Diffstat (limited to 'src/components/taggs')
| -rw-r--r-- | src/components/taggs/TaggPost.tsx | 6 | ||||
| -rw-r--r-- | src/components/taggs/TwitterTaggPost.tsx | 23 | 
2 files changed, 25 insertions, 4 deletions
| diff --git a/src/components/taggs/TaggPost.tsx b/src/components/taggs/TaggPost.tsx index 0d3aee50..07efd797 100644 --- a/src/components/taggs/TaggPost.tsx +++ b/src/components/taggs/TaggPost.tsx @@ -4,6 +4,7 @@ import {SimplePostType} from '../../types';  import {SCREEN_WIDTH} from '../../utils';  import {DateLabel} from '../common';  import TaggPostFooter from './TaggPostFooter'; +import Hyperlink from 'react-native-hyperlink';  interface TaggPostProps {    post: SimplePostType; @@ -31,7 +32,9 @@ const TaggPost: React.FC<TaggPostProps> = ({post}) => {      // Post with large text      return (        <View style={styles.textContianer}> -        <Text style={styles.text}>{post.caption}</Text> +        <Hyperlink linkDefault={true} linkStyle={styles.linkColor}> +          <Text style={styles.text}>{post.caption}</Text> +        </Hyperlink>          <DateLabel timestamp={post.timestamp} type={'default'} />        </View>      ); @@ -55,6 +58,7 @@ const styles = StyleSheet.create({      color: 'white',      flexWrap: 'wrap',    }, +  linkColor: {color: '#2980b9'},  });  export default TaggPost; diff --git a/src/components/taggs/TwitterTaggPost.tsx b/src/components/taggs/TwitterTaggPost.tsx index 2cc23bcf..c72b4fa8 100644 --- a/src/components/taggs/TwitterTaggPost.tsx +++ b/src/components/taggs/TwitterTaggPost.tsx @@ -1,6 +1,7 @@  import React from 'react';  import {Image, Linking, StyleSheet, View} from 'react-native';  import {Text} from 'react-native-animatable'; +import Hyperlink from 'react-native-hyperlink';  import LinearGradient from 'react-native-linear-gradient';  import {AVATAR_DIM, TAGGS_GRADIENT} from '../../constants';  import {TwitterPostType} from '../../types'; @@ -15,6 +16,11 @@ const TwitterTaggPost: React.FC<TwitterTaggPostProps> = ({    ownerHandle,    post,  }) => { +  const openTwitterProfileLink = (handle?: string) => { +    if (handle) { +      Linking.openURL(`https://twitter.com/${handle}`); +    } +  };    return (      <View style={styles.mainContainer}>        {/* Retweeted? */} @@ -33,13 +39,19 @@ const TwitterTaggPost: React.FC<TwitterTaggPostProps> = ({                : require('../../assets/images/avatar-placeholder.png')            }          /> -        <Text style={styles.headerText}>@{post.handle}</Text> +        <Text +          style={styles.headerText} +          onPress={() => openTwitterProfileLink(post.handle)}> +          @{post.handle} +        </Text>        </View>        {/* Tweet/Reply/Retweet Content */}        <View style={styles.contentContainer}>          {/* First part of content is text or empty */}          {post.text ? ( -          <Text style={styles.contentText}>{post.text}</Text> +          <Hyperlink linkDefault={true} linkStyle={styles.linkColor}> +            <Text style={styles.contentText}>{post.text}</Text> +          </Hyperlink>          ) : (            <React.Fragment />          )} @@ -70,7 +82,11 @@ const TwitterTaggPost: React.FC<TwitterTaggPostProps> = ({                        : require('../../assets/images/avatar-placeholder.png')                    }                  /> -                <Text style={styles.replyHandleText}> +                <Text +                  style={styles.replyHandleText} +                  onPress={() => +                    openTwitterProfileLink(post.in_reply_to?.handle) +                  }>                    @{post.in_reply_to.handle}                  </Text>                  <DateLabel @@ -140,6 +156,7 @@ const styles = StyleSheet.create({      color: 'white',      paddingHorizontal: 12,    }, +  linkColor: {color: '#2980b9'},    contentContainer: {},    contentText: {      fontSize: 18, | 
