From b7c5242af86a6849a41d9f60d4e2631c7f840867 Mon Sep 17 00:00:00 2001 From: Meng To Date: Fri, 10 May 2019 16:19:31 -0400 Subject: [PATCH] React Native Gestures --- .DS_Store | Bin 0 -> 8196 bytes assets/icon-email-active.png | Bin 0 -> 585 bytes assets/icon-email-animated.gif | Bin 0 -> 6110 bytes assets/icon-email.png | Bin 0 -> 602 bytes assets/icon-password-active.png | Bin 0 -> 554 bytes assets/icon-password-animated.gif | Bin 0 -> 5692 bytes assets/icon-password.png | Bin 0 -> 556 bytes assets/logo-dc.png | Bin 0 -> 3365 bytes assets/lottie-ae.json | 127 ++++++ assets/lottie-checked-done.json | 1 + assets/lottie-glow-loading.json | 1 + assets/lottie-loading-double.json | 1 + assets/lottie-loading-fluid.json | 1 + assets/lottie-loading-text.json | 1 + assets/lottie-loading.json | 1 + assets/lottie-preloader.json | 656 ++++++++++++++++++++++++++++++ components/Project.js | 66 +++ navigator/TabNavigator.js | 4 +- package-lock.json | 46 --- screens/ProjectsScreen.js | 39 +- 20 files changed, 895 insertions(+), 49 deletions(-) create mode 100644 .DS_Store create mode 100644 assets/icon-email-active.png create mode 100644 assets/icon-email-animated.gif create mode 100644 assets/icon-email.png create mode 100644 assets/icon-password-active.png create mode 100644 assets/icon-password-animated.gif create mode 100644 assets/icon-password.png create mode 100644 assets/logo-dc.png create mode 100644 assets/lottie-ae.json create mode 100644 assets/lottie-checked-done.json create mode 100644 assets/lottie-glow-loading.json create mode 100644 assets/lottie-loading-double.json create mode 100644 assets/lottie-loading-fluid.json create mode 100644 assets/lottie-loading-text.json create mode 100644 assets/lottie-loading.json create mode 100644 assets/lottie-preloader.json create mode 100644 components/Project.js diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..616a58c5daef1addca89ff83cbdaf90b3890a72b GIT binary patch literal 8196 zcmeHMTWl0n7(UkjX$!3hBF2OmTZa;ELdi0pU*eI3G?j8OTW?g*$_AX9#9Sa6^GV zJNd=^;S5P3!!|@9L|`@oeEF0!jk)w^6y4u1r$;T*^_rW%LZqa$tbCp%RY(;JDjrD< zJ7XzN^Kx#7mfg#HeVR9%4xalR$C`fD(z{G!Y)Gx?bZk#EZ6oVDo4P?m_6?Y}?u>Of zIa_!AI4NO}Bw3P&)VlHU)|OR?_{x>d6N&hEdwX*t-nz1FVnUW`m$W>%b^plGW8;rc z9DhmVgrg6OvG-91Y0pqX*(lzGe;QY&4` zb1QZGvPPbA8pt?SZp3zn)T)eTWpbA085=E&4<=ouo5?zs)#tdTXFB%oLC-ki6#~sL z4eoKBtk>xW8&cJrYwR#6mYFxYC?bWb=Ck#V@-Xf$BkPiENH&WU<#P*bWA`*IzrX!~ z}O|(6v4DfN5mqDkS87TN^Q^s_Pct zapzspXz}Pml)+ruJe)JVqiTaBi8<<{4YGPc+NaYS_Bc9^sQZ>^eY8=M_Hun^)}U6X zm1WU{tZGufOX!FYE0h*lb>;p;L;>O2sxgzq>Luw>K5@6^dcC8DO>^_qHrGd^ySaX&t{b`}Ne#)9r+xGql1&1| z1|b;p0g+XH7)9Aqwwex~es+L4>><{)QyT<+kgN#Zn zMm?4xf#tXl?O2VqScffm7(0-{5Qbsm5G)+VF^ppZ$8iE@@D!fLGk6|n@hV=&8#ssa zxPbTZAui!EKEvm@iXZSZe!;K!4c8(i5hYR;sTS`WDe%3o@cx0mhUAPzO?(eN%0*te zKHp;xZP~g_>AdOr{`Epm^4n@|UsM}kvTQ}`n)MyiR4DrO|H(q1c!F6z;|h%OfAEO8)Hq$xhS{_a>z<@6KXrH#~$(DD%7dlNB5Eg|yD{@~^oC8m}U z&xLhWo1&>AOw3=2?= z7@CN(tyquEMA+@Y$gLYm?=7?Ksu_RC(d!CWZ7}sNqAn l-oK8Moc@O)J;wuEGLVx(l7-6u{vjYd|HJd&XWp&d{0+5KG1344 literal 0 HcmV?d00001 diff --git a/assets/icon-email-active.png b/assets/icon-email-active.png new file mode 100644 index 0000000000000000000000000000000000000000..0644a5fea1e6ebdee7e047b65a56118c5cd65673 GIT binary patch literal 585 zcmV-P0=E5$P)N!#v0cVT@gT}gE%jVnP{qJ80X7iAA^<)wt4fJhSgnWR`FZ=QqUyEDVg zWf%Y~_%{dG3xKKo?f1ntK=u~%`wc7Mzm`A{`3+su39#8aA14L868%@-1ytaY^8|kj z0#xt;xShMThx%qNT_TXJbOADYqbEZ|0*JNhRrE4(>o^2>v%{p331$kYB0uNpRDNrk znP{$WdjUQ0z2FL$es5dpbiW&R0y^MbdV0N&TjY!mbG%C+wf2i`o*ANgU&fUtUw0bi^2WQ(S?VmVvXPN%`= zz@9;DOJ&}y|B4wQFxm&mKh*3J`uxzvFx+{!4zKS*hKtLkPh!=I`)uT2`pJJhznlZV Xa7Wdb{TlHo00000NkvXXu0mjfJ;W6I literal 0 HcmV?d00001 diff --git a/assets/icon-email-animated.gif b/assets/icon-email-animated.gif new file mode 100644 index 0000000000000000000000000000000000000000..2ff0d5a756288e3020a5a1760507732cb185a389 GIT binary patch literal 6110 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 literal 0 HcmV?d00001 diff --git a/assets/icon-email.png b/assets/icon-email.png new file mode 100644 index 0000000000000000000000000000000000000000..e4050e1e9c44987574eb58ea6287188b33a8582c GIT binary patch literal 602 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 CCsHQ> literal 0 HcmV?d00001 diff --git a/assets/icon-password.png b/assets/icon-password.png new file mode 100644 index 0000000000000000000000000000000000000000..57077644683d2372b46d19b53c9a0f27485df654 GIT binary patch literal 556 zcmV+{0@MA8P)Cf0>J3$m-OIg_- ze}48jGb0e$Huc+FAbS8XF<)<~0njOIUrKqs4mB@ACm4{&69}7`btqU6P*t}zfVo1hQMpSolD(K<3V9prht8 zZsw3+3ZK(b-sp{xjRmUeR-M5>$x_a=H#ytp`F$xep&ek~IF+10q(N*KA?{2$f=eYQ z5MituhNEKQWQqndWxExX z=MM?`h5+?D-NnOz=m0el$b8Fvq*7x5an~ZKKLK%aC54hgoB~|`inyVulNlo}nTbYgs$wctQ#E;< zcPel5lK13sUME%K%REdKHCaZs1_gmgAOiN(ckVs6&)xdo-tIk8MNBun-2R>a{eR0j z_cVF0eK86EK=41@57FLX^cd9>^siy~x|-)$K8AbWNE3niN`Pn-psI+#+G-SvJz1+8 za$w1~0T$O5VWg=#>#Gaz=Kf9daa_Ae5bzrTx0%3vg~SN~gZxYXpSzFUeycuvslJ?y zt}R9XHFPnr-z~!AeObZm0EAR-Gl2zJxpo2L05I4mc4x!u#b{)IQ}%GrTk9S<30nnN zNVr=ixI8dB3O0NE(bnvh5<>p{U@*7M3D64QgyEt$CgIbGczPqBIlWuTA`F7N za+gl1#31X4_ZspG=z^)qbH>|a%FQ%jG-`a0Q=K{B1Ni%$f%FDM9bhX6n9o@~M)mhZ z;qE4|R2<6`oC3_whEuKCk&!q1=tFlBXCQ&fQFeshAo0ASh1TZz^Ser z_3}wYaCuu02=Kk@3*f1kfvR6hA_p6)lJaF0V5i|ucFM}- zp$Y={-Zcp>Mgim!$SR%ds;SzUXz)`2y8@RfS1`bLHE`un3$~#%Vda2>8yGd0V!?l*?>_Kor9H70Wv- z{7vyP3vzakb)k_=Z-II4)P4fI=W1sl+zfJe29k#>sWu7~D`k-b^|e)IDkgn<)ZMhW zRh`YojTSCF6q6|)w*cS1oH|_mT!lHgustU<9H{gT8bMY8Ht3(nI%kQ({gtF#DF+h^ z@NHCXnRT{cWD88Wl8B@aSD#W$Td<>C-jjocK4|l8R;gG8 zI3>6R2v;&&kpQD|^L$c3;{%fxp4Dv@(2QP(f8E{r+f`ny08SQeZ7f5eM)s zRIYz|zuZz;>tQJy1)Mb8cO~}}Gd~365V-0L63eaFj z`a4XPuNu^SI1W=MV{mn4uFFA=!Yy?!pqT~6g6upvTHQ`tWyA+!F~3dELbhH*(`S$@XfR7 zftzT>#uptDH@1E<3Pet;3Ucz`*VP?YOabE)pS>G{Yr5Xnr7Ys+8FAsV^7&NofCShm z$RS*63v7V6CHbcFX$~p)4+ys;^=u&%%4KkoY3IiFugL|2Aou*YoGl0jc;MJP6a|do zT6&}Qbmnf`?KK#tW{L_WSj;w>)-`{t0{q$w@ZxPQpxIeI>Yzn*hhM<9?iX^NgC8X3 zeWJm|<7r;s@KOPcaA)4j(v`lVSVZ?`EnM!@;-+t`x?-8O1-{$Xw7yXSOyRztB{gj{ ziWC8Gcj(Q6%LcKrC~~zU&_^`7jjCgP=w!jbK@!-+NXjbXC zJtueT?2H0AUaID_a?!R*^NXRga`zz>VD0({8u%FGGI=geuqmTkeKX)GjhHGqA-L@H zkh76g2CboJGc**3i2~RNF1rtBG-f*pESJe|$+9DZ-h~?rPlo!QgU2U9)~9i?>d&(K z#_i^jYVopV{nnS8eKqST;COJEb)b@GWXNte+>N%BLC6KZNy9a0+M+>ML?obGyMwsH z(>YvISu{unmnX(1Da6LKsaH#sgAwtMM zB)~S{G9^>UxM_wAS+u27clr@BHi-1ADGimJMq6NcaD7o28j9;FRWh(Qb`gx-1t>Tm z&vp}d84z=A+THWh6tbm~GXR(NAl9{hTVGw(p#q!;T&Cvd?F1HT#avx^w|^Q6%f`)> zoFTY4sJ+47*y>7Da58Y&bEew~{DewYG7E9m2j4wEMIq~yoI$u@Y7Y&uyx|IG5t2vg ze^E$4>%dPjQtcst`YMZjgKxw zps;KVNQUA1y?$sZYf)iT0H*?%X?toHLN-`&DZq7dA6<;Vdf%w77_sWcSq4h3AKe=~ z_9Y?Y3hx0Fa5~^pB@=+iP6G2aVqPcr$4iq6WR_B;QV#R*tG(5*L!(~GA9j?r8X19F!Rdm_JcvT}%O8Q2)>bV~TK8stYefn2|I(u5p5SrQT>=%0 zNH<&sa*L#7(Y7Q`ovMFWhYeQ;sAQw2y-Nya@!^v}g#5j!lI!xePHx#$C!dFAp)GblxyD(9 zV$51l1~jcYaAt7XOH;_WSCe2{E8_8da%~if%fHttxz-b2Zm!&-TuE<@7eEKt5S-@D zRN=Dmdb(ADteO>ZS;1_;9}SK|QN?$Pl9Pc;KPRtXC*iWukAwgwL+TXHi9#b@|C$Z> zqiav0xZ*pg$_mZ3);8PT5LD&C46qw;=?D{m$vWv*_Z=8^F2XS>#Z7Z=T_vfXAmEpa z4c}hop$WN=rL5mZo*{;g@7l5@+}8SWh({a9`2u=%^mLCm2J4;oL%7Lx+chJ zQ?XRC1=Xpd%P{nZs6ciZaL=xsl`lTXJ&M!rc0rmwP6gOaxa=%K72~g4-$L-g;dLV) z_T}2jaqYlY06PWO&Q7lgc)V7f!rApyyWeG`wTPabIV*p?ksj5m&Rnzzk>Dx~B7_`> zrEr-7ys3o1 + + + {this.props.title} + by {this.props.author} + + {this.props.text} + + ); + } +} + +export default Project; + +const Container = styled.View` + width: 315px; + height: 460px; + border-radius: 14px; + background-color: white; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15); +`; + +const Cover = styled.View` + height: 290px; + border-top-left-radius: 14px; + border-top-right-radius: 14px; + overflow: hidden; +`; + +const Image = styled.Image` + width: 100%; + height: 290px; +`; + +const Title = styled.Text` + position: absolute; + top: 20px; + left: 20px; + font-size: 24px; + font-weight: bold; + color: white; + width: 300px; +`; + +const Author = styled.Text` + position: absolute; + bottom: 20px; + left: 20px; + color: rgba(255, 255, 255, 0.8); + font-size: 15px; + font-weight: 600; + text-transform: uppercase; +`; + +const Text = styled.Text` + font-size: 17px; + margin: 20px; + line-height: 24px; + color: #3c4560; +`; diff --git a/navigator/TabNavigator.js b/navigator/TabNavigator.js index 493c487..6997449 100644 --- a/navigator/TabNavigator.js +++ b/navigator/TabNavigator.js @@ -74,9 +74,9 @@ ProjectsStack.navigationOptions = { }; const TabNavigator = createBottomTabNavigator({ + ProjectsStack, HomeStack, - CoursesStack, - ProjectsStack + CoursesStack }); export default TabNavigator; diff --git a/package-lock.json b/package-lock.json index dfb5b04..5a163d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2800,7 +2800,6 @@ "integrity": "sha512-KWTm5yQcrh5Z7oXbf8oLPKdgRL34Mm0spcN1yNQzyODQ/RlYuMLYeQcsEWhcuqIKygT94Fi0Td+d5hrOyQ8dMQ==", "requires": { "@babel/runtime": "^7.1.2", - "@expo/vector-icons": "github:expo/vector-icons#d0fb774a001b047d223cfa5e9537220b20591efd", "@expo/websql": "^1.0.1", "@types/fbemitter": "^2.0.32", "@types/invariant": "^2.2.29", @@ -2862,7 +2861,6 @@ "qs": "^6.5.0", "react-native-branch": "2.2.5", "react-native-gesture-handler": "1.0.14", - "react-native-maps": "github:expo/react-native-maps#e6f98ff7272e5d0a7fe974a41f28593af2d77bb2", "react-native-reanimated": "1.0.0-alpha.11", "react-native-screens": "1.0.0-alpha.22", "react-native-svg": "8.0.10", @@ -2872,14 +2870,6 @@ "whatwg-fetch": "^2.0.4" }, "dependencies": { - "@expo/vector-icons": { - "version": "github:expo/vector-icons#d0fb774a001b047d223cfa5e9537220b20591efd", - "from": "github:expo/vector-icons#expo-font-fix", - "requires": { - "lodash": "^4.17.4", - "react-native-vector-icons": "6.0.0" - } - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -2898,10 +2888,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" } } - }, - "react-native-maps": { - "version": "github:expo/react-native-maps#e6f98ff7272e5d0a7fe974a41f28593af2d77bb2", - "from": "github:expo/react-native-maps#v0.22.1-exp.0" } } }, @@ -6029,38 +6015,6 @@ "prop-types": "^15.6.1" } }, - "react-native-vector-icons": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-6.0.0.tgz", - "integrity": "sha512-uF3oWb3TV42uXi2apVOZHw9oy9Nr5SXDVwOo1umQWo/yYCrDzXyVfq14DzezgEbJ9jfc/yghBelj0agkXmOKlg==", - "requires": { - "lodash": "^4.0.0", - "prop-types": "^15.6.2", - "yargs": "^8.0.2" - }, - "dependencies": { - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - } - } - }, "react-native-view-shot": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/react-native-view-shot/-/react-native-view-shot-2.5.0.tgz", diff --git a/screens/ProjectsScreen.js b/screens/ProjectsScreen.js index 4b2abdc..aac4349 100644 --- a/screens/ProjectsScreen.js +++ b/screens/ProjectsScreen.js @@ -1,15 +1,51 @@ import React from "react"; import styled from "styled-components"; +import Project from "../components/Project"; +import { PanResponder, Animated } from "react-native"; class ProjectsScreen extends React.Component { static navigationOptions = { header: null }; + state = { + pan: new Animated.ValueXY() + }; + + componentWillMount() { + this._panResponder = PanResponder.create({ + onMoveShouldSetPanResponder: () => true, + onPanResponderMove: Animated.event([ + null, + { dx: this.state.pan.x, dy: this.state.pan.y } + ]), + onPanResponderRelease: () => { + Animated.spring(this.state.pan, { + toValue: { x: 0, y: 0 } + }).start(); + } + }); + } + render() { return ( - Projects Screen + + + ); } @@ -21,6 +57,7 @@ const Container = styled.View` flex: 1; justify-content: center; align-items: center; + background: #f0f3f5; `; const Text = styled.Text``;