From ee231ae3af66133707716f8f6f962d56617399cf Mon Sep 17 00:00:00 2001 From: Adolfo Reyna Date: Sun, 25 Dec 2022 21:46:54 -0500 Subject: [PATCH] Adding support to youtube videos. --- Views/Invite.js | 31 ++++++++++++++++++++++--------- components/Media.js | 20 +++++++++++++++++--- components/Post.js | 2 +- 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/Views/Invite.js b/Views/Invite.js index 9da4e04..998beb4 100644 --- a/Views/Invite.js +++ b/Views/Invite.js @@ -2,13 +2,22 @@ import React from "react"; import { View, ImageBackground } from "react-native"; import { Text, TextInput, Button, Divider, Checkbox } from "react-native-paper"; import i18n from "../i18nMessages.js"; -import { useSnapshot } from 'valtio'; -import GlobalState from '../contexts/GlobalState.js'; +import API from "../API"; let InviteView = ()=>{ - const gState = useSnapshot(GlobalState); - const viewer = gState.me; + const [name, setName] = React.useState(""); + const [email, setEmail] = React.useState(""); + const [checked, setChecked] = React.useState(""); + + let sendInvite = async () => { + if(name != "" && email != "") return 0; + setName(''); + setEmail(''); + setChecked(false); + await API.newInvitation(name, email); + } + return ( { setText(text)} + value={name} + onChangeText={text => setName(text)} /> setText(text)} + value={email} + onChangeText={text => setEmail(text)} + /> + {setChecked(!checked)}} /> - diff --git a/components/Media.js b/components/Media.js index 2857eb3..8bcbfd3 100644 --- a/components/Media.js +++ b/components/Media.js @@ -8,13 +8,20 @@ import { WebView } from 'react-native-webview'; const videoIdF = (content) => { let vimeoTag = content.match(/@vimeo:[0-9]+/); - let youtubeTag = content.match(/@youtube:[0-z]+/); - if (!vimeoTag && !youtubeTag) return []; - let tag = youtubeTag || vimeoTag || hslTag; + if (!vimeoTag) return []; + let tag = vimeoTag; tag = tag[0].substring(1); return tag.split(':'); }; +const youtubeIdF = (content) => { + let youtubeTag = content.match(/@youtube:[0-z]+/); + if (!youtubeTag) return ''; + let tag = youtubeTag; + tag = tag[0].substring(1); + return tag.split(':')[1]; +}; + const hlsIdF = (content) => { let hslTag = content.match(/@hls:.+\w/); if (!hslTag) return ''; @@ -51,6 +58,7 @@ let Media = (props) => { const videosId = videoIdF(props.content); const hlsUrl = hlsIdF(props.content); const iframeSrc = iframeTagF(props.content) || []; + const youtubeId = youtubeIdF(props.content); const [videosFiles, setVideosFiles] = useState([]); const [poster, setPoster] = useState(''); const [loaded, setLoaded] = useState(false); @@ -97,6 +105,11 @@ let Media = (props) => { style={styles.iframe} source={{ uri: iframeSrc[1] }} /> : <>; + const youtubeEmb = youtubeId.length ? + : <>; const renderImages = (({ item }) => { return (); }); @@ -125,6 +138,7 @@ let Media = (props) => { {video} {video2} {iframe} + {youtubeEmb} ); } diff --git a/components/Post.js b/components/Post.js index b00b12b..d958ba3 100644 --- a/components/Post.js +++ b/components/Post.js @@ -59,7 +59,7 @@ let Post = (props) => { return ( - + {!post.nonOrganicType ?