From a7623f5671a0eab0d9fdecf0242f35decc0d02f7 Mon Sep 17 00:00:00 2001 From: jitendra Date: Tue, 14 Mar 2023 16:08:51 +0530 Subject: [PATCH] Solve Feedback points MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.) Terms and Condition and Privacy policy should be clickable. 2.) I agree with the Terms & Conditions and Privacy Policy 3.) Email or WhatsApp message not received on registration 4.) Remove the user Doctor option. We will build the doctors app post MVP 5.) Error Message should be corrected to- Click the checkbox to proceed 6.) Name must be between 2 to 100 characters 7.) Remove male pic and use nuetral gender default pic 8.) Remove marked statement 9.) link all the social icons : Share popup added 10.) Also change the text below the pic to “Refer a friend” 11.) Also change website to new website URL 12.) Currency should be specified 13.) Pic of the expert should be in circle with same background 14.) Pic and text should be centrally aligned 15.) Specify “No bookmarks added” 16.) Correct the icon of the installed app and the name should start with capital “G” 17.) Parenting TV - video does not stop if the user goes to some other link on the app The audio is on in the background 18.) We need a “Next” button on the bottom right side along with Skip options. Do the user to go to the next page. This page doesn’t go to the next page until you click on skip --- .../app/src/main/res/values/strings.xml | 2 +- gravid/package-lock.json | 11 ++ gravid/package.json | 1 + gravid/src/common/svgs.js | 4 +- gravid/src/screens/Blogs/index.js | 10 +- gravid/src/screens/ExpertList/styles.js | 13 ++- gravid/src/screens/ExpertListDetail/style.js | 7 +- gravid/src/screens/Home/index.js | 10 +- gravid/src/screens/Introduction/index.js | 42 ++++++- gravid/src/screens/Library/index.js | 22 ++-- gravid/src/screens/Library/styles.js | 15 ++- gravid/src/screens/ParentingTV/index.js | 10 +- gravid/src/screens/Profile/index.js | 12 +- gravid/src/screens/Referral/index.js | 39 ++++++- gravid/src/screens/Referral/styles.js | 104 +++++++++++++----- gravid/src/screens/Signup/index.js | 19 +++- gravid/src/screens/Webinar/index.js | 23 ++-- gravid/src/screens/Webinar/styles.js | 7 +- gravid/src/screens/WebinarDetail/index.js | 2 +- 19 files changed, 268 insertions(+), 85 deletions(-) diff --git a/gravid/android/app/src/main/res/values/strings.xml b/gravid/android/app/src/main/res/values/strings.xml index ce1f7a1..db5a561 100644 --- a/gravid/android/app/src/main/res/values/strings.xml +++ b/gravid/android/app/src/main/res/values/strings.xml @@ -1,3 +1,3 @@ - gravid + Gravid diff --git a/gravid/package-lock.json b/gravid/package-lock.json index c8dea5f..846e19c 100644 --- a/gravid/package-lock.json +++ b/gravid/package-lock.json @@ -32,6 +32,7 @@ "react-native-responsive-screen": "^1.4.2", "react-native-safe-area-context": "^4.4.1", "react-native-screens": "^3.18.2", + "react-native-share": "^8.2.1", "react-native-simple-toast": "^2.0.0", "react-native-svg": "^13.6.0", "react-native-swiper": "^1.6.0", @@ -11537,6 +11538,11 @@ "react-native": "*" } }, + "node_modules/react-native-share": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-8.2.1.tgz", + "integrity": "sha512-dUIgrcdg4nOHrbKN1w+hs17RZ+51NeXd62CEezPAd4tEyj2Ki1qeAxWnJe8ZPRwvB5/6ml7YUR/2PJApxGHCAQ==" + }, "node_modules/react-native-simple-toast": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/react-native-simple-toast/-/react-native-simple-toast-2.0.0.tgz", @@ -22486,6 +22492,11 @@ "warn-once": "^0.1.0" } }, + "react-native-share": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-8.2.1.tgz", + "integrity": "sha512-dUIgrcdg4nOHrbKN1w+hs17RZ+51NeXd62CEezPAd4tEyj2Ki1qeAxWnJe8ZPRwvB5/6ml7YUR/2PJApxGHCAQ==" + }, "react-native-simple-toast": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/react-native-simple-toast/-/react-native-simple-toast-2.0.0.tgz", diff --git a/gravid/package.json b/gravid/package.json index 306dd95..85d2888 100644 --- a/gravid/package.json +++ b/gravid/package.json @@ -34,6 +34,7 @@ "react-native-responsive-screen": "^1.4.2", "react-native-safe-area-context": "^4.4.1", "react-native-screens": "^3.18.2", + "react-native-share": "^8.2.1", "react-native-simple-toast": "^2.0.0", "react-native-svg": "^13.6.0", "react-native-swiper": "^1.6.0", diff --git a/gravid/src/common/svgs.js b/gravid/src/common/svgs.js index 86e1d7a..2952eaf 100644 --- a/gravid/src/common/svgs.js +++ b/gravid/src/common/svgs.js @@ -1,8 +1,8 @@ import Svg, { Circle, Ellipse, G, Text, TSpan, TextPath, Path, Polygon, Polyline, Line, Rect, Use, Image, Symbol, Defs, LinearGradient, RadialGradient, Stop, ClipPath, Pattern, Mask } from 'react-native-svg'; -export const userIcon = (color, size) => { +export const userIcon = (color, width="19.546", height="18.615") => { return ( - + diff --git a/gravid/src/screens/Blogs/index.js b/gravid/src/screens/Blogs/index.js index a6aa2e6..ee9b7c7 100644 --- a/gravid/src/screens/Blogs/index.js +++ b/gravid/src/screens/Blogs/index.js @@ -7,7 +7,7 @@ */ import React, { useEffect, useState } from 'react'; -import { Image, ScrollView, Text, View, TouchableOpacity, FlatList, ActivityIndicator } from 'react-native'; +import { Image, ScrollView, Text, View, TouchableOpacity, FlatList, ActivityIndicator, Linking } from 'react-native'; import { svgs } from '@common'; import styles from './styles'; import Swiper from 'react-native-swiper'; @@ -61,6 +61,10 @@ const Blogs = (props) => { ); }; + const handleOtherSlider = (url) => { + Linking.openURL(url); + } + return ( @@ -94,7 +98,9 @@ const Blogs = (props) => { { btmSlider?.map((item) => { return ( - + handleOtherSlider(item.slider_url) : null}> + + ) }) } diff --git a/gravid/src/screens/ExpertList/styles.js b/gravid/src/screens/ExpertList/styles.js index da8481c..864c80b 100644 --- a/gravid/src/screens/ExpertList/styles.js +++ b/gravid/src/screens/ExpertList/styles.js @@ -49,11 +49,13 @@ const styles = StyleSheet.create({ color: colors.black, fontSize: 18, lineHeight: 18, - marginTop: 10 + marginTop: 10, + textAlign: "center" }, newsleftView: { flexDirection: "row", - marginTop: 16 + marginTop: 16, + justifyContent:"center" }, issueDes: { // flex: 3, @@ -75,11 +77,12 @@ const styles = StyleSheet.create({ }, newsImg: { // flex: 2, - width: "100%", + width: 200, height: 200, marginTop: 5, - resizeMode:"contain", // width: "100%", - alignSelf:"center" + resizeMode: "contain", // width: "100%", + alignSelf: "center", + borderRadius: 100 }, endView: { marginHorizontal: 24, diff --git a/gravid/src/screens/ExpertListDetail/style.js b/gravid/src/screens/ExpertListDetail/style.js index 5e6ecc3..a49ac48 100644 --- a/gravid/src/screens/ExpertListDetail/style.js +++ b/gravid/src/screens/ExpertListDetail/style.js @@ -29,11 +29,12 @@ const styles = StyleSheet.create({ marginTop: -30, }, ScreenshotImage: { - width: "100%", - height: 230, + width: 200, + height: 200, borderRadius: 20, resizeMode: "contain", - alignSelf:'center' + alignSelf: 'center', + borderRadius: 100, }, CONTRIBUTORSTEXT: { marginTop: 25, diff --git a/gravid/src/screens/Home/index.js b/gravid/src/screens/Home/index.js index 7884374..e3095e9 100644 --- a/gravid/src/screens/Home/index.js +++ b/gravid/src/screens/Home/index.js @@ -7,7 +7,7 @@ */ import React, { useState, useEffect } from 'react'; -import { Image, ScrollView, Text, View, TouchableOpacity, TextInput, FlatList, ActivityIndicator, Dimensions } from 'react-native'; +import { Image, ScrollView, Text, View, TouchableOpacity, TextInput, FlatList, ActivityIndicator, Dimensions, Linking } from 'react-native'; import { svgs, colors } from '@common'; import Modal from "react-native-modal"; import styles from './styles'; @@ -207,6 +207,10 @@ const Home = (props, { route }) => { ); }; + const handleOtherSlider = (url) => { + Linking.openURL(url); + } + if (isLoader) { return ( @@ -340,7 +344,9 @@ const Home = (props, { route }) => { { btmSlider?.map((item) => { return ( - + handleOtherSlider(item.slider_url) : null}> + + ) }) } diff --git a/gravid/src/screens/Introduction/index.js b/gravid/src/screens/Introduction/index.js index 3c1e564..bf3c3a4 100644 --- a/gravid/src/screens/Introduction/index.js +++ b/gravid/src/screens/Introduction/index.js @@ -65,14 +65,46 @@ const Introduction = (props) => { data={introductionlist} renderItem={renderslider} activeDotStyle={styles.activedot} - onDone={() => { props.navigation.navigate("welcome") }} + onDone={() => props.navigation.navigate("welcome")} + onSkip={() => props.navigation.navigate("welcome")} + showSkipButton + showPrevButton + renderNextButton={() => { + return ( + + Next + + ) + } + } + renderSkipButton={() => { + return ( + + Skip + + ) + } + } + renderDoneButton={() => { + return ( + + Finish + + ) + } + } + renderPrevButton={() => { + return ( + + Previous + + ) + } + } /> : null } - props.navigation.navigate("welcome")}> - Skip - + {/* { } Bookmarks - handleWebinarType("download")}> + {/* handleWebinarType("download")}> { type == "download" ? ( <> @@ -114,7 +114,7 @@ const Library = (props) => { ) : null } Download - + */} handleWebinarType("video")}> { type == "video" ? ( @@ -133,13 +133,17 @@ const Library = (props) => { ) : type == "bookmark" ? ( - item.id} - /> + bookmarkDataList?.length > 0 ? ( + item.id} + /> + ) : ( + No bookmarks added + ) ) : null } diff --git a/gravid/src/screens/Library/styles.js b/gravid/src/screens/Library/styles.js index 0137d56..d44c87c 100644 --- a/gravid/src/screens/Library/styles.js +++ b/gravid/src/screens/Library/styles.js @@ -64,13 +64,13 @@ const styles = StyleSheet.create({ WebinarActiveBtnTxt: { fontFamily: fonts.OptimaMedium, color: colors.white, - fontSize: 12, + fontSize: 14, lineHeight: 24 }, WebinarInactiveBtnTxt: { fontFamily: fonts.OptimaMedium, color: colors.themeColor, - fontSize: 12, + fontSize: 14, lineHeight: 24 }, signupImg: { @@ -424,9 +424,16 @@ const styles = StyleSheet.create({ color: colors.white, fontSize: 14, }, + noBookMarkTxt: { + fontFamily: fonts.OptimaBold, + color: colors.black, + fontSize: 18, + textAlign: "center", + marginTop: 200 + }, talkBubbleTriangleRight: { position: "absolute", - left: 55, + left: 75, bottom: -15, width: 0, height: 0, @@ -438,7 +445,7 @@ const styles = StyleSheet.create({ }, talkBubbleTriangleLeft: { position: "absolute", - left: 45, + left: 65, bottom: -15, width: 0, height: 0, diff --git a/gravid/src/screens/ParentingTV/index.js b/gravid/src/screens/ParentingTV/index.js index 6e689aa..b2bf2aa 100644 --- a/gravid/src/screens/ParentingTV/index.js +++ b/gravid/src/screens/ParentingTV/index.js @@ -1,4 +1,4 @@ -import react, { useRef } from "react"; +import react, { useEffect, useRef, useState } from "react"; import { View, Text, TouchableOpacity, Dimensions } from "react-native"; import { ScrollView } from "react-native-gesture-handler"; import styles from "./styles"; @@ -7,10 +7,17 @@ import VideoPlayer from 'react-native-video-controls'; import { imageurl } from '../../Services/constants'; import Video from 'react-native-video'; const { width } = Dimensions.get('window'); +import { useIsFocused } from '@react-navigation/native'; const ParentingTV = (props) => { + const isFocused = useIsFocused(); + const [isPaused, setIsPaused] = useState(false); const playerRef = useRef(null) const videoUrl = 'https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4'; + + useEffect(() => { + setIsPaused(!isFocused) + }, [isFocused]) return ( @@ -28,6 +35,7 @@ const ParentingTV = (props) => { controls /> */} console.log("pause")} diff --git a/gravid/src/screens/Profile/index.js b/gravid/src/screens/Profile/index.js index 7a2ba63..220d6dc 100644 --- a/gravid/src/screens/Profile/index.js +++ b/gravid/src/screens/Profile/index.js @@ -106,8 +106,16 @@ const Profile = ({ navigation }) => { Edit - + { + userData?.profile ? ( + + ) : ( + + {svgs.userIcon(colors.gray, 90, 90)} + + ) + } {userData?.name ? userData?.name : userData?.fname} {userData?.lname} diff --git a/gravid/src/screens/Referral/index.js b/gravid/src/screens/Referral/index.js index 33e35b9..d7b0706 100644 --- a/gravid/src/screens/Referral/index.js +++ b/gravid/src/screens/Referral/index.js @@ -1,9 +1,10 @@ import react from "react"; -import { View, Text, Image, TouchableOpacity, ScrollView } from "react-native"; +import { View, Text, Image, TouchableOpacity, ScrollView, Linking } from "react-native"; import { FlatList } from "react-native-gesture-handler"; // import colors from "../../common/colors"; import styles from "./styles"; import { svgs, colors } from '@common'; +import Share from 'react-native-share'; const Referral = ({ navigation }) => { const Data = [ @@ -13,6 +14,7 @@ const Referral = ({ navigation }) => { { img: require('../../assets/images/linkedin.png'), name: 'Linkedin', color: colors.link }, { img: require('../../assets/images/twitter.png'), name: 'Twitter', color: colors.twi }, ] + const renderItem = ({ item, index }) => ( @@ -22,6 +24,28 @@ const Referral = ({ navigation }) => { {item.name} ) + + const handleShare = async () => { + const shareOptions = { + message: "Gravid", + title: 'Share file', + url: "\n https://gravidparenting.com/", + failOnCancel: false, + }; + try { + const ShareResponse = await Share.open(shareOptions); + console.log('Result =>', ShareResponse); + // setResult(JSON.stringify(ShareResponse, null, 2)); + } catch (error) { + console.log('Error =>', error); + // setResult('error: '.concat(getErrorString(error))); + } + } + + const handleOpenWeb = () => { + Linking.openURL("https://gravidparenting.com/") + } + return ( @@ -33,12 +57,12 @@ const Referral = ({ navigation }) => { - You and Colleagues Will get + {/* You and Colleagues Will get */} Refer a Friend to get 100 referral points - Refer a Colleague + Refer a friend ABCDEFT1542 @@ -46,15 +70,18 @@ const Referral = ({ navigation }) => { Invite your friends and get buzz points - + + Share + + {/* - + */} - + { const [number, setNumber] = useState('') const [email, setEmail] = useState('') const [city, setCity] = useState('') - const [selected, setSelected] = React.useState(""); + const [selected, setSelected] = useState("User"); const [errselect, setErrSelect] = useState("Please Select Option") const [errfname, setErrFname] = useState("Enter First name") const [errlname, setErrLname] = useState('Enter Last name') @@ -31,7 +31,7 @@ const Signup = (props) => { const [numberlength, setNumberLength] = useState('Enter 10 Digit Mobile Number') const [errmail, setErrMail] = useState('Enter Email id') const [errcity, setErrCity] = useState('Enter City') - const [errcheck, setErrCheck] = useState('fill in the check box') + const [errcheck, setErrCheck] = useState('Click the checkbox to proceed') const [term, setTerm] = useState(false) @@ -57,8 +57,14 @@ const Signup = (props) => { else if (firstn == '') { Toast.show(errfname, Toast.LONG); error = true + } else if (firstn.length < 2 || firstn.length > 50) { + Toast.show("First Name must be between 2 to 50 characters", Toast.LONG); + error = true } else if (lastn == '') { Toast.show(errlname, Toast.LONG); + } else if (lastn.length < 2 || lastn.length > 50) { + Toast.show("Last Name must be between 2 to 50 characters", Toast.LONG); + error = true } else if (number == '') { Toast.show(errphone, Toast.LONG); } else if (number.length != 10) { @@ -96,7 +102,8 @@ const Signup = (props) => { type: 'signup', Temp_Id: json.data.id, verifynumber: json.data.mobile, - Country_Code: json.data.country_code + Country_Code: json.data.country_code, + confirmation }) }).catch((err) => { console.log("Error : ", err); @@ -118,7 +125,7 @@ const Signup = (props) => { Create your account - + {/* @@ -131,7 +138,7 @@ const Signup = (props) => { save="value" /> - + */} {svgs.userIcon(colors.grayRegular, 20)} { {term ? svgs.checkedCheckbox(colors.grayRegular, 18) : svgs.checkbox(colors.grayRegular, 18)} - you're agree to our Terms & Conditions and Privacy Policy + I agree with the props.navigation.navigate("TermsCondition")}>Terms & Conditions and props.navigation.navigate("Privacy_Policy")}>Privacy Policy { SignUp() }}> SIGN UP diff --git a/gravid/src/screens/Webinar/index.js b/gravid/src/screens/Webinar/index.js index 3814311..32a1a4c 100644 --- a/gravid/src/screens/Webinar/index.js +++ b/gravid/src/screens/Webinar/index.js @@ -7,7 +7,7 @@ */ import React, { useEffect, useState } from 'react'; -import { Image, ScrollView, Text, View, TouchableOpacity, FlatList, ActivityIndicator } from 'react-native'; +import { Image, ScrollView, Text, View, TouchableOpacity, FlatList, ActivityIndicator, Linking } from 'react-native'; import { svgs, colors } from '@common'; import styles from './styles'; import Swiper from 'react-native-swiper'; @@ -76,7 +76,7 @@ const Webinar = (props) => { } const LiverenderItem = ({ item }) => { return ( - handleWebinarDetail(item)} style={styles.NewsLetterView} > + handleWebinarDetail(item)} style={styles.NewsLetterView} > {/* { type == "live" ? ( @@ -108,7 +108,7 @@ const Webinar = (props) => { const recordrenderItem = ({ item }) => { return ( - + handleWebinarDetail(item)}> @@ -134,6 +134,7 @@ const Webinar = (props) => { ); }; + const renderItemIssue = ({ item }) => { return ( @@ -151,14 +152,19 @@ const Webinar = (props) => { ); }; + + const handleOtherSlider = (url) => { + Linking.openURL(url); + } + return ( - props.navigation.goBack()}> + {/* props.navigation.goBack()}> {svgs.backArrow("black", 24, 24)} - + */} Webinar - + {/* */} @@ -264,8 +270,11 @@ const Webinar = (props) => { { btmSlider?.map((item) => { return ( - + handleOtherSlider(item.slider_url) : null}> + + ) + }) } {/* diff --git a/gravid/src/screens/Webinar/styles.js b/gravid/src/screens/Webinar/styles.js index e4665e1..b62c441 100644 --- a/gravid/src/screens/Webinar/styles.js +++ b/gravid/src/screens/Webinar/styles.js @@ -12,10 +12,10 @@ const styles = StyleSheet.create({ height: 110, paddingTop: 16, paddingBottom: 40, - flexDirection: "row", + // flexDirection: "row", paddingHorizontal: 24, - // alignItems: "center", - // justifyContent: 'space-between' + alignItems: "center", + // justifyContent: 'center' }, haddingTxt: { flex: 3, @@ -273,6 +273,7 @@ const styles = StyleSheet.create({ endView: { marginHorizontal: 24, marginVertical: 40, + height:200 }, endImg: { width: "100%", diff --git a/gravid/src/screens/WebinarDetail/index.js b/gravid/src/screens/WebinarDetail/index.js index b945bcc..7b1c92a 100644 --- a/gravid/src/screens/WebinarDetail/index.js +++ b/gravid/src/screens/WebinarDetail/index.js @@ -167,7 +167,7 @@ const WebinarDetail = (props) => { To Access Paid Features{'\n'} you need to pay - {delail?.amount} + {"\u20B9"}{delail?.amount} Make Payment